久久综合九色综合97婷婷-美女视频黄频a免费-精品日本一区二区三区在线观看-日韩中文无码有码免费视频-亚洲中文字幕无码专区-扒开双腿疯狂进出爽爽爽动态照片-国产乱理伦片在线观看夜-高清极品美女毛茸茸-欧美寡妇性猛交XXX-国产亚洲精品99在线播放-日韩美女毛片又爽又大毛片,99久久久无码国产精品9,国产成a人片在线观看视频下载,欧美疯狂xxxx吞精视频

有趣生活

當前位置:首頁>知識>excel數組公式怎么計算 excel這個復雜數組公式怎么讀

excel數組公式怎么計算 excel這個復雜數組公式怎么讀

發布時間:2024-01-22閱讀(8)

導讀{=COUNT(FIND(MID(B2,ROW($1:$10),1),A2))=10}數據間的包含關系是Excel函數中的常見問題之一,通常的解法都是利用文....

{=COUNT(FIND(MID(B2,ROW($1:$10),1),A2))=10}

數據間的包含關系是Excel函數中的常見問題之一,通常的解法都是利用文本查找函數,如SEARCH函數、FIND函數等等。舉個例子,我們要判斷子集字符串AB是否被全集字符串ABC所包含,我們會這樣做:

excel數組公式怎么計算 excel這個復雜數組公式怎么讀(1)

但你知道嗎?這些解決方案都有一個共同的致命弱點,那就是有序包含。即子集中各字符串的排列順序必須和全集字符串一致,順序不一致就無法成功匹配。例如,A和B都被ABC所包含,但是,AB和BA的FIND返回值卻大相徑庭。

excel數組公式怎么計算 excel這個復雜數組公式怎么讀(2)

小花的一名資深粉絲就曾提出了這樣一個問題:如何破解這種亂序包含呢?答案就在下圖中。這個由四個函數嵌套而成的古怪公式,竟然解決了這個疑難雜癥!!!

excel數組公式怎么計算 excel這個復雜數組公式怎么讀(3)

C2公式如下:

{=COUNT(FIND(MID(B2,ROW($1:$10),1),A2))=10}

當我給出這樣的答案時,這位花瓣立刻犯了難,這個公式雖然功能強大,但卻包含多重嵌套和復雜運算邏輯,讓人捉摸不透!別急,且聽小花細細分解。

STEP 01 公式分割

復雜公式是一口吞不下的大蛋糕,那就讓我們分而食之。根據函數名稱和特定符號來分割公式是學習復雜函數的第一步。將復雜公式分割成一個個實現特定功能的小片段,能幫助我們更好地消化理解。

ps:這里提到的特定符號包含劃分函數各參數的逗號,表示優先計算序的括號,比較運算符<>=等。

接下來讓我們來試著分割下這個復雜公式。

excel數組公式怎么計算 excel這個復雜數組公式怎么讀(4)

STEP 02 各個擊破

上圖中我們將公式劃分成五個獨立的小片段,這一步我們就來逐一解讀每一部分的運算邏輯和目標功能。

① {}

大括號{}是數組公式的標志,正常輸入函數后,立即按Ctrl Shift Enter即可進行數組運算。數組公式可以認為是多個相同結構函數公式的集合,數組公式中的公式按重復的運算方法、次序和邏輯重復運算多次,即數組運算的返回值是一組數,而非單一值。

這可能很難理解,沒關系,在接下來的講解中我們還是穿插講解數組運算的原理。

② ROW($1:$10)

ROW函數是返回單元格行號的簡單函數,它的基本語句是= ROW(要返回行號的單元格),ROW(A1)=1, ROW(A2)=2。1:10表示第一行到第十行(具體所需行數是亂序字符串的最大字符數而定),那么片段②ROW($1:$10)則返回1:10行的行號,即

ROW($1:$10)={1,2,3,4,5,6,7,8,9,10}

這就是數組運算的魔力,原本僅能返回單一值的ROW函數,此時可以對每一個參數進行運算,并逐一返回結果,形成一組數。數組公式中的其他片段同此理。

③ MID(B2, ②,1)

MID函數是從字符串的某一個字符開始,截取指定個數字符的函數。它的基本語句是MID(目標字符串,截取的起始位置,截取的字符個數)。舉個例子,MID("秋葉Excel",3,5),它是從第3個字符串E開始,截取5個字符,即為Excel,如圖。

excel數組公式怎么計算 excel這個復雜數組公式怎么讀(5)

于是乎,我們解開了③的功能之謎,即從B2中取一個字符。緊接著,我們將MID與ROW函數結合,即從B2單元格的第1到10個字符開始,各取1個字符,這樣我們就能將B2中的每一個字符逐一拆分開來。那么問題來了,如果B2的字符個數不足10個,會怎么樣。簡單,不足部分即為空,所以截取結果也為空。

那么片段③的返回結果是由B2的每一個字符和空值組成的數組a。

MID(B2, ②,1)={T,Y,E,B,,,,,,}

④FIND(③,A2)

這個片段是數組函數的核心。FIND函數的基本語句是FIND(要查找的子集字符串,包含子集的全集子符串)。FIND函數可以將③返回的每一個字符都在A2字符串中匹配查找,如果A2包含該字符,則返回≥1的序數值,不包含則返回# VALUE!。

這里有一個特殊情況,那就是片段③返回結果中的多余空值。有趣的是,這些多余空值并不會影響FIND的匹配,因為FIND(空值,目標字符串)始終返回1。

因此,只有當B2中的某個字符不包含在A2中,FIND函數才返回錯誤值,其余情況均返回指定序數值。即,片段④返回結果為10個由正整數或# VALUE!組成的一維數組b。

FIND(③, A2)={8,7,…# VALUE,…1,1,…}

⑤COUNT(④)=10

COUNT函數是返回數值型數字個數的計數函數,它在計數過程中,僅對數值進行計數,自動忽略錯誤值、文本、邏輯值和空值。我們正是利用了COUNT函數忽略錯誤值這一特性,使得片段COUNT(④)返回④中序數值的個數。當且僅當④中含有# VALUE!,計數結果小于10,其余情況下,計數結果都等于10。緊接著,我們用=10來做一個邏輯判斷,計數結果等于10返回TRUE,否則返回FALSE。

也就說,只有當B2中不包含A2字符串以外的字符,FIND函數才不會返回錯誤值# VALUE!,此時COUNT計數結果才能等于10,邏輯判斷才能為TRUE。

STEP 03 復盤全局

分析理解了各個片段的過程,我們需要再將這些邏輯運算片段串聯起來,形成完成的計算邏輯。讓我們結合流程圖來回顧下求解過程。

1,利用ROW函數返回一組1到n的有序數組;

2,利用MID函數進行顆粒化,將子集字符串拆分成多個單一字符或空值組成的1* n的數組a;

3,利用FIND函數逐一匹配數組a中的每一個字符在全集字符串中出現的位置,返回一組由正整數和錯誤值組成的1*n的數組b;

4,利用COUNT函數忽略錯誤值計數的特點,通過判斷計數結果是否為n來推斷子集中是否包含全集字符串以外的字符,從而完成亂序包含問題的求解。

C2的公式計算過程如下

excel數組公式怎么計算 excel這個復雜數組公式怎么讀(6)

C3的公式計算過程如下

excel數組公式怎么計算 excel這個復雜數組公式怎么讀(7)

以上,就是復雜的COUNT FIND MID ROW嵌套數組公式的詳細講解。或許公式本身并不常見,但是其中蘊含的運算邏輯卻經常被運用。縱觀當下Excel教程文章,熱衷于分享各式函數用法的,車載斗量;而真正認真講解各中道理的卻寥若晨星。

TAGS標簽:  excel  數組  公式  怎么  計算  excel數組公式怎

Copyright ? 2024 有趣生活 All Rights Reserve吉ICP備19000289號-5 TXT地圖HTML地圖XML地圖