Программное обеспечение
Excel - как создать матрицу с дублирующими значениями
Мне нужна матрица 100 х 100. Например в строках: card1, card2, ..card100. Тоже самое в столбцах: card1, card2, ..card100. На пересечениях в ячейках значения. При этом, главное, что card1 + card2 тоже самое что card2 + card1. Естественно, не хочется выполнять работу по 2 раза. Как мне заполнив данные в ячейке card1 + card2 чтобы они автоматически скопировались в ячейку card2 + card1. Я конечно могу руками проставить формулы: ячейка1 = ячейка2. Но как автоматизировать процесс для 10 000 ячеек?
Можно макросом.
И ничего считать не надо и вставлять.
Пишите значения card1, card2, ..card100 по горизонтали и вертикали, ставите курсор в верхний левый угол матрицы, туда где card0 могло бы быть. Запускаем макрос.
Как сделать:
Разрешаем выполнение макросов Сервис -> Макрос -> Безопасность -> Средняя.
Теперь вставляем макрос Сервис -> Макрос -> Редактор Visual Basic.
Далее в редакторе VBA в окошке VBAProject кликаем по VBAProject(имя файла) , затем Insert -> Module при этом откроется окошко вставки кода.
Код:
----------------
Sub CalMatr()
ku = MsgBox("Вы установили курсор в верхний левый угол матрицы? ", 4, "Проверка расположения курсора")
If ku = 7 Then End
ad = InputBox("Введите знак математического действия" & Chr(13) & """+"", ""-"", ""x"", "":""", "Выбор математического действия")
If ad <> "" Then
r = ActiveCell.Row
c = ActiveCell.Column
re = Cells(r, c).End(xlDown).Row
ce = Cells(r, c).End(xlToRight).Column
For i = r + 1 To re
For j = c + 1 To ce
If ad = "+" Then Cells(i, j) = Cells(i, c) + Cells(r, j)
If ad = "-" Then Cells(i, j) = Cells(i, c) - Cells(r, j)
If (ad = "x") Or (ad = "х") Or (ad = "*") Then Cells(i, j) = Cells(i, c) * Cells(r, j)
If (ad = ":") Or (ad = "/") Then Cells(i, j) = Cells(i, c) / Cells(r, j)
Next j
Next i
End If
End Sub
----------------
Вставляем код.
Переходим в окно Excel
Ставим курсор, как сказано выше
Запускаем макрос Сервис -> Макрос -> Макросы, выбираем макрос «CalMatr» и жмем выполнить. Следуем инструкциям.
Даже если вам такое решение не нужно, а нужно руками 10000 значений вставлять и считать, таблица, полученная макросом, будет вам для проверки себя.
И ничего считать не надо и вставлять.
Пишите значения card1, card2, ..card100 по горизонтали и вертикали, ставите курсор в верхний левый угол матрицы, туда где card0 могло бы быть. Запускаем макрос.
Как сделать:
Разрешаем выполнение макросов Сервис -> Макрос -> Безопасность -> Средняя.
Теперь вставляем макрос Сервис -> Макрос -> Редактор Visual Basic.
Далее в редакторе VBA в окошке VBAProject кликаем по VBAProject(имя файла) , затем Insert -> Module при этом откроется окошко вставки кода.
Код:
----------------
Sub CalMatr()
ku = MsgBox("Вы установили курсор в верхний левый угол матрицы? ", 4, "Проверка расположения курсора")
If ku = 7 Then End
ad = InputBox("Введите знак математического действия" & Chr(13) & """+"", ""-"", ""x"", "":""", "Выбор математического действия")
If ad <> "" Then
r = ActiveCell.Row
c = ActiveCell.Column
re = Cells(r, c).End(xlDown).Row
ce = Cells(r, c).End(xlToRight).Column
For i = r + 1 To re
For j = c + 1 To ce
If ad = "+" Then Cells(i, j) = Cells(i, c) + Cells(r, j)
If ad = "-" Then Cells(i, j) = Cells(i, c) - Cells(r, j)
If (ad = "x") Or (ad = "х") Or (ad = "*") Then Cells(i, j) = Cells(i, c) * Cells(r, j)
If (ad = ":") Or (ad = "/") Then Cells(i, j) = Cells(i, c) / Cells(r, j)
Next j
Next i
End If
End Sub
----------------
Вставляем код.
Переходим в окно Excel
Ставим курсор, как сказано выше
Запускаем макрос Сервис -> Макрос -> Макросы, выбираем макрос «CalMatr» и жмем выполнить. Следуем инструкциям.
Даже если вам такое решение не нужно, а нужно руками 10000 значений вставлять и считать, таблица, полученная макросом, будет вам для проверки себя.
Чем понятнее вы станете изъясняться, тем быстрее вам помогут!
"На пересечениях в ячейках значения" - вы их вручную вносите, или они по формуле считаются?? ?
Если считаются, то, обычные абсолютные ссылки
Если вручную, то что-то типа
=ДВССЫЛ (АДРЕС (СТОЛБЕЦ (Я) -НК+НС; СТРОКА (Я) -НС+НК) )
где
Я - ссылка на ту ячейку, в которой формула, т. е. на саму себя
НК - начальная колонка
НС - начальная строка
"На пересечениях в ячейках значения" - вы их вручную вносите, или они по формуле считаются?? ?
Если считаются, то, обычные абсолютные ссылки
Если вручную, то что-то типа
=ДВССЫЛ (АДРЕС (СТОЛБЕЦ (Я) -НК+НС; СТРОКА (Я) -НС+НК) )
где
Я - ссылка на ту ячейку, в которой формула, т. е. на саму себя
НК - начальная колонка
НС - начальная строка
Похожие вопросы
- Как в Microsoft Excel 2007 вместо значения...
- Заполнение полей случайными числовыми и текстовыми значениями. Excel 2016
- Разве Microsoft Excel создан для рисования?
- #ЗНАК! - В Excel при вводе в формулы со ссылкой на ячейку в другой таблице в другом каталоге появляется значение #ЗНАК!
- Задача для Excel (2007). Найти координаты значения.
- Есть в Excel подстановка? Можно сделать в ячейке Excel выбор значений из раскрывающегося списка, как в Access? Как?
- Как преобразовать сканированный файл PDF в Excel или Word?
- Как в MS Excel можно заменить сразу несколько значений на листе?
- Помогите ответить на вопросы MS Excel (последний)
- Есть ли возможность «научить» EXCEL расставлять данные согласно РУССКОМУ алфавиту?