2

У меня есть табель, который я помогаю создать, и он извлекает данные из листа 1 и добавляет их в список на листе 2. Данные должны ссылаться на лист 1 на A42, затем на A73, A115, A146, A188 и т.д., Следуя интервалу 42, затем 31, затем 42, затем 31; 100 экземпляров этого. Как я могу ссылаться на данные таким образом?

2 ответа2

3

Поскольку кажется, что есть постоянный шаблон с ячейками Sheet1, на который нужно сослаться, нужно просто создать формулу для получения правильного номера строки Sheet1 на основе номера строки Sheet2. Формулировать ссылочную формулу довольно просто, используя некоторые функции ROW() , ISEVEN() или ISODD() , MOD() и FLOOR() .

номер строки Sheet1 = 31*FLOOR((ROW())/2;1)+42*FLOOR((ROW()+1)/2;1)

От номера строки до фактической формулы с помощью функции INDEX() :

=INDEX(Sheet1!A:A;30*FLOOR(ROW()/2;1)+41*FLOOR((ROW()-1)/2;1)+42;1)

(в формуле вам, очевидно, нужно изменить диапазон первого параметра, чтобы он соответствовал вашим исходным данным, и число в последнем параметре, которое указывает номер столбца в диапазоне).

Поскольку номер строки Sheet2 является основным фактором для получения правильной строки в Sheet1, вышеприведенное работает только тогда, когда исходные данные в Sheet1 начинаются со строки 42, а данные результата в Sheet2 начинаются со строки 1. Если это изменится, вы, конечно, можете вычесть смещение строки в формуле для каждого вызова ROW() (для смещения в Sheet2) и / или добавить / вычесть к результирующему номеру строки (для изменения смещения в Sheet1).

2

Вот пример того, как вы можете сделать это с помощью формул:

Я использую столбец А, чтобы проиллюстрировать шаблон, который производит мясо формулы. Это начинается в строке 2, так как строка 1, вероятно, будет содержать заголовки. Это будет на листе 2, где вы хотите построить список элементов, выбранных на листе 1. Формула в A2, которая вычисляет целевые номера строк:

=INT(ROW()/2)*42+INT((ROW()-1)/2)*31

На следующем снимке экрана показано, как можно использовать это для извлечения ячейки из другого листа:

Я вставил что-то, чтобы скопировать только в ячейку A42, поэтому в столбце B заполняется только одна ячейка. Формула использует функцию INDIRECT для построения ссылки на ячейку. Формула в B2:

=INDIRECT("sheet1!A" & INT(ROW()/2)*42+INT((ROW()-1)/2)*31)

Ячейка A42 листа 1 содержит ABC .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .