Прежде всего ... Я полагаю, что вы смешали числа и значения данных между двумя состояниями таблицы.Например, значение 10 выровнено с Data1 в вашей первой таблице, но с Data2 во второй.С учетом сказанного, я думаю, это то, что вы ищете ...
Начиная с этого в электронной таблице:
... где таблица с именем Table1 и была создана с заголовками, а эти заголовки с пробелами, Col1 и Col2, выполните следующие действия.
Загрузите таблицу (Table1) в PowerQuery: InExcel, щелкните вкладку «Данные», щелкните таблицу и выберите «Из таблицы / диапазона» на ленте.Убедитесь, что в моей таблице есть заголовки, и нажмите ОК.PowerQuery должен открыться, и вы должны увидеть это:
Теперь нажмите на значок функции слева от панели формул и введите его в строке формул:
= Table.ReplaceValue(#"Changed Type",null,"""null""",Replacer.ReplaceValue,Table.ColumnNames(#"Changed Type"))
... и нажмите enter.
[В качестве альтернативы вы можете использовать графический интерфейс для создания кода выше, выбрав onerили несколько столбцов (не числовые, потому что мы собираемся заменить их текстовым значением), затем перейдите на вкладку «Преобразование» и «Заменить значения», затем введите null в качестве значения для поиска и «null» в качестве замены для и нажмите кнопку «ОК».... А затем отредактируйте результирующий код, отображаемый на панели формул, заменив список имен столбцов, которые вы изначально выбрали, на Table.ColumnNames (# "Changed Type").]
Вы должны увидеть это:
Почему я заменил нулевые значения текстом?Потому что если я этого не сделаю, они исчезнут на следующем шаге, а мы хотим их позже.Причина, по которой я использую Table.ColumnNames(#"Changed Type")
в формуле вместо списка имен отдельных столбцов, заключается в том, что я не знаю, сколько у вас будет столбцов или как они будут называться, и это должно охватить их все.
Теперь нажмите на столбец с записями Data # (на рисунке выше это первый столбец), затем перейдите на вкладку Transform, и стрелка раскрывающегося списка Unpivot Columns и Unpivot Other Columns:
Вы должны увидеть это:
Теперь нажмите на значок функции, чтобыслева от строки формул и введите ее в строке формул:
= Table.ReplaceValue(#"Unpivoted Other Columns","""null""",null,Replacer.ReplaceValue,Table.ColumnNames(#"Unpivoted Other Columns"))
... и нажмите клавишу ввода.
Вы должны увидеть это:
Вот полный код М для этого:
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"