繼續(xù)介紹列表數(shù)據(jù)處理。 上一次我們介紹了列表數(shù)據(jù)的交集(列表數(shù)據(jù)處理:交集 - Excel函數(shù)式編程)。 今天我們介紹列表的差集。 假設(shè)兩個集合分別是A,B,其差集A - B指的是只在A中出現(xiàn),不在B中出現(xiàn)的元素: 以實際例子來說, A列表示setA,C列表示setB, setA - setB的結(jié)果就是: {a, c}。 上一節(jié)我們介紹了交集的實現(xiàn),其自定義函數(shù)這這么定義的,
其中,最關(guān)鍵的就是第三行生成篩選條件。 我們的思路是循環(huán)setA,然后計算其中每一個元素 x 在setB中出現(xiàn)的次數(shù)。 只要 x 在setB中出現(xiàn)了,就表示這個元素需要出現(xiàn)在最后的交集中。 所以,我們的思路順利成章,只要 x 在setB中出現(xiàn),就表示這個元素不能出現(xiàn)在最后的差集中。 注意,這里很多人會犯一個錯誤,就是將第三行中的”=“改為"<>",
乍看上去沒什么問題,我就是統(tǒng)計一下那些沒有在setB中出現(xiàn)的元素吧。 但是看一看例子,假設(shè)考慮setA的第一個元素“b", 比較setB <> "b",會得到數(shù)組, TRUE FALSE FALSE 經(jīng)過--處理后,變成數(shù)值數(shù)組: 1 0 0 SUM求和后,就會得到結(jié)果1,作為篩選條件,”a“將會出現(xiàn)在最后的差集中。 正確的方法是判斷一下setB中等于元素 x 的個數(shù)是否等于0。因為只有等于0的才表示不在setB中出現(xiàn),
于是,可以實現(xiàn)下面的自定義函數(shù):
使用方式如下: 詳情咨詢客服(底部菜單-知識庫-客服) Excel+Power Query+Power Pivot+Power BI 自定義函數(shù) 底部菜單:知識庫->自定義函數(shù) 面授培訓(xùn) 底部菜單:培訓(xùn)學(xué)習(xí)->面授培訓(xùn) Excel企業(yè)應(yīng)用 底部菜單:企業(yè)應(yīng)用 |
|