Данные печати в Excel - PullRequest
       3

Данные печати в Excel

0 голосов
/ 05 октября 2018

Начиная с таблицы Excel, подобной следующей

enter image description here

Как я могу прийти к таблице такого типа?

enter image description here

Я хотел бы сделать это с PowerQuery, а не с макросами, таблица, конечно, больше этой.

1 Ответ

0 голосов
/ 05 октября 2018

Прежде всего ... Я полагаю, что вы смешали числа и значения данных между двумя состояниями таблицы.Например, значение 10 выровнено с Data1 в вашей первой таблице, но с Data2 во второй.С учетом сказанного, я думаю, это то, что вы ищете ...

Начиная с этого в электронной таблице:

enter image description here

... где таблица с именем Table1 и была создана с заголовками, а эти заголовки с пробелами, Col1 и Col2, выполните следующие действия.

Загрузите таблицу (Table1) в PowerQuery: InExcel, щелкните вкладку «Данные», щелкните таблицу и выберите «Из таблицы / диапазона» на ленте.Убедитесь, что в моей таблице есть заголовки, и нажмите ОК.PowerQuery должен открыться, и вы должны увидеть это:

enter image description here

Теперь нажмите на значок функции слева от панели формул enter image description here и введите его в строке формул:

= Table.ReplaceValue(#"Changed Type",null,"""null""",Replacer.ReplaceValue,Table.ColumnNames(#"Changed Type"))

... и нажмите enter.

[В качестве альтернативы вы можете использовать графический интерфейс для создания кода выше, выбрав onerили несколько столбцов (не числовые, потому что мы собираемся заменить их текстовым значением), затем перейдите на вкладку «Преобразование» и «Заменить значения», затем введите null в качестве значения для поиска и «null» в качестве замены для и нажмите кнопку «ОК».... А затем отредактируйте результирующий код, отображаемый на панели формул, заменив список имен столбцов, которые вы изначально выбрали, на Table.ColumnNames (# "Changed Type").]

Вы должны увидеть это:

enter image description here

Почему я заменил нулевые значения текстом?Потому что если я этого не сделаю, они исчезнут на следующем шаге, а мы хотим их позже.Причина, по которой я использую Table.ColumnNames(#"Changed Type") в формуле вместо списка имен отдельных столбцов, заключается в том, что я не знаю, сколько у вас будет столбцов или как они будут называться, и это должно охватить их все.

Теперь нажмите на столбец с записями Data # (на рисунке выше это первый столбец), затем перейдите на вкладку Transform, и стрелка раскрывающегося списка Unpivot Columns и Unpivot Other Columns:

enter image description here

Вы должны увидеть это:

enter image description here

Теперь нажмите на значок функции, чтобыслева от строки формул enter image description here и введите ее в строке формул:

= Table.ReplaceValue(#"Unpivoted Other Columns","""null""",null,Replacer.ReplaceValue,Table.ColumnNames(#"Unpivoted Other Columns"))

... и нажмите клавишу ввода.

Вы должны увидеть это:

enter image description here

Вот полный код М для этого:

let
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{" ", type text}, {"Col1", Int64.Type}, {"Col2", Int64.Type}}),
#"Replaced Value" = Table.ReplaceValue(#"Changed Type",null,"""null""",Replacer.ReplaceValue,Table.ColumnNames(#"Changed Type")),
#"Unpivoted Other Columns" = Table.UnpivotOtherColumns(#"Replaced Value", {" "}, "Attribute", "Value"),
#"Replaced Value1" = Table.ReplaceValue(#"Unpivoted Other Columns","""null""",null,Replacer.ReplaceValue,Table.ColumnNames(#"Unpivoted Other Columns"))
in
#"Replaced Value1"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...