У меня есть огромная таблица Excel, которую мне нужно преобразовать в абзацы для отчета Word, и я не могу найти эффективный способ сделать это.
Источник выглядит так:
И мне в конечном итоге понадобится что-то вроде этого, т. е. через сводную таблицу. Обратите внимание, что "Элемент C", у которого нет никаких значений описания, пропущен:
Теперь, чтобы добиться этого, я полагаю, мне нужно преобразовать свой исходный код в этот промежуточный формат, в котором на строку приходится по одному описанию:
Как мне эффективно перейти от исходного к промежуточному формату? Или, может быть, есть более простой способ создания целевого формата, о котором я не знаю? Любая помощь приветствуется!
решение1
Простой, но, вероятно, довольно эффективный способ, если количество столбцов не слишком велико.
- Создайте новый пустой лист с двумя заголовками,ЭлементиОписание
- Для каждого столбца описания
- Скопировать все с исходного листа на новый временный лист
- Удалить все столбцы описания, кроме одного (теперь лист содержит только два столбца,ЭлементиОписание X)
- Сортируйте/отфильтруйте оставшийся столбец описания, чтобы избежать всех пустых ячеек.
- Скопируйте/вставьте все оставшиеся строки в лист, созданный на первом шаге.
решение2
Эта функция встроена непосредственно в Excel.
Все, что вам нужно сделать, это выделить ячейки, которые вы хотите повернуть, скопировать, а затем вставить их в другое место с помощью функции «Вставить транспонировать». Для этого щелкните стрелку вниз под кнопкой Вставить на ленте и подВставитьзаголовок, вы увидите кнопку, которая выглядит как столбец, вращающийся в строку. Нажмите ее для «Вставить транспонирование», и ваши строки станут столбцами и наоборот в вставленной версии
В этом видео показан весь процесс, а также несколько других связанных с этим приемов: http://www.youtube.com/watch?v=KbfeIYV359I
решение3
Если вы готовы использовать скрипты ( Spreadsheet::ParesExcel
например, Perl), вы можете использоватьэтот пример Stackoverflowдля формирования вашего индивидуального решения.
Там же есть пример скрипта PowerShell и еще несколько приемов в других ответах.