Найдите клиентов, у которых дата выставления счета по порядку.

Вопросы и ответы

Я пытаюсь решить следующий запрос в Power Query, но после 2-3 попыток он еще не решен. Надеюсь, кто-то сможет помочь мне в этом. В таблице ниже я пытаюсь получить ответ в формате “да/нет” для анализа последовательной выставки счетов клиенту по его единственному заказу.

Клиент Название клиента Номер счета Дата Номер заказа Количества продаж Номер коробок
8512673 ABC Co. 7330538466 03/07/2024 5226538466 10 1
8512673 ABC Co. 7330540349 06/07/2024 5226540349 30 3
8512673 ABC Co. 7330541074 08/07/2024 5226541074 8 1
8512673 ABC Co. 7330542083 09/07/2024 5226541074 20 2
8512673 ABC Co. 7330542981 10/07/2024 5226541074 30 3
8512673 ABC Co. 7330543221 10/07/2024 5226543221 110 11
8512673 ABC Co. 7330544139 11/07/2024 5226544139 20 2
8512673 ABC Co. 7330545028 12/07/2024 5226544139 8 2
8512673 ABC Co. 7330545054 12/07/2024 5226545054 60 5
8512673 ABC Co. 7330546880 15/07/2024 5226546880 641.8 38
8512682 XYZ Co. 7330539099 04/07/2024 5226539099 9.6 2
8512682 XYZ Co. 7330539105 04/07/2024 5226539099 60 5
8512682 XYZ Co. 7330544844 12/07/2024 5226544844 60 5
8512682 XYZ Co. 7330556070 25/07/2024 5226556070 66 10

Нужен ответ в новом столбце с данными “Да/Нет” с анализом запроса в таблице выше…
Вот ответ как пример.

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

Ответ

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

  1. Загрузите данные в Power Query: Сначала импортируйте вашу таблицу с данными в Power Query.

  2. Сортировка данных: Сначала отсортируйте данные по клиенту и дате для того, чтобы упорядочить записи.

  3. Группировка по клиентам: Создайте новую таблицу, сгруппировав данные по «Customer» и «Sales Order».

  4. Добавление нового столбца: Теперь добавим новый столбец, который будет проверять последовательность дат для каждого клиента и его заказа. Для этого можно использовать несколько шагов:

    a. Инициализация переменной: Создайте переменную для хранения предыдущей даты.

    b. Проверка последовательности: Используйте оператор, который сравнивает текущую дату с предыдущей датой и проверяет, идет ли она в порядке возрастания.

Пример кода M для Power Query:

let
    // Загрузка данных
    Source = Excel.CurrentWorkbook(){[Name="YourTableName"]}[Content()],

    // Преобразование типов
    ChangedType = Table.TransformColumnTypes(Source,{{"Date", type date}}),

    // Сортировка по Customer и Date
    SortedTable = Table.Sort(ChangedType, {{"Customer", Order.Ascending}, {"Date", Order.Ascending}}),

    // Добавление столбца с предыдущей датой
    AddPreviousDate = Table.AddColumn(SortedTable, "Previous Date", each if [Customer] = Table.SelectColumns(Table.FirstN(SortedTable, [Index]), "Customer"){0} then null else Table.SelectColumns(Table.FirstN(SortedTable, [Index]), "Date"){0}),

    // Проверка последовательности
    AddSequentialColumn = Table.AddColumn(AddPreviousDate, "Is Sequential", each if [Previous Date] = null then "Yes" else if [Date] >= [Previous Date] then "Yes" else "No")
in
    AddSequentialColumn

Объяснение шагов:

  • Source: Загрузите данные из таблицы Excel.
  • ChangedType: Преобразуйте тип столбца «Date» в тип даты.
  • SortedTable: Отсортируйте таблицу по заказчику и дате.
  • AddPreviousDate: Добавьте столбец, который будет хранить дату предыдущего заказа для данного клиента.
  • AddSequentialColumn: Создайте новый столбец, который будет проверять, была ли текущая дата больше или равна предыдущей.

Результат:

Новый столбец «Is Sequential» будет содержать значение «Yes» или «No» для каждого заказа в зависимости от последовательности их выставления. Это позволит вам быстро проанализировать, были ли выставлены счета последовательно для каждого клиента.

Заключение:

После выполнения этих шагов вы получите требуемый результат. Не забудьте адаптировать код под ваши конкретные данные и имена столбцов.

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

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