分组数据时仅获取相关行

Get only relevant Rows when Grouping Data

我有参考数据,我希望在保留相关参考的同时分组和提取最高和最常见的值:

绿色的table是我目前的成绩:

M代码:

let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"CAS", type text}, {"Type ", type text}, {"Value ", type text}, {"Ref", type text}}),
    #"Grouped Rows" = Table.Group(#"Changed Type", {"CAS", "Type "}, {{"Value Most Common", each List.Mode([#"Value "]), type nullable text}, {"Ref", each Text.Combine([Ref], ", "), type nullable text}, {"Value Lowest", each List.Max([#"Value "]), type nullable text}})
in
    #"Grouped Rows"

我遇到的问题是如何最好地将最常见值和最低值的引用分开。尽管进行了多次尝试,但我还是做对了。出现问题是因为通过按值拆分列,引用变得链接但是从输入判断这必须是可能的。我怀疑在分组之前我需要一些额外的步骤。

此外,我不确定如何使用分组来捕获最常用值之间存在联系的模式。 List.Modes return 是一个列表,但我又 运行 出错了。目前,我只有return单人模式。这是一个较小的问题,但与所需的第 3 行中的 24,50 一样会很好。

Data: 
CAS Type    Value   Ref
77-92-9 NOAEL   1200    WebNet
77-92-9 NOAEL   1200    Wiki
77-92-9 NOAEL   4000    ECHA
77-92-9 DNEL    500 RB Data
25265-71-8  DNEL    51  WebNet
25265-71-8  DNEL    24  ECHA
25265-71-8  DNEL    24  ECHA
25265-71-8  DNEL    50  ECHA
25265-71-8  DNEL    50  ECHA
25265-71-8  DNEL    10  ECHA
25265-71-8  NOAEL   200     OECD
106-24-1    DNEL    13.75   ECHA
106-24-1    DNEL    13.75   ECHA
106-24-1    NOAEL   300     RIFM
106-24-1    NOAEL   550     ECHA
106-24-1    NOAEL   50  SAM
106-24-1    NOAEL   50  RIFM
128-37-0    NOAEL   25  ECHA
128-37-0    NOAEL   25  ECHA
128-37-0    NOAEL   25  SAM
128-37-0    ADI 0.3     MMMD
128-37-0    ADI 0.25    JECFA
128-37-0    ADI 0.25    EFSA
60-12-8 DNEL    5.1     ECHA
60-12-8 NOAEL   385     RIFM

全部在分组中:

已编辑以考虑多种模式如您编辑后所见

let
    Source = Excel.CurrentWorkbook(){[Name="Input"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"CAS", type text}, {"Type", type text}, {"Value", type number}, {"Ref", type text}}),

    #"Grouped Rows" = Table.Group(#"Changed Type", {"CAS", "Type"}, {
        {"Most Common", each Text.Combine(List.Transform(List.Modes([Value]), each Text.From(_)),", "), type text},
        {"Ref", (t)=>Text.Combine(List.Distinct(Table.SelectRows(t, each List.Contains(List.Modes(t[Value]),[Value]))[Ref]),", "), type text},
        {"Max", each List.Max([Value]), type number},
        {"Ref2", (t)=>Text.Combine(List.Distinct(Table.SelectRows(t, each [Value]=List.Max(t[Value]))[Ref]),", "), type text}
       })

in
    #"Grouped Rows"

数据更改为使用多模式演示多个引用