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

时间:2018-02-15 16:38:53

标签: database excel vba excel-vba pivot-table

我的数据格式如下,A列中有唯一ID,但这些ID可能出现在多行上,代表针对该个人的重复交易。在col B中,我有该交易的日期时间戳,在Col 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标准来转移此数据,以获取Col C中作为其第一笔交易的交易记录的数量,将Col C中的X交易作为其最新交易的数量等等,目的是最终确定这样的数据;

MIN(第一)次交易:

Distinct Count Col A    Col C
1                       Pear
2                       Apple  

MAX(最后)交易:

Distinct Count Col A    Col C
1                       Grape
1                       Orange
1                       Apple

有没有办法用Pivot表格做到这一点我错过了?我在这里处理数百万行数据,因此通过数据透视操作比使用公式或其他东西更容易(通过电源查询加载数据)。如果需要,我可以在加载过程中连接列。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

使用辅助列,因为这样可以使用页面过滤器来获取最大值和最小值,而不是依赖于对每个列进行排序。

将数据设置为表格。然后添加最大列和最小列。

最大列公式:

=IF([@[Col B]]=MAX([Col B]),1,0)

最小列公式:

=IF([@[Col B]]=MIN([Col B]),1,0)

创建2个支点。 1表示最大值,1表示最小值,并将最大值或最小值放在页面字段中并过滤为1(即日期是源值的最大值或最小值)

Create pivot example

按照C列的列数(水果名称列)对C列进行排序,您认为合适。如果您对最小日期的最小计数的水果感兴趣,则上升到分钟。

最终结果:

Image of data

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

Column B (DateTime) removed

编辑:

如果您想按ID显示每个水果的计数,您可以使用查找表支点

来显示该ID的最小日期。

每个ID

的最小值的示例查找表pivot

Lookup table with minimum dates for each ID

然后在源表中的帮助列中引用此表,使用索引匹配来检索最小日期,并与数据表中的日期进行比较以获得相同的ID:

辅助列中的公式(MinMatch):

=IF(INDEX(LookupMin!B:B,MATCH(A2,LookupMin!A:A,0))=[@Date],1,0)

Data and pivot for count of min

注意:如果您创建ID&amp ;;的唯一键,这将更容易。水果和查找。

辅助列公式为:

=IFERROR(IF([@[Col B]]=INDEX(LookupMin!$A:$E,MATCH([@[Col A]],LookupMin!$A:$A,0),MATCH([@[Col C]],LookupMin!$4:$4)),1,0),"")

LookupMin!是具有最小枢轴的工作表。

请注意,我在数据表上使用了一个数据透视表,查看每个水果的数量,每个ID的最小日期。

您可以使用公式代替,但之后您将有重复的总和,参见列F

Formula to get count of fruit on min date by ID E中的公式(然后拖下来):

=SUMIFS([MinMatch],[Fruit],C2,[ID],A2)

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

Additional lookup