根据数的除法在Power Bi中将行拆分为其他多个行

时间:2019-06-07 21:27:23

标签: powerbi dax powerquery

在Power BI Desktop中,我有一个来自excel文件的表格,我想根据特定列的值和默认数字之间的划分来拆分行。

更详细地假设我们有一个像这样的表:

enter image description here

如果我们要在“金额”列中指定的默认值是50,那么理想的结果将是这样:

enter image description here

您是否知道如何在Power查询编辑器或dax中实现它?

谢谢

1 个答案:

答案 0 :(得分:1)

在Power Query for Excel中对此进行了测试,但希望它也可以在Power BI中为您工作。如果您创建类似这样的函数:

divisionToList = (numberToDivide as number, numberToDivideBy as number) as list =>
    let
        divisionResult = numberToDivide / numberToDivideBy,
        isResultValid = (divisionResult >= 0) and (Number.Mod(divisionResult, 1) = 0),
        errorIfInvalid = Error.Record("Cannot create a list with " & Text.From(divisionResult) & " items", Number.ToText(numberToDivide) & " / " & Number.ToText(numberToDivideBy) & " = " & Text.From(divisionResult), null),
        listOrError = if isResultValid then List.Repeat({divisionResult}, divisionResult) else error errorIfInvalid
    in listOrError,

它应将两个数字相除,并返回长度为list的{​​{1}},其中每个元素均为dd是除法的结果)。然后,可以在表的上下文中将此d扩展为新行。

在除法产生有问题的数字的情况下,此函数中有一些基本的错误处理(因为您无法获得包含5.1元素或-1元素的列表)。您可以根据需要更改/删除此处理。

我认为下面的代码将我从第一张图片带到第二张图片-希望能给您一些有关如何实现这一目标的想法。

list

Output table