В чем разница между [column] и Table.Column (Таблица, «столбец») в M / PowerBI / PowerQuery - PullRequest
1 голос
/ 26 марта 2020

Ciao там!

У меня проблема с разницей между [column] и Table.Column (Table, "column") в M / PowerBI / PowerQuery.


Пример таблицы:
'#____ столбец
1 _______ a
2 _______ b
3 _______ c

Желаемый результат:
' #____ column
1 _______ TEST
2 _______ ТЕСТ
3 _______ ТЕСТ


Итак, в настоящее время у меня есть следующий код:

= Table.ReplaceValue(PrevQueryTable, each Table.Column(PrevQueryTable, "column"), 
            "TEST", 
        Replacer.ReplaceValue, {"column"})

, который не работает. Результат:

'# ____ колонка
1 _______ a
2 _______ b
3 _______ c


Это однако:

= Table.ReplaceValue(PrevQueryTable, each [column], 
            "TEST", 
        Replacer.ReplaceValue, {"column"})

работает. Результат:

'# ____ колонка
1 _______ ТЕСТ
2 _______ ТЕСТ
3 _______ ТЕСТ


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

1 Ответ

0 голосов
/ 27 марта 2020

Table.Column возвращает список из одного столбца таблицы.

[column] возвращает значение в этом столбце для текущей строки .

В этом случае Я нахожу Table.TransformColumns более гибким, чем Table.ReplaceValue.

Если бы вы использовали GUI для преобразования нескольких столбцов в верхний регистр, он сгенерировал бы код, который выглядит следующим образом:

= Table.TransformColumns(
    PrevQueryTable,
    {{"Col1", Text.Upper, type text},
     {"Col2", Text.Upper, type text},
     {"Col3", Text.Upper, type text}})

Это может служить шаблоном для того, как мы хотим написать наше собственное преобразование. Предположим, у нас есть список имен столбцов ColumnList (например, из Table.ColumnNames). Мы могли бы преобразовать этот список, добавив функции преобразования к каждому элементу следующим образом:

= Table.TransformColumns(
    PrevQueryTable,
    List.Transform(
        ColumnList,
        each {_, each "TEST", type text}
    )
  )

Например, "col1" преобразуется в {"col1", each "TEST", type text}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...