【"0"悟函數】總結之一

序言:

"0"活多變的函數公式與格式如果你問一個學前班或者一年級的小朋友,0表示什麼?他會毫不猶豫的告訴你,0表示沒有,比如草地上一隻羊也沒有,老師就叫我們用0表示。早上爸爸給我買了兩個蘋果,我吃了一個,弟弟也吃了一個,現在一個也沒有,就用0表示。這樣的例子小朋友還可以說得很多。小朋友說的沒錯,0表示"沒有"可能是0最早的意思吧,也就是0的本義。古時候的人最初完全沒有數量這個概念,後來由於記事和分配生活用品等方面的需要,才逐漸產生了數的概念。比如捕獲了一頭野獸,就用1塊石子代表。捕獲了3頭,就放3塊石子。假如什麼都沒有捕獲,當然是0頭了。這樣就產生了數,各國的人們也學會了用不同的符號表示不同的數字,但人們最後學會的是怎麼表示0,因為其他的數字都比較好表示,所以後來有人把銅錢擺在空位上,以免弄錯,這就表示0。不過多數人認為,"0"這一數學符號的發明應歸功於公元6世紀的印度人。他們最早用黑點(·)表示零,後來逐漸變成了"0"。那E氏函數家族中的"0"也真像小朋友所說的那樣表示什麼也沒有嗎?不然,0的活用與不用蘊藏著很多意想不到的玄機。到底有怎樣的玄機呢?那我就0機一動開處方,雖然不算什麼0當妙藥",閒話少說,E切從0開始,一起來看看0牙利齒吧!

1、 活"0"活現

(一)簡單文本求和中0的作用(+0或-0)例子:將A列A1:A10的數字相加,其中可能還有文本型的數字也需要相加。公式:=SUMPRODUCT(A1:A10+0)或者:=SUMPRODUCT(A1:A10-0)解析:初級用戶會覺得+0,-0不就等於沒有增加,沒有減少嘛,為何要這樣呢?是啊,要的就是這個效果,既要改變原數據的性質(文本轉變為數值),又要準確計算,所以只有用+0,-0,這一"+"或"-"符號就是改變原數據的性質的。這一帶符號的0猶如一個"小石頭",從後面拋出去將昏睡中的"大石頭"(數字)砸醒。參考文章:文本轉數值的十一種方法(百度一下可查詢到)

(二)"0"嶺先鋒

例①、如:單元格A1中輸入數字12304568579213(15位以下,文本或數值型均可)要將這個數的每一位相加,公式:=SUM(--(0&MID(A1,COLUMN(1:1),1)))解析:因單元格字符串長度只有14位提取長度為1至256位的長度,所以從15位開始,只能提取到空值。

效果如下:=SUMPRODUCT(--(0&{"1","2","3","0","4","5","6","8","5","7","9","2","1","3","",……,""}))前面補0後的效果如下:=SUMPRODUCT(--{"01","02","03","00","04","05","06","08","05","07","09","02","01","03","0",……,"0"})此時沒有空值,只有14個文本數字和文本0,前面加2個負號後,轉化為數值,看效果:=SUMPRODUCT({1,2,3,0,4,5,6,8,5,7,9,2,1,3,0,……,0})沒有空值,且全部為數值就可以相加了,結果為56。

例②、單元格A1輸入:123大理789,要將這個單元格的每一位數字相加,

公式:=SUMPRODUCT(--(0&MIDB(A1,COLUMN(1:1),1)))與上例不同的是,MIDB會將每個雙字節(如漢字就是雙字節)字符按2計數,否則,函數MIDB會將每個字符按1計數。當只提取1個字節時,遇到漢字(雙字節),只能提取到半個漢字(也就是空值),效果如下:=SUMPRODUCT(--(0&{"1","2","3"," "," ……,""}))0&後填補空值。

2、 脫胎換骨—化"文"為"0"

單元格A1輸入123abcABC789,要將這個單元格的每一位數字相加,

公式:=SUMPRODUCT(--TEXT(MID(A1,COLUMN(1:1),1),"0;;0;\0"))

解析:由於字符串中有"abcABC",是單字節字符,所以不能象上例那樣用MIDB提取半個漢字的辦法來處理。此時,我們仍用MID來提取的基礎上,再請出"霸道,聰明"的TEXT函數,將非數字字符強行改為0,若為數值則不變。條件參數"0;;0;\0"中第一個0神通廣大,代表了除0之外的任意正整數,也就是假0(是通配數值的0),第二個則是"蒼蠅嘴巴狗鼻子—真0",第三個0是強行做"變性"手術後的0。

3、"0"補隊員

①單元格A1輸入數字12378945600123,如何將單元格內數字按順序去重。

公式:=MID(SUM((0&MID(A1,SMALL(FIND(ROW($1:$10)-1,A1&5^19),ROW($1:$10)),1))/10^ROW($1:$10))&"00",3,COUNT(FIND(ROW($1:$10)-1,A1)))

或者:=MID(SUM(MID(A1&56^7,SMALL(FIND(ROW($1:$10)-1,A1&56^7),ROW($1:$10)),1)/10^ROW($1:$10))&0,3,COUNT(FIND(ROW($1:$10)-1,A1)))解析:"(0&MID(A1,SMALL(FIND(ROW($1:$10)-1,A1&5^19),ROW($1:$10)),1))"中,前面補0,是為了填補空值,這裡不再贅述,式子:SUM((0&MID(A1,SMALL(FIND(ROW($1:$10)-1,A1&5^19),ROW($1:$10)),1))/10^ROW($1:$10))&"00"中&"00"的作用有兩個,一是防止計算出的0在最後被忽略;二是單元格中僅輸入一個或多個0時,最後能提取到一個0。

4、忘我("0")犧牲

①如:單元格A1:A5中有字符串,也有文本數字。01030#VALUE!大理789問題:統計A1:A5中非0數字(非0文本型數字和數值都算)有幾個?數組公式:=COUNT(0/A1:A5)解析:由於0和文字不能做除數,我們將違背這一原理,把A1:A5作為除數,讓0和文字出現錯誤值。效果:{0;0;#DIV/0!;#VALUE!;#VALUE!}按我兄弟順溜的話來說,讓他們(0和文字)都死球。這活下來的"英雄"就是我們要數的"人"(非0數字個數)了。於是我們讓SUM,SUMPRODUCT,ISERR,ISERROR,ISNUMBER等幾位大俠先"下崗",只聘請數數高手"COUNT"大俠。=COUNT({0;0;#DIV/0!;#VALUE!;#VALUE!})=2


分享到:


相關文章: