Power Query. ВПР без Merge / Join

preview_player
Показать описание
Вам нужно подставить 1 столбец из другой таблицы. Как это сделать без операции Merge.

Эпизоды:
00:00 О чем этот урок
01:06 Предварительная работа
03:45 Подставляем данные из столбца другой таблицы
Рекомендации по теме
Комментарии
Автор

Эпизоды:
00:00 О чем этот урок
01:06 Предварительная работа
03:45 Подставляем данные из столбца другой таблицы

comrade_excel
Автор

Где Вы всему этому научились?
Как возможно в принципе дойти до такого ...???!!!
Я в шоке от каждого видео.
Низкий поклон за труд.

chale_r
Автор

Интересное наблюдение: чтобы из table сделать record я сначала по ошибке использовал функцию Table.ToRecords. В итоге получил list из records, то есть совсем не то, что требовалось. Потом подсмотрел в данном видео, что использовалась другая функция - Record.FromTable. Ещё важная особенность этой функции в том, что первый столбец таблицы должен непременно называться Name, а второй - Value, иначе PQ выдаёт ошибку, поэтому переименование столбцов в данном видео было отнюдь не косметическое.
Ещё важный момент: в таблицах, из которых подтягиваем значения, не должно быть дублей - иначе выдаст ошибки.

uiwumml
Автор

5:18 Вот никак не пойму, почему тут нам не выдаёт ошибку: Ведь мы же ссылаемся на столбец внешней таблицы, который по идее не виден, и должна выдаваться ошибка. Товарищ Excel, пожалуйста, объясни этот момент: почему в примерах где мы использовали функцию Table.SelectRows и ссылались на столбец внешней таблицы, нам выдавалась ошибка (и мы использовали вложенную конструкцию let ... in ...), а в этом примере ошибку не выдаёт?

uiwumml
Автор

Спасибо за видео, подскажите, если в таблице есть повторяющиеся значения, как сделать так, чтоб ошибка не появлялась, и бралось первое значение, как происходит когда используем merge?

alexeast
Автор

Можно немного сократить количество ссылок с помощью List.PositionOf:
= Table.AddColumn(
Пользовательский1,
"ticket_price",
each
{ List.PositionOf( rec_tables[ticket_types][ticket_type], [ticket_type] ) }
)

ivankostikov
Автор

Если подтягиваемого значения не окажется, выдаст ошибку по аналогии с впр? И как сделать так чтобы ошибки не было? Iferror ?

MrSiberianMan
Автор

Из текущего примера не совсем понятно для чего городить огород? чем эта функция лучше merge? в данном примере рациональнее использовать именно merge, тк в будущем разобраться в происходящем будет сильно проще, чем в этом избыточном нагромождении кода.

ruMontyRaptor
Автор

Не рекомендую этот метод
Во первых он работает дольше, чем Join таблиц. Если мы попытаемся таким методом соединить две большие таблицы, то это займёт очень много времени. Даже с буферизацией таблиц.

Во вторых, в этом видео пропущена важная деталь, которая может привести к ошибке. Когда мы составляем подобный запрос TableName{[ColumName = Value1]} то если в таблице будет несколько одинаковых значений Value1 то произойдет ошибка. Т.е. таблица из которой мы берём значения должна содержать только уникальные значения

ilzebra