Как найти последнее изменение категории для продукта, используя функцию Excel - PullRequest
0 голосов
/ 30 марта 2020

У меня ниже сценария ios с миллионами строк, где я должен заполнить данные на основе другой таблицы. Может ли кто-нибудь помочь в этом

Таблица 1:

Date       Category Product   Change?

1/1/2010​   Cat 1   Prod 1  
12/2/2019​  Cat 2   Prod 1  
1/1/2020​   Cat 3   Prod 3  
3/2/1989​   Cat 4   Prod 4  
5/2/1990​   Cat 5   Prod 4  
2/2/2020​   Cat 6   Prod 2  

Таблица 2:

Product    Category  Expected Category

Prod 1               Cat 2
Prod 2               Cat 6
Prod 3               Cat 3
Prod 4               Cat 5

Проблема 1: Я должен заполнить последнюю категорию в таблице 2 на основе в последнюю дату, доступную в таблице 1. Ожидаемая категория (ответ) приводится в последнем столбце таблицы 2

Проблема 2: Истина / Ложь, заполняемая в таблице 1 «Изменить?» столбец в зависимости от того, есть ли изменение категории для продукта

Ответы [ 2 ]

1 голос
/ 30 марта 2020

Нет необходимости сортировать таблицу.

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

Если у вас есть O365 с функциями FILTER и SORT, вы можете использовать:

=INDEX(SORT(FILTER(Table1,Table1[Product]=[@Product]),1,-1),1,2)
  • FILTER возвращает таблицу, которая содержит только указанный продукт
  • SORT, затем сортирует эту таблицу descending, так что самая новая находится в первой строке.
  • INDEX возвращает содержимое первой строки, второй столбец, который будет соответствующей Категории.

enter image description here

Если у вас нет этих функций, вы можете использовать:

=LOOKUP(2,1/((AGGREGATE(14,6,1/(Table1[Product]=[@Product])*Table1[Date],1)=Table1[Date])*([@Product]=Table1[Product])),Table1[Category])
1 голос
/ 30 марта 2020

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

=LOOKUP(2,1/($C$2:$C$7=F5),$B$2:$B$7)

True / False для заполнения в таблице 1 «Изменить?» столбец, основанный на том, есть ли какое-либо изменение категории для продукта ... Это может быть сделано с помощью индикаторов. Если есть изменения, продукт появится более одного раза.

Итак D7 = IF(COUNTIFS($C$2:$C$7,C7)>1,"True","False")

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...