PowerQuery:如何连接分组值?

时间:2017-05-18 21:54:00

标签: excel group-by powerquery excel-2016 m

如果我有下表(如下图所示),我该如何编写一个可以连接分组结果的分组查询?

InputTable

对于此示例,我希望按NumberColumn进行分组并连接@Override protected void onCreate(Bundle savedInstanceState) { setTheme(R.style.CameraFullScreenTheme); super.onCreate(savedInstanceState); if (getSupportActionBar() != null) { getSupportActionBar().hide(); } setContentView(R.layout.activity_camera); if (savedInstanceState == null) { Log.d(TAG, "Starting Camera Fragment"); getSupportFragmentManager() .beginTransaction() .replace(R.id.fragment_container, CameraFragment.newInstance(), CameraFragment.TAG) .commitAllowingStateLoss(); mCurrentPageCount = 0; } }

所以期望的结果是:

ResultsTable

2 个答案:

答案 0 :(得分:23)

您可以使用GUI以这种方式执行此操作:

  1. 选择LetterColumn,然后选择Transform / GroupBy: enter image description here

  2. 选择添加列/自定义列: enter image description here

  3. 点击新AllData列右上角的反对箭头,从新的AllData列中提取值:

    enter image description here enter image description here

  4. 删除AllData列。

答案 1 :(得分:6)

如果您的表是Source,并且NumberColumn具有数字类型,那么这将起作用:

= Table.Group(Source, {"LetterColumn"}, {{"Column", each Text.Combine(List.Transform(_[NumberColumn], (x) => Number.ToText(x)), ","), type text}})

Table.Group按操作进行分组,这会创建一个由LetterColumn中具有相同值的所有行组成的表。 _[NumberColumn]给出了此新表中NumberColumn列中的值列表。 List.Transform部分将数字转换为文本值,Text.Combine将这些数字连接在一起,用逗号分隔每个值。

如果你还需要周围的引号,你可以这样做:

= Table.Group(Source, {"LetterColumn"}, {{"Column", each """" & Text.Combine(List.Transform(_[NumberColumn], (x) => Number.ToText(x)), ",") & """", type text}})

""""代表"性格和&结合了两个文本值。