MyTetra Share
Делитесь знаниями!
Power Query. Формулы М. Ссылки 3
Время создания: 07.10.2021 20:30
Текстовые метки: Power Query, Формулы М
Раздел: !Закладки - MSO - Excel - Power Query
Запись: adgaver/mytetra_base_New/master/base/1633627809fr423y1hg3/text.html на raw.githubusercontent.com

Описание

В этом уроке мы повторим ссылки в Power Query, а именно:

  • Как сослаться на определенную строку и столбец в Power Query

В этом уроке мы решим задачу процентного прироста, т. е. сравним как отличается значение в текущей строке от значения в предыдущей.

Решение

Для решения этой задачи нам нужно будет сначала добавить столбец индекса к таблице, а потом добавить столбец, в котором мы сошлемся на предыдущее значение с помощью значения из столбца индекса.

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

  • Csv.Document
  • File.Contents
  • QuoteStyle.None
  • Table.SelectColumns
  • Table.RenameColumns
  • Table.TransformColumnTypes
  • Table.AddColumn
  • Table.Buffer
  • Table.AddIndexColumn
  • Table.RemoveColumns

Код

let
   source = Csv.Document(
      File.Contents(Путь & "pamm_208779_monitoring_daily_all_candle.csv"), 
      [
         Delimiter  = ";", 
         Columns    = 10, 
         Encoding   = 1251, 
         QuoteStyle = QuoteStyle.None
      ]
   ), 
   cols_select = Table.SelectColumns(
      source, 
      {"Column1", "Column2", "Column3", "Column4", "Column5"}
   ), 
   cols_rename = Table.RenameColumns(
      cols_select, 
      {
         {"Column1", "Дата"}, 
         {"Column2", "Открытие"}, 
         {"Column3", "Максимум"}, 
         {"Column4", "Минимум"}, 
         {"Column5", "Закрытие"}
      }
   ), 
   cols_type = Table.TransformColumnTypes(
      cols_rename, 
      {{"Дата", type date}}
   ), 
   cols_type_2 = Table.TransformColumnTypes(
      cols_type, 
      {
         {"Открытие", type number}, 
         {"Максимум", type number}, 
         {"Минимум", type number}, 
         {"Закрытие", type number}
      }, 
      "en-US"
   ), 
   tab_add_col_1 = Table.AddColumn(
      cols_type_2, 
      "Прибыль", 
      each Инвестиция * ([Закрытие] * 0.01), 
      type number
   ), 
   tab_add_idx = Table.Buffer(Table.AddIndexColumn(tab_add_col_1, "Индекс", 0, 1)), 
   tab_add_col_2 = Table.AddColumn(tab_add_idx, "Доходность", each try
         (
            (Инвестиция + tab_add_idx{[Индекс]}[Прибыль])
               - (Инвестиция + tab_add_idx{[Индекс] - 1}[Прибыль])
         )
            / (Инвестиция + tab_add_idx{[Индекс]}[Прибыль])
      otherwise
         0), 
   cols_select_2 = Table.RemoveColumns(tab_add_col_2, {"Индекс"})
in
   cols_select_2
Так же в этом разделе:
 
MyTetra Share v.0.58
Яндекс индекс цитирования