在Excel 2016中使用PowerQuery按存储在另一列中的类别组合一列中的单词。我将GroupBy与Text.Combine一起使用。 我期望单词的顺序能够保持不变,但似乎是随机的。
下面有3张图片
首先是我在SORT之前的原始表格。
我需要组合MAPPED WORDS,CATEGORY是组合的组成部分, POSITION是一列,指示MAPPED WORD在SKU中的位置-我按该顺序对单词进行排序,希望Text.Combine将其保留在最终字符串中。对于这个示例,我对红色和蓝色突出显示的单词很感兴趣。
原始表
Market Tag SKU Position Category Mapped Word
ABG 130 HELLO DAY CRYSTAL MIDI GRANOLA CHOCOLATE 11 BRAND Crystal
ABG 130 HELLO DAY CRYSTAL MIDI GRANOLA CHOCOLATE 7 BRAND Day
AAI 30 FINAX HEALTHY GOOD MUESLI APPLE NUT RAISIN 1 BRAND Finax
AAI 30 FINAX HEALTHY GOOD MUESLI APPLE NUT RAISIN 7 OTHER Healthy
ABG 130 HELLO DAY CRYSTAL MIDI GRANOLA CHOCOLATE 1 BRAND Hello
ABG 130 HELLO DAY CRYSTAL MIDI GRANOLA CHOCOLATE 19 BRAND Midi
AAI 30 FINAX HEALTHY GOOD MUESLI APPLE NUT RAISIN 20 TYPE Muesli
AAI 30 FINAX HEALTHY GOOD MUESLI APPLE NUT RAISIN 33 FLAVOURS Nuts
AAI 30 FINAX HEALTHY GOOD MUESLI APPLE NUT RAISIN 37 FLAVOURS Raisins
ABG 130 HELLO DAY CRYSTAL MIDI GRANOLA CHOCOLATE 32 FLAVOURS Chocolate
AAI 30 FINAX HEALTHY GOOD MUESLI APPLE NUT RAISIN 27 FLAVOURS Apple
ABG 130 HELLO DAY CRYSTAL MIDI GRANOLA CHOCOLATE 24 TYPE Granola
AAI 30 FINAX HEALTHY GOOD MUESLI APPLE NUT RAISIN 15 BRAND Good
排序后
在GROUPBY-COMBINE之后。
问题是结果看起来不像任何逻辑-顺序被忽略。红色字词按字母顺序添加,而蓝色字词无特定顺序。
我需要按POSITION列按顺序组合单词。
答案 0 :(得分:2)
这是我对排序后的操作提出的另一个问题的相同答案,但我对此进行了测试,如果将排序步骤放在Table.Buffer()内,似乎也可以在这里工作。
Table.Buffer(Table.Sort(PROPERCASE_WORDS,{{"TAG",Order.Ascending},{"CATEGORY",Order.Ascending}, {"POSITION",Order.Ascending}}))
AFAIK Table.Buffer将表加载到内存中,并以此重置各种PQ操作使用的内部索引,以匹配表的当前排序。我不知道这样做是否有任何弊端,但是在许多情况下,您希望操作以“从上到下”的方式进行似乎很有效。