首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >组中第一个/最后一个日期的不同值

组中第一个/最后一个日期的不同值
EN

Stack Overflow用户
提问于 2018-02-16 00:38:53
回答 1查看 413关注 0票数 0

我有以下格式的数据,在列A中有唯一的ID,但这些ID可以出现在多个行中,代表针对该个人的重复事务。在列B中,我有该事务的日期时间戳,在列C中,有事务的名称;

代码语言:javascript
复制
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事务作为其最新事务,等等,目的是在类似以下内容的情况下最终确定数据;

最小(第一个)事务:

代码语言:javascript
复制
Distinct Count Col A    Col C
1                       Pear
2                       Apple  

最大(上一个)事务数:

代码语言:javascript
复制
Distinct Count Col A    Col C
1                       Grape
1                       Orange
1                       Apple

有没有办法用我遗漏的透视表做到这一点?我在这里处理数百万行的数据,因此通过pivot操作对我来说更容易(通过power查询加载数据),而不是使用公式等。如果需要,我可以在加载过程中连接列。

提前感谢您的帮助。

EN

回答 1

Stack Overflow用户

发布于 2018-02-16 18:51:20

使用辅助列,因为这将允许您使用最大和最小的页面过滤器,而不是依赖于对每一列的排序。

将您的数据设置为表。然后添加一个max列和一个min列。

最大列公式:

代码语言:javascript
复制
=IF([@[Col B]]=MAX([Col B]),1,0)

最小列公式:

代码语言:javascript
复制
=IF([@[Col B]]=MIN([Col B]),1,0)

创建两个轴。1表示最大值,1表示最小值,并将最大值或最小值放在页面字段中,并根据1进行筛选(例如,日期是源值的最大值或最小值)

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

最终结果:

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

编辑:

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

每个ID的最小值的示例查找表pivot

然后在源表的helper列中引用该表,使用索引匹配检索最小日期,并与相同ID的数据表中的日期进行比较:

帮助器列(MinMatch)中的公式:

代码语言:javascript
复制
=IF(INDEX(LookupMin!B:B,MATCH(A2,LookupMin!A:A,0))=[@Date],1,0)

注意:如果您创建了一个唯一的ID & Fruit键并对其进行查找,这将会容易得多。

帮助器列公式为:

代码语言:javascript
复制
=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中的公式(然后向下拖动):

代码语言:javascript
复制
=SUMIFS([MinMatch],[Fruit],C2,[ID],A2)

最后,如果您想要ID和水果的最早日期,可以按如下方式更改查找:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48812151

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档