Знание windows на уровне эксперта это как

Удалить дубликаты — максимальное значение в другом столбце — M Power Query

Видеокурсы по Excel

В сотрудничестве с SEDUO я создал несколько видеокурсов:

  • Как работать с Excel – научитесь эффективно использовать Excel – самый популярный ( рейтинг 97 %, более 13 000 студентов, + 750 положительных отзывов ) – Получить курс
  • MaxiCourse Excel – получите лучшую работу, больше денег, станьте незаменимым ( более 6 часов просмотра, 160 уроков ) – Получить курс
  • G-таблицы. — если не нравится Excel, воспользуйтесь курсом на Google-таблицах

Удаляйте дубликаты в зависимости от требований к максимальному или минимальному значению.

Имейте диаграмму клиентов с их датой покупки. Вам нужно отобразить первую (последнюю) покупку, сделанную каждым клиентом. Или удалите дубликаты ( и оставьте запрошенный из дубликатов). Узнайте, как это сделать в Power Query, из этой статьи.

В том числе, как решить проблему, если исходная таблица не свернута так, как вам нужно ( и что может быть причиной этого ).

Приводит к удалению дубликатов

Как удалить дубликаты в Excel с помощью инструмента Power Query и языка M. Преимущество заключается в том, что вы также можете использовать его в Power BI.

Я предполагаю, что у меня есть базовые знания по работе с редактором Power Query, но что, если есть запрос на удаление ( то есть сохранение ) определенных повторяющихся записей? В этой статье мы рассмотрим, как это сделать и что из этого можно сделать ( если вы забудете, загруженные данные будут свернуты так, как вам нужно ).

Читайте также:  Windows 11 release preview как установить

Что мне нужно

Одно изображение говорит (показывает) больше, чем множество слов.

Исходные данные

Прежде чем мы начнем отображать уникальные данные, нам нужны данные. В нашем распоряжении есть простая таблица о клиентах. Которые имеют два столбца, один из которых является идентификатором клиента, авторой — дата продажи. У нас они есть в двух формах

  • отсортировано по дате продажи — от самой последней до самой старой даты
  • отсортировано по идентификатору

Нам потребуется идентификатор клиента и дата:

  • с самой последней даты (последняя дата проходит)
  • из самых старых (первый день продажи)

Уникальные, последние, если таблица

сопоставлена ​​надлежащим образом

Начнем с простой процедуры в Power Query. Я предполагаю, что у вас есть таблица, загруженная в Power Query.

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

Теперь осталось только удалить дубликаты. Щелкните правой кнопкой мыши и удалите дубликаты.

Вы также можете отсортировать результаты по клиентам следующим образом:

Если вы проверите вручную, удаленный дубликат действительно работает так, как вам нужно. На самом деле это вообще не работает, как мы покажем далее. Особенно, если исходная таблица не будет свернута ( что может случиться, вы должны исходить из того, что она не может быть свернута ).

Уникальные данные, если они не свернуты – проблема

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

Начнем с той же процедуры, что и в предыдущем случае. Я предполагаю, что у вас есть вторая несортированная таблица, загруженная в Power Query.

Читайте также:  Как поставить упрощенный стиль на windows 10

Сортировка уже нужна, нажмите на стрелку и отсортируйте по убыванию ( что должно работать ).

Мы удаляем дубликаты, и на первый взгляд все готово.

Громкость источникатаблицы имеют одинаковые данные, поэтому на первый взгляд видно, что результат неверен ( все покупатели сделали свои последние покупки в один и тот же день, 11 мая 2022 г. ). Несмотря на то, что есть запрос на свертывание таблицы (и вы можете видеть, что таблица свернута на соответствующем шаге), взгляд на решение показывает, что оно не удалось.

М-ко работает блестяще, то есть лениво, поэтому не выполняет некоторые действия, если они не нужны для создания результата ( что не так уж и необходимо для удаления дубликатов — вы хотите удалить дубликаты на основе данных столбца, да, вы хотите больше, но не пропускайте шаг для получения дополнительной информации). Это будет долгое обсуждение, для тех, кто заинтересован, см. Table.Distinct и как Mko работает в фоновом режиме, так что давайте пропустим это и лучше зададимся вопросом, как сказать M, безумный факт — это необходимость .

Уникальные, если не собраны — решены

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

Во-первых, вам нужно войти в расширенный редактор (в меню «Главная» нажмите «Расширенный редактор») и отредактировать строку с фильтрацией. Или несколько:

#»Свернутые строки» = Table.Sort(#»Изменить тип»,<<«Дата покупки», Order.Descending>>), заполнить с помощью Table.Buffer() или шага Table.Sort(# «Тип переменной»,<<«Дата покупки», Order.Descending>>) функция переноса Table.Buffer() : #»Collapsed Rows» = Table.Buffer( Table.Sort(#»Тип переменной»,< ;<«Дата покупки», Порядок.По убыванию>>)),

Осторожно, скобки!

Нажмите ОК. Результат тогда, как вам нужно. Он действительно содержит последние покупки.

Уникальные номера для первых покупок

В том же духе мы также можем найти первый, здесь действительный для обеих таблиц, что вы должны «буферизировать» сопоставленную область.

Читайте также:  Как подготовить загрузочную флешку для windows 10

let Source = Excel.CurrentWorkbook()<[Name=»Table18″]>[Content], #»TransformColumnTypes» = Table.TransformColumnTypes(Source,<<«Customer», Int64.Type> , <«Дата покупки», введите дату>>), #»Свернутые строки» = Table.Buffer( Table.Sort(#»Тип переменной»,<<«Дата покупки», Order.Ascending>> ) ), #»Removed Duplicates» = Table.Distinct(#»Collapsed Rows», <«Customer»>), #»Collapsed Rows1″ = Table.Sort(#»Removed Duplicates»,<< «Customer» , Order.Ascending>>) в #»Collapsed rows1″

Несколько советов, которые следует запомнить

При использовании Table.Buffer он может ускорять или замедлять выполнение запросов ( в зависимости от того, как они построены ) из-за проблем с хранением данных. Если вы можете на 100 % гарантировать, что источник данных будет свернут так, как вам нужно, вы можете отказаться от использования этой функции и просто проверить, будет ли шаг выполнения быстрее без этой функции.

Похожие статьи

Статьи по теме о М-языке

Для скачивания

Бесплатная загрузка находится в стадии подготовки. Вы можете поддержать публикацию, поддержав на Patreon.

Всего

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

Статья обновлена: 13.05.2022 15:29

Если

Помог ли этот веб-сайт сэкономить вам время и деньги? Помог ли он решить проблему? Готовы ли вы предоставить символическое вознаграждение за дальнейшее развитие? Выберите форму вознаграждения, которая вам подходит.

Павел Ласбк — автор сайта

Microsoft Office (Word, Excel, Google Sheets , PowerPoint) Я использую с 2000 года (с 2004 года в этом домене) — В 2017 году я получил престижную награду MVP от Microsoft (пока я единственный из IR в категории Excel). Я делаю свои знания и опыт доступными онлайнв видео для SEDUO . В компаниях преподаю и консультирую , работаю в МУНИ. Я создаю этот сайт более 15 лет. Существует более 1000 бесплатных инструкций, советов и рекомендаций, включая более 250 различных шаблонов и рабочих книг.

Пока нет комментариев

Вы можете стать первым, кто оставит осмысленный комментарий.

Советы
Adblock
detector