Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powerbi 根据下一行的总和计算累计百分比_Powerbi_Dax_Measure - Fatal编程技术网

Powerbi 根据下一行的总和计算累计百分比

Powerbi 根据下一行的总和计算累计百分比,powerbi,dax,measure,Powerbi,Dax,Measure,我想根据下面的公式计算%。它有点小把戏,我有点卡住了,不知道怎么做。如果有人能帮忙,谢谢 我在下表中有几个按范围分组的记录 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 射程计数 0-10

我想根据下面的公式计算%。它有点小把戏,我有点卡住了,不知道怎么做。如果有人能帮忙,谢谢

我在下表中有几个按范围分组的记录

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 射程计数 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 其他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-10534.5%(即50/145) 10-20 12 42.7%(62/145) 20-30948.9%(71/145) 30-40048.9%(71/145) 40-50 0 48.9%(71/145) 50-60 149.6%(72/145) 60-70452.4%(76/145) 70-80 45 83.4%(即121/145) 80-90 1694.5%(137/145) 90-100799.3%(即144/145) 其他1100.0%(即145/145)
对于累积计算,始终需要排序。无论如何,如果列“Range”中给定的值是实的,这也可以用于此目的,因为此字段上的升序将数据保持在预期的顺序。执行以下操作以获得所需的输出

创建以下度量值-

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
计数百分比=
VAR总计数=
算计(
总和(您的表名[计数]),
全部(您的表格名称)
)
VAR累积计数=
算计(
总和(您的表名[计数]),
滤器(
全部(您的表格名称),

您的_table_name[Range]对于累积计算,始终需要排序。无论如何,如果“Range”列中的给定值为实数,这也可以用于此目的,因为此字段上的升序将按预期顺序保留数据。请执行以下操作以获得所需的输出

创建以下度量值-

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
计数百分比=
VAR总计数=
算计(
总和(您的表名[计数]),
全部(您的表格名称)
)
VAR累积计数=
算计(
总和(您的表名[计数]),
滤器(
全部(您的表格名称),

您的_table_name[Range]请按照以下步骤获得答案。如果您觉得解决方案有帮助,请投票并接受答案

第一步--从范围列创建索引列。我已将“其他”值替换为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
Measure=

var RunningTotal=CALCULATE(SUM(sick[Count])、FILTER(all(sick)、sick[Sort Column]按照以下步骤获得答案。如果您觉得解决方案有用,请投票并接受答案

第一步--从范围列创建索引列。我已将“其他”值替换为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
Measure=


var RunningTotal=CALCULATE(SUM(sick[Count])、FILTER(all(sick)、sick[Sort Column]是否有索引列用于排序数据?是否有索引列用于排序数据?感谢Mkrabani,不幸的是,我得到了列中的所有行(Count\u percentage)值为34.48%。我怀疑这是因为我将范围值定义为文本。这可能是一个问题吗?我还添加了一个索引列,并使用它来代替范围,但仍然得到相同的输出。在列“Range”上应用升序后,您能试一下吗在Power Query Editor中?让我知道输出结果@user13320137最欢迎您。但不幸的是,您接受了从我这里复制的答案。所有内容都被复制,只是重命名了列和描述:(感谢Mkrabani,不幸的是,我得到了列中的所有行(计数百分比)值为34.48%。我怀疑这是因为我将范围值定义为文本。这可能是一个问题吗?我还添加了一个索引列,并使用它来代替范围,但仍然得到相同的输出。在列“Range”上应用升序后,您能试一下吗在Power Query Editor中?让我知道输出您最受欢迎@user13320137。但不幸的是,您接受了从我这里复制的答案。所有内容都被复制,只是重命名了列和描述:(嗨@sam,这和我的答案一样,回答得比我晚了很久。通过更改变量和列名以及一些描述来复制别人的答案有什么意义?@Mkrabani..我不知道我复制了你的答案。当我读到你的评论时,我知道你的解决方案无法工作,因为缺少ok索引列。这是l我在写答案时读到的一条评论--“谢谢mkRabbani,不幸的是,我得到了列中所有行(计数百分比)的值为34.48%。我怀疑这是因为我将范围值定义为文本。这会是一个问题吗?–”@Mkrabani..PS:虽然它给了我动力去获得工作的荣誉,但同时,我不喜欢从别人的工作中获得荣誉。我给出这个解决方案是因为我觉得你的公式不起作用。你的解决方案与我的有什么不同?@user13320137:如果Mkrabani解决方案有效,那么请接受Mkrabani解决方案而不是o他先回答了我的问题。谢谢。@sam,这和我的答案一样,而且回答得很晚。通过更改变量、列名和一些描述来复制别人的答案有什么意义?@Mkrabani。。我不知道我复制了你的答案。当我读到你的评论时,我知道你的解决方案无法工作,因为缺少ok索引列。这是我在写答案时读到的最后一条评论--“谢谢Mkrabani,不幸的是,我得到了列中所有行(计数百分比)的值为34.48%。我怀疑