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

В прилагаемом примере я хотел бы разбить строки с числом 2 или более в столбце "Записи", сохранив число 1 в каждой новой строке; но "Сумма" должна быть распределена и в новых строках.

Я приложил файл с информацией и ожидаемым результатом по следующей ссылке:https://www.dropbox.com/s/nsbah933u0p1yvi/CHALLENGEa.xlsx?dl=0, и он вставлен ниже:

пример

2 ответа2

0

Я бы использовал Power Query Add-In для этого. У него есть список.Генерация функции, которая может достичь того, что вы хотите.

Я создал решение с использованием ваших данных, которое вы можете просмотреть или загрузить, - его: «Демонстрация Power Query - сгенерируйте несколько строк из ячейки values.xlsx» в моем One Drive:

https://onedrive.live.com/redir?resid=4FA287BBC10EC562%21398

Большая часть этого была построена с помощью пользовательского интерфейса Power Query. Список.Функция генерации документирована здесь:

http://office.microsoft.com/en-gb/excel-help/list-generate-HA104111647.aspx

В Интернете не так много практических примеров, и я не мог понять, как передать ему значение Records, поэтому я просто генерирую 10 строк, а затем фильтрую на следующем шаге.

0

Вот решение, которое использует только основные функции Excel. Скажем, исходная таблица, изображенная в вашей ссылке, начинается в столбце А, а первая строка данных - это строка 2. Сначала добавьте вспомогательный столбец, начиная с H2. В этом столбце вычисляется относительная строка, в которой будет начинаться каждое новое имя для новой таблицы.

Введите 1 в ячейку H2. Формула в H3 будет:

    =IF(ISBLANK(A3),"",SUM(C$2:C2)+1)

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

Ваша выходная таблица начинается в столбце I со строки 2, являющейся первыми данными. Поскольку в вашем примере пять строк данных, я буду основывать формулы решения на этом. Просто измените референтные диапазоны в зависимости от ситуации. Формула в I2 (ваш номер столбца) будет выглядеть так:

    =IF((ROW()-1)>SUM(C$2:C$6),"",MATCH(ROW()-1,H$2:H$6,1))

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

Столбец Дата - J. Формула в J2:

    =IF(I2="","",VLOOKUP(I2,$A$2:$F$6,2,))

Столбцы Name и ID похожи, просто VLOOKUP в другом столбце, поэтому формулы в M2 и N2:

    =IF(I2="","",VLOOKUP(I2,$A$2:$F$6,5,))   (cell M2)
    =IF(I2="","",VLOOKUP(I2,$A$2:$F$6,6,))   (cell N2)

Вы можете просто скопировать формулу J2 и отредактировать столбец VLOOKUP (последний параметр).

В выходной таблице столбец Records всегда будет равен 1 , поэтому ячейка K2:

    =IF(I2="","",1)

Оставшийся столбец - это Сумма, в которой используются два VLOOKUP для числителя и знаменателя вашего подразделения. Ячейка L2 будет:

    =IF(I2="","",VLOOKUP(I2,$A$2:$F$6,4,)/VLOOKUP(I2,$A$2:$F$6,3,))

Если столбец даты отображается в виде числа, просто измените формат ячейки на желаемый формат даты. Теперь вы можете скопировать все эти ячейки вниз, как вы делали для столбца I.

Это даст вам вывод, показанный в вашем примере.

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