Страницы: 1
RSS
POWER BI, создание столбца с подсчетом номера обращения
 
Доброго дня!
Уважаемые знатоки, наткните на мысль, самостоятельно осваиваю Power BI, пытаюсь понять как в таблице, как во вложении через преобразования в BI добавить столбец, который считал бы порядковый номер обращения клиента по уникальному ID клиента (в примере столбец А)
 
Код
let
    Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    #"Измененный тип" = Table.TransformColumnTypes(Источник,{{"uuid", type text}, {"ФИО клиента", type text}}),
    #"Сгруппированные строки" = Table.Group(#"Измененный тип", {"uuid", "ФИО клиента"}, {{"Количество", each Table.RowCount(_), type number}}),
    #"Сортированные строки" = Table.Sort(#"Сгруппированные строки",{{"Количество", Order.Ascending}})
in
    #"Сортированные строки"
Вполне такой нормальный кинжальчик. Процентов на 100
 
цитирование - не бездумная копия [МОДЕРАТОР]

А Вы писали часть кода, конкретно 4 и 5 строки? Пытаюсь понять как это вписать в мой код где uuid "Client"
Код
let
    Источник = Folder.Files("E:\Общая папка\Аналитика\\Сценарий"),
    #"Отфильтрованные скрытые файлы1" = Table.SelectRows(Источник, each [Attributes]?[Hidden]? <> true),
    #"Вызвать настраиваемую функцию1" = Table.AddColumn(#"Отфильтрованные скрытые файлы1", "Преобразовать файл (3)", each #"Преобразовать файл (3)"([Content])),
    #"Переименованные столбцы1" = Table.RenameColumns(#"Вызвать настраиваемую функцию1", {"Name", "Source.Name"}),
    #"Другие удаленные столбцы1" = Table.SelectColumns(#"Переименованные столбцы1", {"Source.Name", "Преобразовать файл (3)"}),
    #"Столбец расширенной таблицы1" = Table.ExpandTableColumn(#"Другие удаленные столбцы1", "Преобразовать файл (3)", Table.ColumnNames(#"Преобразовать файл (3)"(#"Пример файла (3)"))),
    #"Измененный тип" = Table.TransformColumnTypes(#"Столбец расширенной таблицы1",{{"Date", type date}, {"Time", type time}, {"Client", type text}, {"Operator", type text}, {"uuid", type text}, {"FirstName", type text}, {"ТаймЗона", type text}, {"Результат звонка", type text}, {"Комментарий", type text}}),
    #"Строки с примененным фильтром" = Table.SelectRows(#"Измененный тип", each ([Результат звонка] <> "Нет контакта"))
in
    #"Строки с примененным фильтром"
Изменено: vikttur - 22.12.2021 14:47:56
 
китин, мне кажется, ТС нужно другое: не количество обращений каждого пользователя, а ранжировать обращения для каждого пользователя.
wolfy36, Так как нет столбцов (дата, дата/время), по которым можно сортировать для определения порядка обращений, то порядок тот же, как в начальных данных (при помощи первого индекса):
Код
let
  data = Excel.CurrentWorkbook(){[ Name = "data" ]}[Content], 
  addRowID = Table.AddIndexColumn ( data, "row_ID", 0, 1 ), 
  group = Table.Group (
    addRowID, 
    { "uuid" }, 
    {
      {
        "table", 
        ( x ) => Table.AddIndexColumn ( Table.RemoveColumns ( Table.Sort ( x, { { "row_ID", Order.Ascending } } ), "row_ID" ), "Номер обращения", 1 )
      }
    }
  ), 
  combine = Table.Combine ( group[table] )
in
  combine
 
Цитата
написал:
не количество обращений каждого пользователя, а ранжировать обращения для каждого пользователя.
Не, дата и время не причем, они есть в оригинале, тут вопрос в том чтобы присваивать номер обращения...и да...адаптировать код под свой...что то unreal
Изменено: wolfy36 - 22.12.2021 13:37:07
 
wolfy36, а если после Вашего последнего шага поставить запятую, удалить in #"Строки с примененным фильтром" и вставить код ниже?
Код
  addRowID = Table.AddIndexColumn ( #"Строки с примененным фильтром", "row_ID", 0, 1 ), 
  group = Table.Group (
    addRowID, 
    { "uuid" }, 
    {
      {
        "table", 
        ( x ) => Table.AddIndexColumn ( Table.RemoveColumns ( Table.Sort ( x, { { "row_ID", Order.Ascending } } ), "row_ID" ), "Номер обращения", 1 )
      }
    }
  ), 
  combine = Table.Combine ( group[table] )
in
  combine
Изменено: surkenny - 22.12.2021 13:44:10
 
Вот так
Изменено: wolfy36 - 22.12.2021 13:45:52
 
Цитата
wolfy36 написал:
Не, дата и время не причем, они есть в оригинале, тут вопрос в том чтобы присваивать номер обращения
Вы вообще вчитывались в то, что я написал? В каком порядке нужно номер присвоить? В Вашем примере в Excel и у 4-ая, и 9-ая строки могут быть первым обращением. Либо нумеруем по порядку строк в данных (мой код), либо вообще не добавляем row_ID и сортируем при группировке по дате/времени.

Цитата
wolfy36 написал: Вот так
Я случайно не скопировал строку addRowID в первый раз. Сейчас код исправлен, будет работать
 
surkenny, WOW!!!! Огромное спасибо, Вы сделали мой день, все робит, пошёл разбираться как это и видимо учить DAX, дай бог Вам здоровья)))
 
Цитата
wolfy36 написал:
видимо учить DAX,
Это не DAX. Это M. :) Да, нужно будет учить 2 языка программирования. А потом еще Python и R для полноценного использования :)
В DAX нет такого же аналога. Можно сделать через RANKX, но пока не думайте об этом.
 
То есть начинать надо с М? А потом DAX?
Страницы: 1
Наверх