MyTetra Share
Делитесь знаниями!
Power Query. Трюки и советы. Таблица навигации по функциям М
Время создания: 07.10.2021 20:18
Текстовые метки: Power Query
Раздел: !Закладки - MSO - Excel - Power Query
Запись: adgaver/mytetra_base_New/master/base/1633627131trdb96y28h/text.html на raw.githubusercontent.com

Главная Power Query Power Query. Трюки и советы. Таблица навигации по функциям М

Power QueryФормулы М

Power Query. Трюки и советы. Таблица навигации по функциям М

Описание

В этом уроке вы узнаете как создать таблицу навигации по всем функциям языка Power Query.

На картинке только кусочек таблицы. В полной версии вы увидите намного больше строк и столбцов.

Таблица содержит следующую информацию:

  • Название функции
  • Краткое описание из документации
  • Длинное описание из документации
  • Категория функции
  • Еще один вид описания
  • Код с примером использования
  • Результат использования

Решение

Чтобы получить перечень всех функций нам понадобится функция #shared.

К каждой функции в столбце функций нужно применить функции Value.Type и Value.Metadata.

Дальше останется только привести полученные данные к удобному виду.

Примененные функции

  • Record.ToTable
  • Table.SelectColumns
  • Text.Contains
  • Table.AddColumn
  • Value.Metadata
  • Value.Type
  • Table.ExpandRecordColumn
  • Table.ExpandListColumn
  • Table.SelectRows
  • Table.Sort
  • Order.Ascending
  • Table.TransformColumns
  • List.Accumulate
  • List.Positions
  • Text.Replace

Код

Код для получения готовой таблицы навигации по функциям М будет таким:

let

source = #shared,

to_table = Record.ToTable(source),

filter_name = Table.SelectRows(to_table, each Text.Contains([Name], ".")),

col_metadata = Table.AddColumn(

filter_name,

"Пользовательский",

each Value.Metadata(Value.Type([Value]))

),

cols_remove = Table.SelectColumns(col_metadata, {"Пользовательский"}),

expand_col = Table.ExpandRecordColumn(

cols_remove,

"Пользовательский",

{

"Documentation.Name",

"Documentation.Description",

"Documentation.LongDescription",

"Documentation.Category",

"Documentation.Examples"

},

{

"Documentation.Name",

"Documentation.Description",

"Documentation.LongDescription",

"Documentation.Category",

"Documentation.Examples"

}

),

expand_doc_examples_1 = Table.ExpandListColumn(expand_col, "Documentation.Examples"),

expand_doc_examples_2 = Table.ExpandRecordColumn(

expand_doc_examples_1,

"Documentation.Examples",

{"Description", "Code", "Result"},

{"Description", "Code", "Result"}

),

filter_doc_name = Table.SelectRows(expand_doc_examples_2, each ([Documentation.Name] <> null)),

sort_doc_name = Table.Sort(filter_doc_name, {{"Documentation.Name", Order.Ascending}}),

transform_col_doc_long_desc = Table.TransformColumns(

sort_doc_name,

{

{

"Documentation.LongDescription",

each List.Accumulate(

List.Positions(Тэги),

_,

(state, current) => Text.Replace(state, Тэги{current}, "")

),

type text

}

}

)

in

transform_col_doc_long_desc


Так же в этом разделе:
 
MyTetra Share v.0.58
Яндекс индекс цитирования