我有一个非常大的数据集,每天都会更改信息和大小(数据是从非常旧的、不太用户友好的 WMS 中提取的)。
如果可能的话,我需要添加一列来计算每个订单号上有多少个唯一商品编号,其格式与下面的代码段类似。
问题是我无法删除重复项或添加过滤器,因为每行都有在其他地方使用的唯一数据。 任何对此的帮助将不胜感激!
我尝试了一些不同的公式,但我的知识不是最好的,在这种情况下搜索网络并没有帮助......
订单号。 | 货号。 | 商品数量 |
---|---|---|
568320 | 20436 | 1 |
568320 | 20436 | |
568733 | 62509 | 1 |
568733 | 62509 | |
568669 | 62418 | 2 |
568669 | 61016 | |
568738 | 62249 | 2 |
568738 | 62546 | |
568724 | 61024 | 3 |
568724 | 59955 | |
568724 | 20436 | |
568720 | 62418 | 3 |
568720 | 56599 | |
568720 | 61033 | |
568999 | 62726 | 2 |
568999 | 56609 | |
568891 | 62486 | 2 |
568891 | 62454 |
这是实现所需输出的另一种方法,由于您使用的是
Structured References
,因此公式也使用参考文献:
=IF(SUM(--(INDEX([Order no.],1):[@[Order no.]]=[@[Order no.]]))=1,
SUM(N(UNIQUE(FILTER([Item no.],[Order no.]=[@[Order no.]]))<>"")),"")
或者,如果愿意,可以使用
Dynamic Array Formula
来溢出:
=LET(
a, OrderTbl,
b, TAKE(a,,1),
MAP(b, LAMBDA(r, IF(SUM(N(r:OrderTbl[@[Order no.]]=r))=1,
SUM(1-ISERR(UNIQUE(FILTER(TAKE(a,,-1),b=r)))),""))))