之前我們介紹了列表數(shù)據(jù)處理中的交集和差集: 列表數(shù)據(jù)處理:交集 - Excel函數(shù)式編程 列表數(shù)據(jù)處理:交集函數(shù)的擴展 - Excel函數(shù)式編程 列表數(shù)據(jù)處理:差集 - Excel函數(shù)式編程 今天我們介紹并集的自定義函數(shù)。 兩個集合A和B的并集,指的是在A或B中出現(xiàn)過的元素構(gòu)成的集合。 比如, 顯然,a, b, c, d, e在A中出現(xiàn)過,b,f,e在B中出現(xiàn)過,它們都應(yīng)該是集合A和集合B并集中的元素。 這里很容易就會簡單的采用VSTACK函數(shù)合并兩個集合,
結(jié)果如下, 看上去得到結(jié)果了。 但是要注意,這里b和e出現(xiàn)了兩次(一次代表A,一次代表B)。 但是根據(jù)并集的定義,它們只能出現(xiàn)一次,即這個并集應(yīng)該包含下面的元素: {a; b; c; d; e; f} 一個非常符合直覺的想法就是去重。 對上面的VSTACK函數(shù)的結(jié)果進行去重操作:
就可以得到期望的結(jié)果: 這個并集的實現(xiàn)非常簡單,
調(diào)用時使用下面的公式:
我們在一開始的分析中針對一個元素在兩個集合中都出現(xiàn)這種情況,采用了去重這種操作。但是現(xiàn)實中我們還是會遇到需要保留的情況。甚至,同一個元素在兩個集合中分別出現(xiàn)多次。 比如,如果原來的集合A和集合B的數(shù)據(jù)如下: 這里的集合A中包含兩個b,上面的去重公式得到的結(jié)果如下: 結(jié)果中只含有一個b,但是這次,我們期望的是結(jié)果中包含集合A和B中的所有元素。 當然,直接用VSTACK就可以了。 不過我們?nèi)绾卧O(shè)置自定義函數(shù),從而使得在調(diào)用時可以自行決定是否去重呢? 這里我們可以使用缺省參數(shù)。 修改函數(shù)定義如下:
參數(shù)中加入一個[func],用方括號[]表示該參數(shù)可以省略。 然后在程序中判斷該參數(shù),如果省略了,就表示直接合并,否則就是用這個函數(shù)對合并結(jié)果去重。(當然,這個函數(shù)只能使用UNIQUE才會得到需要的結(jié)果)。 詳情咨詢客服(底部菜單-知識庫-客服) Excel+Power Query+Power Pivot+Power BI 自定義函數(shù) 底部菜單:知識庫->自定義函數(shù) 面授培訓 底部菜單:培訓學習->面授培訓 Excel企業(yè)應(yīng)用 底部菜單:企業(yè)應(yīng)用 |
|