Гид по технологиям

Как добавить столбец из другой таблицы в Power BI

5 min read Power BI Обновлено 05 Dec 2025
Добавить столбец из другой таблицы в Power BI
Добавить столбец из другой таблицы в Power BI

Кратко: в Power BI можно добавить столбец из другой таблицы тремя основными способами — через RELATED (при наличии связи), через DAX-выражение с фильтром (если связи нет) и через Power Query (индекс + обращение по позиции). Ниже — пошаговые инструкции, альтернативы, когда методы не подходят и готовый чеклист для быстрой работы.

Добавить столбец в Power BI — пример данных

Power BI предлагает множество функций для организации и визуализации данных, но некоторые операции, например добавление столбца из другой таблицы, могут казаться неочевидными. Ниже мы разберём три рабочих подхода и дадим практические советы по выбору.

Ситуация: описание проблемы

Пользователь в официальном форуме Microsoft описал задачу так:

У меня 2 таблицы: Table [A] и TimeZone. Как добавить новый столбец в [A], который будет использовать значение столбца из таблицы TimeZone без применения Merge Query? В таблице TimeZone только одно значение — смещение в часах. Я хотел бы использовать это значение как параметр, но не понял, как.

Цель — взять значение часов из таблицы TimeZone и применить его к строкам в Table [A] без ненужного объединения.

Способ 1 — есть связь между таблицами (RELATED)

Если таблицы связаны (через ключ), самый простой способ — добавить вычисляемый столбец DAX на таблице [A]:

New Column = RELATED(TimeZone[Value])

Пояснение: RELATED возвращает значение из связанной таблицы по существующей модели связей. Простая, быстрая и эффективная опция.

Важно: RELATED работает только при корректной однонаправленной или двунаправленной связи между таблицами.

Способ 2 — нет связи между таблицами (DAX с фильтром)

Если вы не используете модели связей, можно получить значение по ключу с помощью выражения с переменными и CALCULATE:

New Column =
var JoinCol = 'TableA'[ID]
var NewCol = CALCULATE(MAX('TimeZone'[Value]), 'TimeZone'[ID] = JoinCol)
return NewCol

Пояснение: мы берём ключ из TableA, затем вычисляем соответствующее значение из TimeZone с фильтрацией по ID. Для одиночного значения можно использовать MAX или VALUES, но учитывайте, что VALUES вернёт ошибку при нескольких значениях.

Когда это не сработает: если для одного ID в TimeZone несколько значений — результат будет неоднозначен. Решение — агрегировать (MAX, MIN) или уточнить логику сопоставления.

Альтернатива DAX: функция LOOKUPVALUE удобна для точечного поиска:

New Column = LOOKUPVALUE(TimeZone[Value], TimeZone[ID], 'TableA'[ID])

LOOKUPVALUE проще читать, но также предполагает однозначное соответствие.

Способ 3 — Power Query: индекс + обращение по позиции

Иногда удобнее сделать преобразование на уровне Power Query (M). Пошагово:

  1. Выберите Изменить запросы. Это откроет редактор Power Query. Кнопка «Изменить запросы» в Power BI
  2. Перейдите на вкладку Добавить столбец.
  3. Добавьте Индексный столбец и назовите его Index. Добавление индексного столбца в Power Query
  4. Добавьте Пользовательский столбец с выражением:
= Table2[ColumnName]{[Index]}

Пояснение: выражение обращается к таблице Table2 по позиции индекса. Этот приём удобен, когда таблицы синхронизированы по порядку или когда TimeZone содержит ровно одно значение на каждую позицию.

Замечание: индексирование опасно, если порядок строк не зафиксирован. Всегда сортируйте и проверьте соответствие индексов.

Альтернативные подходы и использование параметров

  • Merge Query (Объединение): иногда объединение таблиц — более очевидный и явный путь. Оно создаёт явную связь строк и подходит для сложных соответствий.
  • Параметры Power Query: если TimeZone действительно содержит одно глобальное значение (один сдвиг для всех строк), создайте параметр и используйте его в выражениях — это чище и более управляемо.
  • Использование Measure vs Calculated Column: если значение нужно лишь в визуализации, рассмотрите меру (Measure) вместо вычисляемого столбца, чтобы экономить модель и уменьшить размер.

Ментальная модель: ориентиры для выбора метода

  • Есть явная связь по ключу → RELATED.
  • Нет связи, но есть уникальный ключ → LOOKUPVALUE или CALCULATE с фильтром.
  • Одна строка-значение для всех записей → параметр Power Query.
  • Требуется гибкая предобработка → Power Query (Merge / Index).

Чеклист перед применением

  • Проверить наличие и тип связи между таблицами.
  • Убедиться, что для каждой пары ID ровно одно значение (или определить агрегат).
  • Решить: делать в модели (DAX) или в источнике (Power Query).
  • Тестировать на небольшом наборе данных.

Критерии приёмки

  • Значение из TimeZone корректно отображается в новом столбце для нескольких тестовых ID.
  • Нет дублирования или неожиданных NULL для известных ключей.
  • Производительность модели остаётся приемлемой после добавления столбца.

Когда методы не подходят (примеры ошибок)

  • Несоответствие порядка строк при использовании индексного метода.
  • Множественные значения в TimeZone для одного ID без определения агрегации.
  • Большой объём данных: вычисляемые столбцы могут увеличить объём модели — в таких случаях предпочтительнее меры или предобработка источника.

Мини‑плейбук: быстрый порядок действий

  1. Проверьте, доступно ли уникальное соответствие по ключу.
  2. Если да — используйте RELATED или LOOKUPVALUE.
  3. Если нет ключа, но порядок согласован — Power Query с индексом.
  4. Для глобального единственного значения — создайте параметр Power Query.
  5. Протестируйте и задокументируйте решение.

1‑строчный глоссарий

RELATED — функция DAX для получения значения из связанной таблицы; LOOKUPVALUE — точечный поиск по паре «столбец=значение».

Заключение

Добавление столбца из другой таблицы в Power BI может быть выполнено разными способами — выбор зависит от наличия связей, структуры данных и требований к производительности. RELATED и LOOKUPVALUE удобны при явных ключах; CALCULATE даёт гибкость; Power Query хорош для предобработки и параметров.

Важно: всегда проверяйте корректность сопоставления на тестовых данных и думайте о масштабируемости решения.

Наши рекомендации помогли? Оставьте комментарий с вашей задачей — подскажем оптимальный подход.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Отключить режим сна в Windows 10 — быстро
Windows

Отключить режим сна в Windows 10 — быстро

Как скачать Instagram Stories — подробное руководство
Социальные сети

Как скачать Instagram Stories — подробное руководство

Как жаловаться коллегам по e‑mail вежливо
Рабочие отношения

Как жаловаться коллегам по e‑mail вежливо

Как узнать свободное место на Chromebook
Chromebook

Как узнать свободное место на Chromebook

Скрытые функции Google Play — полезные приёмы
Android.

Скрытые функции Google Play — полезные приёмы

Как играть в игры PS3 на ПК с RPCS3
Эмуляция

Как играть в игры PS3 на ПК с RPCS3