От таблицы до 2 столбца в Excel - PullRequest
0 голосов
/ 10 мая 2018

Я хотел бы создать два столбца из таблицы.

Правильное решение будет таким (это будет 2 отдельных столбца):

enter image description here

Из этой таблицы:

enter image description here

Таблица намного длиннее этой, это пример.

Можете ли вы помочь мне решить эту проблему?

Спасибо, Gergő

Ответы [ 2 ]

0 голосов
/ 11 мая 2018

Чтобы загрузить ваши существующие данные в PQ, это должна быть таблица. Чтобы упростить это, я бы преобразовал его в таблицу и снял флажок «У моей таблицы есть заголовки». Затем поместите несколько меток в строки идентификаторов, чтобы мы могли легко их преобразовать. Выглядело это так после того, как я это сделал.

enter image description here

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

enter image description here

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

enter image description here

Оставьте первые 3 строки, выберите первый столбец и «Отключите другие столбцы». Затем снова выберите первый столбец и «Сводные столбцы». Выберите столбец «Значение» в качестве «Столбца значений» и в разделе «Дополнительные параметры» выберите «Не объединять».

enter image description here

После этой оси у вас будет таблица, которая отображает все ваши столбцы в строки их заголовков. Я преобразовал столбец с числами в текст, так как позже мы добавим его как текст. Таблица результатов выглядит следующим образом:

enter image description here

Полный код этого запроса:

let
    Source = Table1,
    #"Kept First Rows" = Table.FirstN(Source,3),
    #"Unpivoted Other Columns" = Table.UnpivotOtherColumns(#"Kept First Rows", {"Column1"}, "Attribute", "Value"),
    #"Pivoted Column" = Table.Pivot(#"Unpivoted Other Columns", List.Distinct(#"Unpivoted Other Columns"[Column1]), "Column1", "Value"),
    #"Changed Type" = Table.TransformColumnTypes(#"Pivoted Column",{{"Region", type text}})
in
    #"Changed Type"

Затем вернитесь и сделайте еще одну ссылку на вашу импортированную таблицу. На этот раз удалите верхние 3 строки, выберите первый столбец и снимите флажок Другие столбцы. Вы получите список ваших дат со всеми остальными столбцами данных, не развернутыми рядом с ними. Теперь вы можете объединять запросы, сопоставляя столбцы атрибутов из этой таблицы и таблицы, в которой вы отобразили строки заголовка.

enter image description here

Разверните объединенные данные, и теперь у вас есть строки заголовков, сопоставленные с каждой строкой данных в вашей таблице. Вы можете добавить пользовательский столбец, который создает необходимый столбец уникального идентификатора, а затем удалить и переместить столбцы, чтобы получить нужные данные результата. Пользовательский код столбца выглядел для меня так:

[Country Code]&"_"&DateTime.ToText([Column1], "MM/dd/yyyy")&"_"&[Region]

И это была таблица результатов:

enter image description here

Полный код М для этой части:

let
    Source = Table1,
    #"Removed Top Rows" = Table.Skip(Source,3),
    #"Unpivoted Other Columns" = Table.UnpivotOtherColumns(#"Removed Top Rows", {"Column1"}, "Attribute", "Value"),
    #"Merged Queries" = Table.NestedJoin(#"Unpivoted Other Columns",{"Attribute"},RowIDs,{"Attribute"},"RowIDs",JoinKind.LeftOuter),
    #"Expanded RowIDs" = Table.ExpandTableColumn(#"Merged Queries", "RowIDs", {"Country Code", "Country", "Region"}, {"Country Code", "Country", "Region"}),
    #"Added Custom" = Table.AddColumn(#"Expanded RowIDs", "ID", each [Country Code]&"_"&DateTime.ToText([Column1], "MM/dd/yyyy")&"_"&[Region]),
    #"Removed Other Columns" = Table.SelectColumns(#"Added Custom",{"Value", "ID"}),
    #"Reordered Columns" = Table.ReorderColumns(#"Removed Other Columns",{"ID", "Value"})
in
    #"Reordered Columns"
0 голосов
/ 10 мая 2018

Вы можете использовать функцию разворота Power Query для достижения этой цели. Приведенная ниже инструкция может поначалу показаться длинной и трудной, но для ее прохождения требуется не более одной минуты.

  • Сначала разместите заголовки в один ряд. Я думаю, что название страны может быть опущено. Поэтому создайте новую строку заголовка как Row: 4 и объедините код страны и целое число с такой формулой в B4 и скопируйте право:

    =B1&B3

  • Теперь скопируйте 4-ую строку и вставьте в ту же строку, что и Только значения . Вы можете удалить строки 1-3 и оставить только одну строку в качестве заголовка. Теперь у вас должен быть AT32 в B1, AT38 в C1 и т. Д.

  • Теперь введите ваши данные в Power Query . Если в таблице выбрана непустая ячейка, перейдите к Данные Лента и нажмите кнопку Из таблицы / диапазона . Теперь ваши данные находятся в Power Query .

  • Выберите столбцы с числовыми значениями в них, а не даты, и нажмите кнопку Преобразование / Отмена столбцов / Отмена столбцов кнопка. Это переведет ваши данные в запрошенный формат.
  • Теперь вы можете вернуть отсортированные и сводные данные в Excel, используя кнопку Домой / Закрыть и загрузить .
  • Чтобы получить всю информацию о стране и дате в ячейке, создайте новый столбец и используйте формулу, как показано ниже:

    = LEFT(B2,2) & "_" & TEXT(A2, "dd/mm/yyyy") & "_" & RIGHT(B2, 2)

...