PowerQuery:添加多列

Eug*_*ene 3 powerquery powerbi

小介绍。

最近的任务:添加具有相同值的 15 列。

解决方案:代替连续使用 Table.AddColumn,我应用了以下方法。

= Table.RemoveColumns(
    Table.SplitColumn(
        Table.AddColumn(TableFromPreviousStep, "q", each "1")
        , "q"
        , Splitter.SplitTextByDelimiter(" ")
    , {"temp","q1", "q2", "q3", "q4", "q5", "q6", "q7", "q8", "q9", "q10", "q11", "q12", "qY+1", "qY+2", "qY+3"} 
    , 1)
, {"temp"})
Run Code Online (Sandbox Code Playgroud)

说明:首先,我将带有任何默认文本值的名为“q”的临时列添加到表中。然后用空格作为分隔符分割此列(这就是它需要文本的原因),但由于没有空格,它返回与名称一样多的列。第一列保留原始值,应在稍后的步骤中删除。所有其他新列的默认值为 1。

问题:我当前的任务是创建多个包含值的列,这些列由相同的公式计算。我尝试了与上面相同的方法,但是我没有使用任何公式作为默认值。我得到的最好的是包含公式的结果列。

任何帮助表示赞赏。

Ale*_*SFT 6

您可以使用 List.Accumulate 将尽可能多的列添加到表中。如果您有一个Source包含 column的表q,您可以使用以下公式创建 15 个具有相同值的列:

List.Accumulate({1..15}, Source, (state, current) => Table.AddColumn(state, "q" & Number.ToText(current), each [q]))

Accumulate 将循环遍历列表中的每个数字,向它用 Table.AddColumn 建立的表中添加一列“q number ”。这将适用于任何值和任何行数。