У меня есть лист со списком продаж, одна продажа в строке. Чтобы импортировать эти данные в мое бухгалтерское программное обеспечение, мне нужно создать отдельный рабочий лист, который по-разному форматирует данные. Каждая строка на первом листе займет четыре строки на втором листе.

Я установил свои четыре строки на втором листе и сделал все относительные ссылки на первый ряд на первом листе. Когда я делаю копию четырех строк, ссылки на ячейки неверны. Например, первые четыре строки должны ссылаться на worksheet1!A1 . Следующие четыре строки должны ссылаться на worksheet1!A2 . Но если я попытаюсь сделать это, заполнив A1:A4 , он ссылается на worksheet1!A5 .

Мне нужен способ, чтобы быстро дублировать эти четыре строки и иметь правильные ссылки. Вот как это должно быть.

worksheet1!A1 -> worksheet2!A1
worksheet1!A1 -> worksheet2!A2
worksheet1!A1 -> worksheet2!A3
worksheet1!A1 -> worksheet2!A4
worksheet1!A2 -> worksheet2!A5
worksheet1!A2 -> worksheet2!A6
worksheet1!A2 -> worksheet2!A7
worksheet1!A2 -> worksheet2!A8

На данный момент, вот как это выходит. Вы можете видеть, что три строки продаж просто пропущены.

worksheet1!A1 -> worksheet2!A1
worksheet1!A1 -> worksheet2!A2
worksheet1!A1 -> worksheet2!A3
worksheet1!A1 -> worksheet2!A4
worksheet1!A5 -> worksheet2!A5
worksheet1!A5 -> worksheet2!A6
worksheet1!A5 -> worksheet2!A7
worksheet1!A5 -> worksheet2!A8

Вероятно, есть действительно простой и очевидный способ сделать это, но мои навыки работы с Excel ограничены, и я не смог ничего найти в Google.

Решение:

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

=INDIRECT("'worksheet1'!A"&ROUNDUP(ROW()/4, 0))

# My real world version looks more like this, as my rows don't actually start on row 1

=INDIRECT("'worksheet1'!A"&ROUNDUP((ROW()-1)/4, 0) + 8)

1 ответ1

0

Предполагая, что вы начинаете с A1 на втором листе, вы можете заполнить следующую формулу вниз столбцом A, чтобы получить желаемые результаты.

=IF(INT((ROW()+3)/4)=(ROW()+3)/4,INDIRECT("worksheet1!A"&(ROW()+3)/4),"")

Это немного запутанно и сделает ваш лист сложнее для аудита, но это сделает работу. Если вам нужны четкие, простые в использовании формулы, VBA, вероятно, вам поможет.

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