在Power BI Desktop中,我有一个来自excel文件的表格,我想根据特定列的值和默认数字之间的划分来拆分行。
更详细地假设我们有一个像这样的表:
如果我们要在“金额”列中指定的默认值是50,那么理想的结果将是这样:
您是否知道如何在Power查询编辑器或dax中实现它?
谢谢
答案 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}},其中每个元素均为d
(d
是除法的结果)。然后,可以在表的上下文中将此d
扩展为新行。
在除法产生有问题的数字的情况下,此函数中有一些基本的错误处理(因为您无法获得包含5.1元素或-1元素的列表)。您可以根据需要更改/删除此处理。
我认为下面的代码将我从第一张图片带到第二张图片-希望能给您一些有关如何实现这一目标的想法。
list