Страницы: 1
RSS
Вывод уникальных значений строк в столбце сводной таблицы
 
Приветствую!

Есть задача, показать и подсчитать по месяцам уникальных клиентов, кто первый начал получать определенную номенклатуру.

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

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

Помогите пожалуйста с идеями, как можно реализовать данный отчет.

Заранее спасибо всем откликнувшимся.
 
Вариант решения в приложенном файле.
В вашу исходную таблицу добавила столбец, который проверяет, сколько раз во всем диапазоне встречалась строка, где Номенклатура, Получатель, Год и Наличие в отгрузке=Да полностью совпали. Далее, вашу исходную таблицу загрузила в Power Query, поиграла с ней немного и вывела результирующую таблицу на лист Вариант решения, а также и сводную таблицу нужного вида на её основе.
 
может не понял чего, но разве не так фильтруем стартующих:
Код
let
    from = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    filtr = Table.SelectRows(from, each ([Наличие в отгрузке] = "Да")),
    group = Table.Group(filtr, {"Получатель", "Номенклатура"}, {"tmp", each Table.First(_) })[tmp],
    to = Table.FromRecords(group)
in
    to
и это сразу на сводную подать источником
Соблюдение правил форума не освобождает от модераторского произвола
 
buchlotnik, знаючи и умеючи  - делают как вы, а не знаючи - изгаляются как я...Возьму на вооружение ваш пример - спасибо!
 
turbidgirl, buchlotnik, Спасибо за ваши идеи

turbidgirl, в вашем решении, не очень понял, зачем использовались индексы группировки встречающихся вхождений, если вы потом их не используете и фильтруете все по ответу "ДА" и далее удаляеете дубликаты.

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

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

Есть еще идеи?
 
Цитата
tdolgiy написал:
учитывал выбранный год
делов-то
Скрытый текст
Цитата
tdolgiy написал:
Решение похоже на turbidgirl,
каким местом не подскажете?
Соблюдение правил форума не освобождает от модераторского произвола
 
Доброе время суток
tdolgiy, а что вам мешает таки ввести порядок в данных на котором только и возможно определить
Цитата
tdolgiy написал:
кто первый начал получать определенную номенклатуру.
Религиозные убеждения? :)
 
buchlotnik,Попробую...

Итог вывода в обоих случаях будет фильтрация первых вхождений. Просто у вас через одну функцию, а у turbidgirl, через 2 - (Фильтраия по Да, и удаление дублей)
Ведь удаление дублей это и есть поиск первых вхождений в массиве. Конечно это зависит от сортировки, в которой происходит поиск дублей... но суть мне кажется та же.  

Или я что то недопонимаю?)
 
Андрей VG, Приветствую!
Цитата
а что вам мешает таки ввести порядок в данных на котором только и возможно определить
Ну давайте предположим, что вместо Года, Месяца и Числа, будет еще колонка со значением "Дата"... Как это поможет мне использовать фильтр сводной таблицы в качестве отсекателей года например? В любом случае, я не понимаю как при выборе 2020 года, заставить отсекать данные 2019горда и считать вывод клиентов, как будто не было 2019года.  Такое вообще возможно в варианте сводных таблиц? Или делать 2 отдельные таблицы за 2019 год и за 2020?

buchlotnik,
Цитата
buchlotnik написал: делов-то
Да, добавить год в группировку, вариант) Вроде все работает как нужно!
Спасибо за элегантное решение. Это точно лучше кучи отдельных таблиц!
 
Цитата
tdolgiy написал:
будет еще колонка со значением "Дата"..
Тогда вы сможете найти первую дату в рамках текущих ограничений срезов. Вы же этого хотели
Цитата
tdolgiy написал:
кто первый начал получать определенную номенклатуру.
Теперь достаточно найти тех получателей, у кого на эту первую дату были поставки. Осталось оставить только уникальных.
Цитата
tdolgiy написал:
при выборе 2020 года
При выборе 2020 года, подтаблица, видимая для мер не будет иметь данных 2019 года :)
Предложенный разве не работает таким образом?
 
Андрей VG, Да, уже сооброзил что пропустил(
бывает заработаешься за неделю и уже банальные вещи упускаешь из виду...

В любом случае спасибо за наводку и решение.
 
Цитата
Андрей VG написал:
tdolgiy , а что вам мешает...
... :(
Изменено: Михаил Лебедев - 02.03.2020 06:01:25
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
Цитата
Михаил Лебедев написал:
... :(  
Михаил, а у вас гранаты какой системы?
 
Цитата
Андрей VG написал:
гранаты какой системы?
Win'7 64-разр. MSO-2013 :(
PQ Версия: 32-разрядная версия 2.59.5135.201
Изменено: Михаил Лебедев - 02.03.2020 07:49:07
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
Страницы: 1
Наверх