小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

列表數(shù)據(jù)處理之并集 - Excel函數(shù)式編程

 ExcelEasy 2024-07-16 發(fā)布于北京


之前我們介紹了列表數(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ù)合并兩個集合,

=VSTACK(A2:A6,C2:C4)

結(jié)果如下,

看上去得到結(jié)果了。

但是要注意,這里b和e出現(xiàn)了兩次(一次代表A,一次代表B)。

但是根據(jù)并集的定義,它們只能出現(xiàn)一次,即這個并集應(yīng)該包含下面的元素:

{a; b; c; d; e; f}

去重

一個非常符合直覺的想法就是去重。

對上面的VSTACK函數(shù)的結(jié)果進行去重操作:

=UNIQUE(VSTACK(A2:A6,C2:C4))

就可以得到期望的結(jié)果:

實現(xiàn)

這個并集的實現(xiàn)非常簡單,

/** 計算兩個列表的并集*/UNION = LAMBDA(setA, setB,    UNIQUE(VSTACK(setA, setB)))

調(diào)用時使用下面的公式:

=UNION(A2:A6,C2:C4)
討論

我們在一開始的分析中針對一個元素在兩個集合中都出現(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ù)定義如下:


/** 計算兩個列表的并集*/UNION = LAMBDA(setA, setB,[func], IF( ISOMITTED(func), VSTACK(setA, setB), func(VSTACK(setA, setB)) ))

參數(shù)中加入一個[func],用方括號[]表示該參數(shù)可以省略。

然后在程序中判斷該參數(shù),如果省略了,就表示直接合并,否則就是用這個函數(shù)對合并結(jié)果去重。(當然,這個函數(shù)只能使用UNIQUE才會得到需要的結(jié)果)。

詳情咨詢客服(底部菜單-知識庫-客服)

Excel+Power Query+Power Pivot+Power BI


Power Excel 知識庫    按照以下方式進入知識庫學習
Excel函數(shù)   底部菜單:知識庫->Excel函數(shù)

自定義函數(shù)  底部菜單:知識庫->自定義函數(shù)

Excel如何做  底部菜單:知識庫->Excel如何做

面授培訓  底部菜單:培訓學習->面授培訓

Excel企業(yè)應(yīng)用  底部菜單:企業(yè)應(yīng)用

也可以在歷史文章中學習Excel,Power Query,Power Pivot,Power BI,Power Automate各種技巧。

    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章