如何计算文本的非重复计数

原数据

需求:计算快递单号的非重复计数

(一) 需求分析

如果要计算非重复计数,我们很容易可以想到一个函数DistinctCount,那如果直接使用是不是就可以了呢?直接

代码语言:javascript
复制
DistinctCount:=DistinctCount([快递单号])

这里会有几个问题:

  • 空值未进行处理
  • 总计这里多计了1,而且在未有单号的情况下也作为了1显示。

那我们来了解下原因,空值的话如何处理以及为什么总计这里会多了1。因为DistinctCount在计算非重复计数的时候会把空值也作为一个值来进行计算,所以导致数据上的差异。

(二) 实现需求

既然知道了原因,那我们就可以具体实现了,DistinctCount是要计算空值,那我们是不是可以直接把空值给过滤后在进行求值计数呢?

代码语言:javascript
复制
快递单号非重复计数:=Calculate(DistinctCount('表1'[快递单号]),
                              Filter('表1','表1'[快递单号]<>BLANK())
                              )

(三) 展现需求

最后我们把字段拖入到透视表中

但是和我们要求的数据透视表有些许差异,结果是要求把订单号全部显示出来,而直接拖入字段后把没有快递单号的订单号给隐藏了。这里留个小悬念,可以自己动手实现下这个功能。

如果觉得有帮助,那麻烦您进行转发,让更多的人能够提高自身的工作效率。