PowerQuery:添加多列

PowerQuery: Adding multiple columns

小介绍。

近期任务: 添加 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"})

说明:首先,我将名为 "q" 的临时列添加到 table,其中包含任何默认文本值。然后此列以 space 作为分隔符拆分(这就是它需要文本的原因),但由于没有 space,因此它 returns 与名称一样多的列。第一列保留原始值,应在后面的步骤中删除。所有其他新列的默认值为 1。

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

感谢任何帮助。

您可以使用 List.Accumulate 向 table 添加尽可能多的列。如果您有 table Sourceq,您可以使用以下公式创建 15 个具有相同值的列:

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

A​​ccumulate 将遍历列表中的每个数字,将一列 "qnumber" 添加到 table 中,它一直在使用 Table.AddColumn 构建。这将适用于任何值和任意数量的行。