Файлы к уроку:
Ссылки:
Описание
В одном из уроков курса по веб-запросам мы разбирали как можно получить вакансии с помощью HH API. Недостатком этого способа является ограничение на количество строк: можно получить только 2000 вакансий.
Решение
Чтобы получить более 2000 вакансий нужно воспользоваться параметром clusters. Этот параметр разбивает вакансии на группы. Нужно выбрать такую разбивку, при которой ни один из кластеров не будет больше 2000. В данном примере я воспользуюсь разбивкой по станциям метро.
Примененные функции
- Json.Document
- Web.Contents
- Table.FromRecords
- List.Select
- Record.HasFields
- Table.ExpandRecordColumn
- Table.AddColumn
- Number.IntegerDivide
- Number.Mod
- Table.ExpandListColumn
- Function.InvokeAfter
- Text.From
Код
Получить вакансии.
Json.Document(Web.Contents("api.hh.ru/vacancies?text="&hh_query&"&area="&hh_area&"&clusters=true"&"&per_page=100&page=0"))
Преобразовать в читаемую таблицу.
let
get_record =
Table.FromRecords(main_query[clusters]){[name="Метро"]},
get_list =
get_record[items],
get_table =
Table.FromRecords(List.Select(get_list,
each Record.HasFields(_,
{"metro_station"}))),
get_metro_id =
Table.ExpandRecordColumn(get_table,
"metro_station",
{"id"},
{"metro_id"}),
col_page =
Table.AddColumn(get_metro_id,
"page",
each {0..Number.IntegerDivide([count],
100) + Number.Mod([count],
100) / Number.Mod([count],
100) - 1}),
col_expand_1 =
Table.ExpandListColumn(col_page,
"page"),
col_get_vacs =
Table.AddColumn(col_expand_1,
"get_vacs",
each Json.Document(Function.InvokeAfter(()=>Web.Contents("http://api.hh.ru/vacancies?text="
& hh_query
& "&area="
& hh_area
& "&metro=" & [metro_id]
& "&per_page=100&page="
& Text.From([page])),
#duration(0, 0, 0, 1.5)))[items]),
col_expand_2 =
Table.ExpandListColumn(col_get_vacs,
"get_vacs"),
col_expand_3 =
Table.ExpandRecordColumn(col_expand_2,
"get_vacs",
{"id", "premium", "name", "department", "has_test", "response_letter_required", "area", "salary", "type", "address", "response_url", "sort_point_distance", "published_at", "created_at", "archived", "apply_alternate_url", "branding", "show_logo_in_search", "insider_interview", "url", "alternate_url", "relations", "employer", "snippet", "contacts", "schedule", "working_days", "working_time_intervals", "working_time_modes", "accept_temporary", "professional_roles", "accept_incomplete_resumes", "experience", "employment", "adv_response_url", "is_adv_vacancy", "adv_context"},
{"vac_id", "premium", "vac_name", "department", "has_test", "response_letter_required", "area", "salary", "vac_type", "address", "response_url", "sort_point_distance", "published_at", "created_at", "archived", "apply_alternate_url", "branding", "show_logo_in_search", "insider_interview", "vac_url", "alternate_url", "relations", "employer", "snippet", "contacts", "schedule", "working_days", "working_time_intervals", "working_time_modes", "accept_temporary", "professional_roles", "accept_incomplete_resumes", "experience", "employment", "adv_response_url", "is_adv_vacancy", "adv_context"}),
col_expand_4 =
Table.ExpandRecordColumn(col_expand_3,
"salary",
{"from", "to", "currency", "gross"},
{"salary.from", "salary.to", "salary.currency", "salary.gross"}),
col_expand_5 =
Table.ExpandRecordColumn(col_expand_4,
"snippet",
{"requirement", "responsibility"},
{"requirement", "responsibility"})
in
col_expand_5
Power Query Разное
Номер урока | Урок | Описание |
---|---|---|
1 | Power Query. Знакомство с Power Query | В этом уроке мы познакомимся в Power Query. Зачем нужен Power Query Как установить Power Query Как его Настроить Как изменить запрос |
2 | Power Query. Подключение XML | В этом уроке мы научимся подключаться к файлам в формате XML и импортировать эти данные в Excel. |
3 | Power Query. Уникальные значения двух столбцов | В этом уроке мы получим уникальные значения из двух столбцов таблицы. |
4 | Power Query. Импорт таблиц PDF | Импорт таблиц из файла PDF, импорт таблиц из множества PDF файлов с объединением в один датасет. |
5 | Power Query. Собрать разбитую строку | В этом практическом уроке мы научимся соединять разбитую строку. Этот пример взят из реальной практики одного из спонсоров канала. |
6 | Power Query. Пивот со счетом | В этом уроке мы создадим пивот, в котором будут пронумерованы столбцы. |
7 | Power Query. Минимальное значение в диапазоне | В этом уроке мы найдем минимальное значение в диапазоне строк. |
8 | Power Query. Нарастающий итог 2 | В этом уроке мы изучим еще один способ сделать нарастающий итог в Power Query. |
9 | Power Query. Нарастающий итог 3 | В этом уроке мы разберем еще один способ выполнить нарастающий итог в Power Query. |
10 | Power Query. Прирост населения Китая | В этом уроке мы сравним прирост населения Китая с приростом населения мира в целом за последние 200 лет. |
11 | Power Query. Повторяющиеся значения в строке | В этом уроке разберем как определить есть ли в строке повторения. |
12 | Power Query. Таблица навигации по функциям М | В этом уроке вы узнаете как создать таблицу навигации по всем функциям языка Power Query. |
13 | Power Query. Удалить запросы и модель данных из книги | Разберем как быстро удалить все запросы и модель данных из текущей книги. |
14 | Power Query. Открыть еще 1 Excel и еще 3 трюка | В этом видео я покажу как открыть еще 1 файл Excel, если у вас уже запущен Power Query. |
15 | Power Query. Подключиться к ZIP архиву | Пользовательская функция для подключения к zip файлу. Подключимся к txt файлу, который находится в zip архиве. |
16 | Power Query. Импорт Word | Импортируем таблицу из документа Word. Для спонсоров разберем импорт таблицы с объединенными ячейками. |
17 | Power Query. Фильтрация списком | В этом уроке мы хотим отфильтровать таблицу при помощи списка, например, хотим получить продажи определенных товаров. |
18 | Power Query. Пользовательская функция Switch | В этом уроке мы создадим пользовательскую функцию Switch. |
19 | Power Query. Информация о формате, Чтение zip | В этом уроке мы узнаем как получить информацию о формате ячеек при помощи Power Query. |
20 | Power Query. Импорт данных из gz | В этом уроке мы разберем как импортировать файл в формате gz. |
21 | Power Query. Удалить лишние пробелы, Text.Split | В этом уроке мы научимся удалять лишние пробелы в текстовом столбце таблицы. |
22 | Power Query. Параметры в SQL-запросе | Вы хотите, чтобы в ваш SQL-запрос подставлялось значение из параметра, источником которого является ячейка с листа Excel. |
23 | Power Query. Параметры в SQL-запросе 2 | Ваш запрос очень большой и количество параметров в нем большое. Как организовать все так, чтобы было удобно работать. |
24 | Power Query. Добавить столбец в каждую таблицу табличного столбца | В этом уроке вы узнаете как трансформировать табличный столбец, например, вы сможете добавить столбец индекса внутрь каждой таблицы табличного столбца. |
25 | Power Query. Интервальный просмотр 1 (ВПР 1) | Объединить 2 таблицы с интервальным просмотром = 1. |
26 | Power Query. Относительный путь к файлу и папке | Если ваш источник находится в той же папке, что и отчет, то вы можете указать относительный путь. В таком случае подключение не будет ломаться, если вы запустите файл на другом компьютере. |
27 | Power Query. Нарастающий итог в каждой категории | Применим функцию нарастающего итога не ко всей таблице, а к определенному окну. |
28 | Power Query. ВПР без Merge или Join | Вам нужно подставить данные из столбца другой таблицы. Как это сделать без объединения таблиц. |
Номер урока | Урок | Описание |
---|---|---|
29 | Power Query. Создать N копий выбранного столбца | Создадим функцию, чтобы пользователь мог указать нужное количество копий. |
30 | Power Query. Текст содержит подстроку из списка (Text.ContainsAny) | Нам нужно, чтобы отфильтровались строки, в которых содержится любая подстрока из списка. |
31 | Power Query. Генерация таблицы для веб-запросов | С помощью List.Generate сгенерируем таблицу для запросов к API |
32 | Power Query. Фильтрация табличного столбца с помощью столбца таблицы | Нужно отфильтровать табличный столбец с помощью другого столбца. |
33 | Power Query. Количество вхождений подстроки | Нужно посчитать сколько раз подстрока входит в строку. |
34 | Power Query. Скученные данные 4 | Еще один интересный пример работы со скученными данными. |
35 | Power Query. Антизаполнение / Unfill | То же самое, что Fill Down, но наоборот: вместо значений вернуть null. |
36 | Power Query. Получить код из текста | Есть текстовый файл с М-кодом. Как подключиться к файлу и выполнить этот код. |
37 | Power Query. Повторить строку N раз | Если строку нужно повторить определенное количество раз. |
38 | Power Query. Обработка PDF выписки | PDF выписку с результатами медицинских анализов преобразуем в таблицу. |
39 | Power Query. Объединить по вертикали файлы из разных папок | Папки с нужными файлами находятся в разных места. |
40 | Power Query. Объединение со знаками сравнения | Объединить таблицы по горизонтали со знаками сравнения. |
41 | Power Query. ABC анализ по категориям | ABC анализ отдельно для каждой категории. |
42 | Power Query. Более 2000 вакансий на лист Excel (API HH) | Дополним урок о получении вакансий HH. Разберем как получить более 2000 вакансий. |