Используя DAX в Power BI, как мне расширить диапазон чисел в ячейке?

Вопрос или проблема

У меня есть столбец, в котором содержатся как буквы, так и цифры, и я пытаюсь развернуть его в новые строки.
Я также хочу дублировать всю строку в пределах этого диапазона в новые строки. Можно ли это сделать в Excel?

Оригинальная таблица:

Столбец A Столбец B
A123-A125 Яблоки
B23-B24 Бананы

Новая таблица:

Столбец A Столбец B
A123 Яблоки
A124 Яблоки
A125 Яблоки
B23 Бананы
B24 Бананы
let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],

    
    AddCustomColumn = Table.AddColumn(Source, "ExpandedRange", each let
        RangeStart = Text.Middle([Column A], 1, Text.PositionOf([Column A], "-") - 1),
        RangeEnd = Text.Middle([Column A], Text.PositionOf([Column A], "-") + 1),
        StartNumber = Number.From(Text.Remove(RangeStart, {"A".."Z"})),
        EndNumber = Number.From(Text.Remove(RangeEnd, {"A".."Z"})),
        Prefix = Text.Remove(RangeStart, {"0".."9"}),
        RangeList = List.Transform({StartNumber..EndNumber}, each Prefix & Text.From(_))
    in
        RangeList),
    
    ExpandColumn = Table.ExpandListColumn(AddCustomColumn, "ExpandedRange"),

    RemoveOriginalColumn = Table.RemoveColumns(ExpandColumn, {"Column A"}),

    RenameColumns = Table.RenameColumns(RemoveOriginalColumn, {{"ExpandedRange", "Column A"}})

in
    RenameColumns

введите описание изображения здесь

Ответ или решение

Для решения задачи по развертыванию диапазона чисел и букв в столбце Power BI с использованием DAX, мы можем применить Power Query, так как DAX не предоставляет прямых функций для развертывания строк. Вот пошаговая инструкция на русском языке, как это можно сделать:

  1. Импорт данных: Начните с импорта вашего исходного набора данных в Power BI.

  2. Перейдите в редактор Power Query: На панели инструментов Power BI выберите "Преобразовать данные", чтобы открыть редактор Power Query.

  3. Создание кастомного столбца:

    • Выберите вашу таблицу и перейдите к вкладке "Добавить столбец".
    • Нажмите "Пользовательский столбец".
    • Введите имя нового столбца (например, "ExpandedRange") и вставьте следующий код в редактор формул:
let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content], // Замените "Table1" на имя вашей таблицы
    AddCustomColumn = Table.AddColumn(Source, "ExpandedRange", each 
        let
            RangeStart = Text.Middle([Column A], 1, Text.PositionOf([Column A], "-") - 1),
            RangeEnd = Text.Middle([Column A], Text.PositionOf([Column A], "-") + 1),
            StartNumber = Number.From(Text.Remove(RangeStart, {"A".."Z"})),
            EndNumber = Number.From(Text.Remove(RangeEnd, {"A".."Z"})),
            Prefix = Text.Remove(RangeStart, {"0".."9"}),
            RangeList = List.Transform({StartNumber..EndNumber}, each Prefix & Text.From(_))
        in
            RangeList),
    ExpandColumn = Table.ExpandListColumn(AddCustomColumn, "ExpandedRange"),
    RemoveOriginalColumn = Table.RemoveColumns(ExpandColumn, {"Column A"}),
    RenameColumns = Table.RenameColumns(RemoveOriginalColumn, {{"ExpandedRange", "Column A"}})
in
    RenameColumns
  1. Расширение списка: После добавления этого пользовательского столбца, вы используете функцию Table.ExpandListColumn, чтобы превратить элементы списка в новые строки.

  2. Удаление оригинального столбца: Затем удалите оригинальный столбец "Column A" и переименуйте только что созданный столбец "ExpandedRange" обратно в "Column A".

  3. Завершение процесса: После выполнения вышеуказанных шагов, нажмите "Закрыть и загрузить", чтобы вернуть преобразованные данные в Power BI.

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

Следуя этим шагам, вы сможете эффективно развернуть диапазоны и продублировать строки в Power BI. Если вам нужно что-то более сложное или у вас есть дополнительные вопросы, не стесняйтесь обращаться за помощью.

Оцените материал
Добавить комментарий

Капча загружается...