分组数据时仅获取相关行
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"
数据更改为使用多模式演示多个引用
我有参考数据,我希望在保留相关参考的同时分组和提取最高和最常见的值:
绿色的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"
数据更改为使用多模式演示多个引用