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

分享

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

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


繼續(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ù)這這么定義的,

Intersect = LAMBDA(setA, setB,     LET(        cond, SCAN("",setA, LAMBDA(acc,a, SUM(--(setB = a)))),        inters, FILTER(setA, cond),        inters    ));

其中,最關(guān)鍵的就是第三行生成篩選條件。

我們的思路是循環(huán)setA,然后計算其中每一個元素 x 在setB中出現(xiàn)的次數(shù)。

只要 x 在setB中出現(xiàn)了,就表示這個元素需要出現(xiàn)在最后的交集中。

所以,我們的思路順利成章,只要 x 在setB中出現(xiàn),就表示這個元素不能出現(xiàn)在最后的差集中。

注意,這里很多人會犯一個錯誤,就是將第三行中的”=“改為"<>",

cond, SCAN("",setA, LAMBDA(acc,a, SUM(--(setB <> a)))),

乍看上去沒什么問題,我就是統(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),

cond, SCAN("",setA, LAMBDA(acc,a, SUM(--(setB = a)) = 0)),

于是,可以實現(xiàn)下面的自定義函數(shù):

Difference = LAMBDA(setA, setB,     LET(        cond, SCAN("",setA, LAMBDA(acc,a, SUM(--(setB = a)) = 0)),        inters, FILTER(setA, cond),        inters    ))

使用方式如下:


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

Excel+Power Query+Power Pivot+Power BI


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

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

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

面授培訓(xùn)  底部菜單:培訓(xùn)學(xué)習(xí)->面授培訓(xùn)

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

也可以在歷史文章中學(xué)習(xí)Excel,Power Query,Power Pivot,Power BI,Power Automate各種技巧。

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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章