Как бы я мог автоматизировать преобразование очень длинного списка в такой формат:

В таблицу вот так:

Я использую Microsoft Excel 2010 в Windows ... из-за расположения моих данных, как показано на рисунке, мастер сводных таблиц не распознает поля.

2 ответа2

0

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

Если данные находятся на листе 1, на листе 2 введите первые две строки заголовков.

  • используйте имя для имени sheet1!$ 1 $ как Spot или любое другое имя, которое вам нравится
  • используйте имя, чтобы назвать 5 как шаг
  • используйте имя, чтобы назвать Pik как =+((COLUMN()- 2)* Step)+(ROW()- 1)

затем используйте в b2 и продолжайте до необходимого уровня =+OFFSET(spot, Pik, 1)

это тянет во всех данных.

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

0
  1. Скопируйте ваши данные в текстовый редактор с заменой RegEx (Notepad++).

  2. Заменить все: ^Person[\r\n]+Name[\s]+([\w]+)[\r\n]+Age[\s]+([\d]+)[\r\n]+Size[\s]+([\d])+[\r\n]+ to: \1\t\2\t\3\r\n

  3. Скопируйте данные обратно в Excel.

  4. Транспонировать данные и добавлять необходимые заголовки.

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