想用Power Query实现下面的功能:
这是兰色公众号:( 兰色幻想-赵志东 Excel精英培训)里面的一道题目,原题目是用函数解决的:
=TRANSPOSE(FILTER(C$2:C$8,B$2:B$8=A11))
公式说明:
1、公式只需要在B列设置。
2、Filter是office365新增的筛选函数
3、TRANSPOSE可以实现行列转置,把filter筛选的结果按行显示。
在Power Query 里面如何实现这个功能呢?我是初学者,还不会写M函数,所以用了比较繁琐,但是还好理解的方法:
这种方法如果增加新的产品或供应商,就会错误了。所以还是下面的方法
群里的小伙伴给了另外一种方法,分组合并再拆分,具体代码如下:
let
源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content],
分组的行 = Table.Group(源, {"产品"}, {{"供应商", each Text.Combine([供应商],",")}}),
按分隔符拆分列 = Table.SplitColumn(分组的行, "供应商", Splitter.SplitTextByDelimiter(",", QuoteStyle.Csv), {"供应商.1", "供应商.2", "供应商.3"})
in
按分隔符拆分列
感谢一哥、渔袋、北街末雨的帮助,以上代码为渔袋所写。