LOG10 的测量总计是错误的

totals for a measure with LOG10 are wrong

我有一个 table 'Range' 在 [node] 列中包含字符串。 我为一个枢轴创建了一个 [measure] 来计算每个字符串出现的百分比。

measure = COUNTA(Range[node])/CALCULATE(COUNTA(Range[node]);ALL(Range[node]))

这个效果很好,总百分比 =1,因为它应该:

+-------+---------------+---------+
| node  | count of node | measure |
+-------+---------------+---------+
| a     |             1 | 0.007   |
| b     |            22 | 0.162   |
| c     |           103 | 0.757   |
| d     |            10 | 0.074   |
| Total |           136 | 1.000   |
+-------+---------------+---------+

但是当我想得到一个 LOG10 的度量值时,值很好,但是总数变为 0。

当我使用:

measure = LOG10((COUNTA(Range[node])/CALCULATE(COUNTA(Range[node]);ALL(Range[node]))))

我得到:

+-------+---------------+--------------+
| node  | count of node |   measure    |
+-------+---------------+--------------+
| a     |             1 | -2.134       |
| b     |            22 | -0.791       |
| c     |           103 | -0.120701684 |
| d     |            10 | -1.133538908 |
| Total |           136 | 0            |
+-------+---------------+--------------+

我应该怎么做才能得到正确的总数 -4.179?

如果你真的想要日志的总和,那么只需将你的度量公式复制到行 a-d 中,并使总计为这 4 个度量的总和;实际上,您正在计算 136/136 以获得 1,而不是添加 0.007+0.162... 以获得 1

因此在 LOG10 示例中,0 出现是因为 LOG10(136/136) = LOG10(1) 根据定义为 0

注意,添加数字的日志对应于查找所有条目的产品的日志,

即log10( (1/136) x (22/136) x (103/136) x (10/136) ) = -4.179

如 log(a x b) = log(a) + log(b)

也许这就是你想要的,但似乎不太可能。