Файлы к уроку:
Ссылки:
Описание
В этом уроке мы научимся преобразовывать данные, которые все находятся в одном столбце. Бывают разные программные продукты, в которых выгрузка происходит одним столбцом. Вам потом нужно как-то этот столбец преобразовать в нормальную таблицу.
Решение
Если присмотреться, то мы увидим, что данные по каждому тикеру длятся 9 строк.
Мы создадим столбец индекса, а потом создадим столбец с вычислением остатка от деления на 9. В результате начало каждой строки будет обозначено цифрой 0, а конец цифрой 0.
Чтобы преобразовать этот столбец в нормальную таблицу мы применим следующие приемы:
- Столбец индекса
- Остаток от деления
- Столбец сведения (Пивот)
- Заполнение вниз
Примененные функции
- Table.AddIndexColumn
- Table.AddColumn
- Number.Mod
- Table.Pivot
- Table.TransformColumnTypes
- List.Distinct
- Table.FillUp
- Table.SelectRows
- Table.SelectColumns
- Table.RenameColumns
Код
let
source = Excel.CurrentWorkbook(){[Name = "Сделки"]}[Content],
tab_index_col = Table.AddIndexColumn(source, "Индекс", 0, 1),
tab_mod_col = Table.AddColumn(
tab_index_col,
"Остаток от деления",
each Number.Mod([Индекс], 9),
type number
),
tab_pivot = Table.Pivot(
Table.TransformColumnTypes(
tab_mod_col,
{{"Остаток от деления", type text}},
"en-US"
),
List.Distinct(
Table.TransformColumnTypes(
tab_mod_col,
{{"Остаток от деления", type text}},
"en-US"
)[#"Остаток от деления"]
),
"Остаток от деления",
"Сделки"
),
cols_fillup = Table.FillUp(tab_pivot, {"1", "2", "3", "4", "5"}),
rows_select = Table.SelectRows(cols_fillup, each ([0] <> null)),
cols_select = Table.SelectColumns(
rows_select,
{"0", "1", "2", "3", "4", "5"}
),
cols_rename = Table.RenameColumns(
cols_select,
{
{"0", "Дата"},
{"1", "Тикер"},
{"2", "Сумма"},
{"3", "Количество"},
{"4", "Цена"},
{"5", "Комиссия"}
}
),
types = Table.TransformColumnTypes(
cols_rename,
{
{"Дата", type date},
{"Тикер", type text},
{"Сумма", type number},
{"Количество", type number},
{"Цена", type number},
{"Комиссия", type number}
}
)
in
types
Этот урок входит в Базовый курс Power Query
Номер урока | Урок | Описание |
---|---|---|
1 | Зачем нужен Power Query. Обзор возможностей | Этот урок сам по себе является мини-курсом. Здесь вы узнаете для каких видов операций с данными создан Power Query. |
2 | Подключение Excel | Подключаемся к файлам Excel. Импортируем данные из таблиц, именных диапазонов, динамических именных диапазонов. |
3 | Подключение CSV/TXT, таблиц, диапазонов | Подключаемся к к файлам CSV/TXT, Excel. |
4 | Объединить таблицы по вертикали | Учимся объединять две таблицы по вертикали — combine. |
5 | Объединить по вертикали все таблицы одной книги друг за другом | Как объединить по вертикали все таблицы одной книги, находящиеся на разных листах Excel. |
6 | Объединить по вертикали все файлы в папке | Объединяем по вертикали таблицы, которые находятся в разных файлах в одной папке. |
7 | Объединение таблиц по горизонтали | Учимся объединять таблицы по горизонтали — JOIN, merge. |
8 | Объединить таблицы с агрегированием | Объединить таблицы по горизонтали и сразу выполнить группировку с агрегированием — JOIN + GROUP BY. |
9 | Анпивот (Unpivot) | Изучаем операцию Анпивот — из сводной таблицы делаем таблицу с данными. |
10 | Многоуровневый анпивот (Анпивот с подкатегориями) | Более сложный вариант Анпивота — в строках находится несколько измерений. |
11 | Скученные данные | Данные собраны в одном столбце, нужно правильно его разбить на несколько. |
12 | Скученные данные 2 | Разбираем еще один пример скученных данных. |
13 | Ссылка на другую строку | Как сослаться на другую строку. |
14 | Ссылка на другую строку 2 | Как сослаться на другую строку, используя объединение по горизонтали. |
15 | Виды объединения таблиц по горизонтали | Изучаем виды объединения таблиц по горизонтали — LEFT JOIN, FULL JOIN, INNER JOIN, CROSS JOIN. |
16 | Виды объединения таблиц по горизонтали 2 | Изучаем анти-соединение и соединение таблицы с ней же самой — ANTI JOIN, SELF JOIN. |
17 | Группировка | Изучаем операцию группировки с агрегированием — GROUP BY. |
18 | Консолидация множества таблиц пользовательской функцией | Объединяем по вертикали множество таблиц с предварительной обработкой при помощи пользовательской функции. |
19 | Деление на справочник и факт | Разделим один датасет на два датасета: справочник и факт. |
20 | Создание параметра | Мы можем ввести значение в какую-то ячейку Excel, а потом передать это значение в формулу Power Query. |
21 | Таблица параметров | Создадим целую таблицу параметров и будем их использовать в запросах Power Query. |
22 | Объединение таблиц по вертикали, когда не совпадают заголовки столбцов | Как объединить две таблицы по вертикали, если названия столбцов не совпадают. |
23 | Поиск ключевых слов | Научимся искать ключевые слова в текстовом поле. |
24 | Поиск ключевых слов 2 | Будем искать ключевые поля в текстовом поле и присваивать этому значению какую-то категорию. |