我想根据以下公式计算%。它有点技巧,我有点卡住,不知道如何去做。谢谢任何人的帮助。
下表中的记录很少,这些记录按范围分组
Range Count 0-10 50 10-20 12 20-30 9 30-40 0 40-50 0 50-60 1 60-70 4 70-80 45 80-90 16 90-100 7 Other 1
我想再增加一列,该列具有基于下一行的总和相对于总行数(145)的累积百分比,如下所示
Range Count Cumulative % of Range 0-10 50 34.5% (which is 50/145) 10-20 12 42.7% (which is 62/145) 20-30 9 48.9% (which is 71/145) 30-40 0 48.9% (which is 71/145) 40-50 0 48.9% (which is 71/145) 50-60 1 49.6% (which is 72/145) 60-70 4 52.4% (which is 76/145) 70-80 45 83.4% (which is 121/145) 80-90 16 94.5% (which is 137/145) 90-100 7 99.3% (which is 144/145) Other 1 100.0% (which is 145/145)
答案 0 :(得分:1)
对于累积计算,始终需要订购。无论如何,如果您在“范围”列中给定的值是真实的-这也将以此为目的,因为此字段上的升序将数据保持在预期的顺序中。请执行以下操作以获得所需的输出。
创建以下措施-
count_percentage =
VAR total_of_count =
CALCULATE(
SUM(your_table_name[Count]),
ALL(your_table_name)
)
VAR cumulative_count =
CALCULATE(
SUM(your_table_name[Count]),
FILTER(
ALL(your_table_name),
your_table_name[Range] <= MIN(your_table_name[Range])
)
)
RETURN cumulative_count/total_of_count
这是最终输出-
答案 1 :(得分:1)
按照以下步骤获取答案。请投票并接受答案,如果您认为解决方案有帮助。
第一步--从范围列创建索引列。我已将“其他”值替换为999。您可以将其替换为更大的数字,这不太可能出现在数据集中。将此新列转换为整数
Sort Column = if(Sickness[Range] = "Other",9999,CONVERT(LEFT(Sickness[Range],SEARCH("-",Sickness[Range],1,LEN(Sickness[Range])+1)-1),INTEGER))
第二步-使用以下措施获得价值:
Measure =
var RunningTotal = CALCULATE(SUM(Sickness[Count]),FILTER(all(Sickness),Sickness[Sort Column] <= MAX(Sickness[Sort Column])))
var totalSum = CALCULATE(SUM(Sickness[Count]),ALL())
Return
RunningTotal/totalSum
下面是与您的要求完全匹配的输出。