重点是Table.Group,这个函数真的很牛逼!
let
源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content],
更改的类型 = Table.TransformColumnTypes(源,{{"借方", type number}, {"贷方", type number}}),
已添加自定义 = Table.AddColumn(更改的类型, "Check", each Number.From(Text.Contains([科目名称],"管理费用"))+Number.From(Text.Contains([科目名称],"销售费用"))+Number.From(Text.Contains([科目名称],"开发间接费用"))),
分组的行 = Table.Group(已添加自定义, {"凭证字号"}, {{"所有行", each _, type table [制单日期=text, 凭证字号=text, 科目编码=text, 科目名称=text, 借方=nullable number, 贷方=nullable number, Check=number]}, {"Check", each List.Sum([Check]), type number}}),
筛选的行 = Table.SelectRows(分组的行, each [Check] > 0),
删除的其他列 = Table.SelectColumns(筛选的行,{"所有行"}),
#"展开的“所有行”" = Table.ExpandTableColumn(删除的其他列, "所有行", {"制单日期", "凭证字号", "科目编码", "科目名称", "借方", "贷方", "Check"}, {"制单日期", "凭证字号", "科目编码", "科目名称", "借方", "贷方", "Check"}),
筛选的行1 = Table.SelectRows(#"展开的“所有行”", each Text.Contains([科目名称], "管理费用") or Text.Contains([科目名称], "销售费用") or Text.Contains([科目名称], "开发间接费用") or Text.Contains([科目名称], "进项税")),
删除的列 = Table.RemoveColumns(筛选的行1,{"Check"})
in
删除的列 |