亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.430618.com 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

Excel公式: 獲取非連續單元格區域中只出現一次的數字

本次的練習是:如下圖1所示,有一組非連續的單元格區域,由任意數量的單列區域組成,每個區域中的值有數字、文本或空格。要求從單元格A2開始,使用公式生成一個列表,這個列表由上述非連續單元格區域中所有只出現了一次的數字組成(如圖1所示,1、2和9這三個數字在非連續的單元格區域中只出現了一次)。

圖1

注意,雖然圖1中在單元格區域C1:N12中有很多單元格為空,但解決方案的公式中要考慮這些單元格也可能存在數據的情況。

先不看答案,自已動手試一試。

公式

在單元格A2中輸入公式:

=IF(ROWS(A$2:A2)>$A$1,””,AGGREGATE(15,6,(ROW(INDIRECT(“1:”& MAX(RNG)+1))-1)/(FREQUENCY(RNG,ROW(INDIRECT(“1:” &MAX(RNG)+1))-1)=1),ROWS(A$2:A2)))

下拉直至出現空單元格為止。

在單元格A1中,公式:

=SUMPRODUCT(–(FREQUENCY(RNG,ROW(INDIRECT(“1:” &MAX(RNG)+1))-1)=1))

計算該非連續單元格區域中滿足要求的數字數量。

公式解析

公式中的RNG是定義的名稱。

名稱:RNG

引用位置:=$C$2:$C$7,$E$2:$E$4,$E$6:$E$9,$G$3:$G$11,$J$1:$J$9,$L$5:$L$6,$N$3:$N$7,$N$9:$N$10,$N$12

注意,這個聯合的單元格區域并不能傳遞給所有的工作表函數,但還是有些工作表函數能夠處理它們。

1. 首先,看看單元格A1中返回滿足要求的數字數量的公式:

=SUMPRODUCT(–(FREQUENCY(RNG,ROW(INDIRECT(“1:”&MAX(RNG)+1))-1)=1))

這里的重點是使用FREQUENCY函數,該函數是非常有用的一個函數,能夠處理這種不連續的單元格區域。

另一個函數是MAX函數,也可以操作多個、非連續的單元格區域,因此:

MAX(RNG)

能夠得到組成RNG的單元格區域中所有數值的最大值,忽略邏輯值、文本。很顯然,其返回的結果是9。

這樣,公式中的:

ROW(INDIRECT(“1:”&MAX(RNG)+1))-1

轉換成:

ROW(INDIRECT(“1:”&9+1))-1

轉換成:

ROW(INDIRECT(“1:”&10))-1

轉換成:

{1;2;3;4;5;6;7;8;9;10}-1

結果為:

{0;1;2;3;4;5;6;7;8;9}

這里,我們創建了一個由0到區域中最大值的數值組成的數組,用于FREQUENCY函數的參數bins_array。

此時,公式中的:

FREQUENCY(RNG,ROW(INDIRECT(“1:”&MAX(RNG)+1))-1)

成為:

FREQUENCY(RNG,{0;1;2;3;4;5;6;7;8;9})

結果為:

{0;1;1;0;0;5;2;2;0;1;0}

因此,公式:

=SUMPRODUCT(–(FREQUENCY(RNG,ROW(INDIRECT(“1:”&MAX(RNG)+1))-1)=1))

可轉換為:

=SUMPRODUCT(–({0;1;1;0;0;5;2;2;0;1;0}=1))

轉換為:

=SUMPRODUCT(–({FALSE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;FALSE}))

兩個減號強迫TRUE/FALSE轉換成1/0,即:

=SUMPRODUCT({0;1;1;0;0;0;0;0;0;1;0})

結果為3。

2. 下面來看看從單元格A2開始用來獲取值的公式:

=IF(ROWS(A$2:A2)>$A$1,””,AGGREGATE(15,6,(ROW(INDIRECT(“1:” &MAX(RNG)+1))-1)/(FREQUENCY(RNG,ROW(INDIRECT(“1:” &MAX(RNG)+1))-1)=1),ROWS(A$2:A2)))

根據前面公式推導的內容,上面的公式中:

AGGREGATE(15,6,(ROW(INDIRECT(“1:”& MAX(RNG)+1))-1)/(FREQUENCY(RNG,ROW(INDIRECT(“1:” &MAX(RNG)+1))-1)=1),ROWS(A$2:A2))

可以轉換為:

AGGREGATE(15,6,({0;1;2;3;4;5;6;7;8;9})/({FALSE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;FALSE}),ROWS(A$2:A2))

這是以這種方式使用AGGREGATE函數時要注意的關鍵技術。因為如果我們在此函數中將第二個參數options設置為6,即“忽略錯誤值”,那么它將恰好做到這一點。

上述公式可轉換為:

AGGREGATE(15,6,{#DIV/0!;1;2;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;9;#N/A},ROWS(A$2:A2))

其第一個參數function_num被設置成15,等價于執行SMALL函數。(你可能想,為什么不將第一個參數設置成5,即MIN,這是不合適的。因為在AGGREGATE函數的第一個參數的所有可選項中,僅14-15能夠保證在傳遞給函數的數組不是實際的工作表區域時能正常運行,而這里的數組是由其他函數生成的,如果設置成1-13中的任一個,則需要傳遞給函數的數組是實際的工作表區域。)

對于單元格A2的公式中來說,最后一個參數k的值是1,即ROWS(A$2:A2)的返回值。因此,AGGREGATE函數部分轉換為:

AGGREGATE(15,6,{#DIV/0!;1;2;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;9;#N/A},1)

結果為1。

這樣,單元格A2中的公式轉換為:

=IF(1>$A$1,””,1)

即:

=IF(1>3,””,1)

結果為1。

分享到:
標簽:excel公式怎么用 excel函數公式 excel常用函數 Excel教程
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定