Повторение ссылки через равные промежутки времени - PullRequest
0 голосов
/ 05 июня 2019

У меня есть два листа Excel (1,2) в одном файле, и мне нужны данные на листе 2 следующим образом: a1(1) a2(2) a3(3). Я хочу ссылаться на эти данные в листе 1 следующим образом: A2=sheet2!A1, A5=sheet2!A2, A8=sheet2!A3 и т. Д.

Как мне этого добиться?

Я пытался ввести последовательность четыре раза и перетаскивать формулу до конца. Вместо того, чтобы поддерживать последовательность, вот что происходит: введено мной:

A2=sheet2!A1 A5=sheet2!A2  A8=sheet2!A3

при перетаскивании Excel автоматически вводит:

A11=sheet2!A10  A14=sheet2!A11 A17=sheet2!A12 A20=sheet2!A19 A23=sheet2!A20 A26=sheet2!A21

Что я хочу:

A2=sheet2!A1 A5=sheet2!A2  A8=sheet2!A3

Если я введу вышеуказанное, Excel должен автоматически ввести следующие формулы:

A11=sheet2!A4  A14=sheet2!A5  A17=sheet2!A6  A20=sheet2!A7  A23=sheet2!A8 A26=sheet2!A9

Ответы [ 2 ]

0 голосов
/ 05 июня 2019

Итак, на листе 1 вы хотите иметь формулу в ячейках A2, A5, A8 (т.е. каждые 3 строки), которые ссылаются на лист2 A1, A2, A3 и т. Д.

Что вы хотите в Листе А1, А3, А4, А6 и т. Д.? Я полагаю, вы хотите, чтобы они выглядели пустыми, т. Е. ""

Если это так, поместите это в A2 в Sheet1 .

=IF(MOD((ROW(B2)+1),3)=0,OFFSET(Sheet2!$A$1,QUOTIENT(ROW(B2),3),0),"")

или, используя косвенную функцию, как предложено в другом месте

=IF(MOD((ROW(B2)+1),3)=0,INDIRECT("Sheet2!A"&ROUNDUP(ROW(C2)/3,0)),"")

Это грязно, потому что вы хотите копировать, но вы, вероятно, хотите, чтобы A3, A4 ... A6, A7 были пустыми. Поэтому вам нужен способ вернуть «пустую» ячейку.

Как это работает: MOD ((строка (b2) +1), 3) => это дает ноль для всех строк, кроме 2,5,8,11,14 и т. Д. И т. Д.

Если мы находимся в «живой» строке (A2, A5, A8), то мы используем смещение, чтобы переместить нас с Листа 2: А1 вниз, строки вниз меняются только через каждые 3 ячейки в Листе 1.

НЕПОСРЕДСТВЕННЫЙ - у другого ответа просто есть опечатка, но предложение является хорошим и менее изменчивым, чем смещение:

=INDIRECT("Sheet2!A"&ROUNDUP(ROW(C2)/3,0))

даст вам правильный результат, но если вы скопируете, вы получите повторяющиеся значения, а не пробелы. если это то, что вы хотите, используйте выше.

Отказ от ответственности - это уродливая функция для того, что кажется странным запросом. Я должен верить, что вы можете использовать менее ручной подход для достижения вашей общей цели, но я думаю, что это фактический запрос.

0 голосов
/ 05 июня 2019

Это должно сделать

=INDIRECT("sheet2!A"&ROUNDUP(C2/3,0))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...