У меня есть рабочая тетрадь с рабочим листом, содержащим следующее: Рабочий лист назначения
Данные в ячейках B1, C1, D1 должны быть равны значениям ячеек A1, A2, A3 на листе в той же книге с именем DOD11.2 (т.е. имя листа такое же, как буквы до символа x в строке в ячейках A1, A2, A3, A4).
Данные в ячейках B2, C2, D2 должны быть равны значению ячеек B1, B2, B3 в том же рабочем листе DOD11.2. Аналогично, ячейки B3, C3, D3 должны быть равны значению ячеек C1, C2, C3 в DOD11.2, а ячейки B4, C4, D4 равны значению ячеек D1, D2, D3 в DOD11.2.
Эту последовательность затем необходимо повторить для ячеек B6, C6, D6; B7, C7, D7 и т. д., только на этот раз их значения должны быть равны данным в ячейках A1, A2, A3; B1, B2, B3 и т. д. на листе с именем DOD12.2 (т. е. имя рабочего листа теперь совпадает с буквами до символа x в строке в ячейках A6, A7, A8, A9).
Буду признателен за любые предложения по формуле, которую я могу использовать в ячейке B1, а затем скопировать в другие ячейки и которая будет правильно ссылаться на соответствующий исходный лист и ячейки.
Спасибо за ваше предложение. Я понимаю, как вы используете функцию CHAR вместе с текущими значениями строк и столбцов ячеек для вычисления значений исходных ячеек. К сожалению, чтобы сделать запрос более простым для понимания, я не дал полную историю в своем исходном сообщении, поэтому ваше предложение не полностью решает мою проблему. Фактический целевой лист выглядит такФактический лист назначениягде показанные номера ячеек (AD8, BM8..., AD9, BM9 и т. д.) являются реальными адресами ячеек, которые необходимо извлечь из исходного листа. Также у меня есть около 70 строк в целевом листе, которым мне нужно присвоить формулу. Буду очень признателен за любые дальнейшие предложения.
решение1
Вы можете использовать косвенную функцию и собрать строку, содержащую адрес ячейки.
Предполагая, что у вас есть имя файла в E7
, имя листа в этом файле в E9
и имя ячейки в E11
, используйте формулу
=INDIRECT("'["&E7&"]"&E9&"'!"&E11)
В вашем конкретном случае вы обращаетесь к листам в одном и том же файле, поэтому формула становится
=INDIRECT("E9&"!"&E11)
имя листа в ячейке A1 =left(A1,7)
ячейки в строке 1 относятся к столбцу A этого листа,
ячейки в строке 2 относятся к столбцу B этого листа и т. д.,
поэтому имя столбца — char(64+<номер строки ячейки>)
Ячейки в столбце B относятся к строке 1,
ячейки в столбце C относятся к строке 2 и т.д.,
поэтому номер строки равен <номер столбца>-1.
все это дает нам следующую формулу, которую нужно скопировать в B1, а затем заполнить справа и снизу
=INDIRECT(left($a1,7)&"!"&char(row()+64)&column()-1)
это нарушается, если у вас больше 26 строк.