我有以下格式的数据,在列A中有唯一的ID,但这些ID可以出现在多个行中,代表针对该个人的重复事务。在列B中,我有该事务的日期时间戳,在列C中,有事务的名称;
Col A Col B Col C
ABC1 15/02/2018 16:26 Apple
ABC1 14/02/2018 11:26 Pear
ABC1 13/02/2018 09:11 Pear
ABC2 15/02/2018 16:26 Orange
ABC2 14/02/2018 11:26 Pear
ABC2 13/02/2018 09:11 Apple
ABC3 15/02/2018 16:26 Grape
ABC3 14/02/2018 11:26 Orange
ABC3 13/02/2018 09:11 Apple我试图用日期戳上的MIN和MAX标准来旋转这些数据,以获得有多少条记录将C列中的哪个事务作为其第一个事务,有多少条记录将C列中的X事务作为其最新事务,等等,目的是在类似以下内容的情况下最终确定数据;
最小(第一个)事务:
Distinct Count Col A Col C
1 Pear
2 Apple 最大(上一个)事务数:
Distinct Count Col A Col C
1 Grape
1 Orange
1 Apple有没有办法用我遗漏的透视表做到这一点?我在这里处理数百万行的数据,因此通过pivot操作对我来说更容易(通过power查询加载数据),而不是使用公式等。如果需要,我可以在加载过程中连接列。
提前感谢您的帮助。
发布于 2018-02-16 18:51:20
使用辅助列,因为这将允许您使用最大和最小的页面过滤器,而不是依赖于对每一列的排序。
将您的数据设置为表。然后添加一个max列和一个min列。
最大列公式:
=IF([@[Col B]]=MAX([Col B]),1,0)最小列公式:
=IF([@[Col B]]=MIN([Col B]),1,0)创建两个轴。1表示最大值,1表示最小值,并将最大值或最小值放在页面字段中,并根据1进行筛选(例如,日期是源值的最大值或最小值)

按C列(水果名称列)的计数对C列进行排序,以您认为合适的方式排序。如果您对最小日期计数最小的水果感兴趣,则按最小值升序。
最终结果:

您可以随时删除不需要的字段,例如B列,以获得完全相同的外观:

编辑:
如果您想按ID显示每个水果的计数,则可以使用查找表pivot(s)来显示该ID的最小日期
每个ID的最小值的示例查找表pivot

然后在源表的helper列中引用该表,使用索引匹配检索最小日期,并与相同ID的数据表中的日期进行比较:
帮助器列(MinMatch)中的公式:
=IF(INDEX(LookupMin!B:B,MATCH(A2,LookupMin!A:A,0))=[@Date],1,0)

注意:如果您创建了一个唯一的ID & Fruit键并对其进行查找,这将会容易得多。
帮助器列公式为:
=IFERROR(IF([@[Col B]]=INDEX(LookupMin!$A:$E,MATCH([@[Col A]],LookupMin!$A:$A,0),MATCH([@[Col C]],LookupMin!$4:$4)),1,0),"")LookupMin!是具有最小轴心点的板材。
请注意,我在数据表上使用了一个pivot来查看每个ID的最小日期的每个水果的计数。
您可以使用公式来代替,但这样您就会有重复的总和,即参见F栏

E中的公式(然后向下拖动):
=SUMIFS([MinMatch],[Fruit],C2,[ID],A2)最后,如果您想要ID和水果的最早日期,可以按如下方式更改查找:

https://stackoverflow.com/questions/48812151
复制相似问题