今天是一期網(wǎng)友的問題答疑!主要是數(shù)據(jù)源不規(guī)范到底的簡單問題復(fù)雜化,! 提供兩種解法,,一種是Power Query主題解法,然后補(bǔ)充一種工作表函數(shù)解法 1,、查找內(nèi)容,,可能有多個,每個都要到數(shù)據(jù)源中查找2,、對查找的結(jié)果 刪除重復(fù)值,,合并到一個單元格中!這個問題,,如果只是單個,,那么VLOOKUP函數(shù)即可輕松搞定!但是現(xiàn)在這樣就有點(diǎn)麻煩,,但是對于Power Query來說,,并不是什么難題,對應(yīng)需要處理的部分都有對應(yīng)的函數(shù)▼我是M函數(shù)嵌套,,和工作表函數(shù)差不多額,!= Table.AddColumn(源, "自定義", each Text.Combine(List.Distinct(List.Transform(Text.Split([備注],"#(lf)"),(x)=> 表1{[商品名稱= x]}[快遞])),"#(lf)")) 1、Text.Split:屬于文本處理類函數(shù),,這個函數(shù)算是彌補(bǔ)了工作表函數(shù),,沒有按照分隔符分割文本的痛點(diǎn)!語法:Text.Split(文本,分隔符),,結(jié)果是一個多個元素的列表,,如果你理解不了列表,,你就當(dāng)數(shù)組吧!案例中的 #(lf) 表示換行符,,和我們 下面的-本質(zhì)一樣,,都是分隔符2、List.Transform是M中比較重要的函數(shù),,所以我早早已經(jīng)寫了專題文章這里主要把拆分出來的每一項(xiàng)都去數(shù)據(jù)源中查找的意思!3,、表1{[商品名稱= x]}[快遞] 是什么意思,?表名{[標(biāo)題=查找內(nèi)容]}:表示返回對應(yīng)表中指定列內(nèi)容等于查找內(nèi)容對應(yīng)的行,是一條記錄,,[快遞] 則表示取出記錄中對應(yīng)的key的內(nèi)容List.Distinct:表示是List類中的Distinct函數(shù),如其名就是刪除重復(fù)值,,保留唯一一個,!5、關(guān)于Table.AddColumn,,本質(zhì)是新增一列,,但是對應(yīng)行的內(nèi)容,其實(shí)涉及到M函數(shù)上下文問題,,可以讀一下下面的文章應(yīng)該就能明白,!
=TEXTJOIN(CHAR(10),TRUE,UNIQUE(IFERROR(VLOOKUP(TRIM(MID(SUBSTITUTE(A14,CHAR(10),REPT(" ",99)),ROW($1:$10)*99-98,99)),$A$2:$C$9,3,),""))) O365的同學(xué)可以試試!其他版本不適用,! VLOOKUP函數(shù)在O365中第一參數(shù)支持?jǐn)?shù)組,,不用使用降維的方式處理! UNIQUE是去重,,得到唯一值的新函數(shù),,最后是文本連接方式TEXTJOIN函數(shù)!部分函數(shù)雖然OFFICE非365用不了,,但是WPS已更新,,可以試試!當(dāng)然我們也可以簡單一些,,上面常規(guī)思路還是太難了,!
=TEXTJOIN(CHAR(10),TRUE,UNIQUE(IF(ISNUMBER(FIND($A$2:$A$9,A14)),$C$2:$C$9,""))) 這里用的是查找的思路,比拆分后再去查找要簡化很多,!其他基本函數(shù)基本都一樣,!
|