首页 > 解决方案 > PowerQuery Text.Combine 中的单词顺序

问题描述

在 Excel 2016 中使用 PowerQuery 按存储在另一列中的类别组合一列中的单词。我在其中使用 GroupBy 和 Text.Combine。我希望单词的顺序能够持续,但它似乎是随机的。

下面有3张图片

首先是我在排序之前的原始表。

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 列的顺序组合单词。

标签: powerquery

解决方案


这与我对排序后关于操作的不同问题给出的答案相同,但我对其进行了测试,如果你将排序步骤放在 Table.Buffer() 中,它似乎也适用于此。

Table.Buffer(Table.Sort(PROPERCASE_WORDS,{{"TAG",Order.Ascending},{"CATEGORY",Order.Ascending}, {"POSITION",Order.Ascending}}))

AFAIK Table.Buffer 将表加载到内存中,这样做会重置各种 PQ 操作使用的内部索引以匹配表的当前排序。我不知道这样做是否有任何缺点,但它似乎适用于您希望操作以“从上到下”的方式进行的许多情况。


推荐阅读