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