在進入主題之前,我們先來看下面個Excel公式,這個公式出自於我寫的《Excel中,銷售數據都在一個單元格裡,該如何統計計算?》。
=SUMPRODUCT(ISNUMBER(FIND(F7,$C$2:$C$9))*(LEN(MID($C$2:$C$9,FIND("價格",$C$2:$C$9)+3,9))>4))
看到這個公式,你的第一感覺是什麼?
如果你認為【很牛叉的 公式,但是我看不懂】,那麼你的感覺和我一樣。我對這個公式研究了很久,尤其是弄不清MID()函數第二個參數為什麼是【9】。
所以,當我把它複製到地址欄,按下回車鍵,它神奇地計算出了我想要的結果,然而我不知道這結果是怎麼來的(或者我要研究很久才知道)。下次遇到同樣問題,我還是一頭霧水,不知道從何入手。
有的時候這類超級複雜的公式,我們不明所以地粘貼到我們自己的單元格中,獲取不到我們想要的結果時,我們完全不知道該如何去調試。
喜歡金庸武俠小說的朋友可能知道,武林高手高在往往用最簡單的招式就能打敗強大的敵人,化腐朽為神奇。洪七公作為天下第一吃貨,對黃蓉做的家常菜垂涎不已。同樣,對於Excel公式來說,簡單比複雜好。
那麼,具體說來,Excel公式簡單有哪些好處呢?
01Excel公式簡單的好處
在說Excel公式簡單的好處之前,我們回想下學生時代老師的一些教誨:
解題時從最簡單的題目開始,逐漸過渡到較難的題目。
困難的問題先分解成若干簡單的問題,把簡單的問題一個一個地解決了,那麼最後困難的問題的答案也就出來了
把解題步驟寫詳細,讓評卷老師看到你的解題思路是什麼,直接給出答案的不得分或只有很少的答案分。
答題寫出詳細步驟,有步驟分,只要步驟正確,就算你最後算錯了,評卷老師也會給你可觀的步驟分。
老師當年的話雖然當時聽起來很囉嗦,但是現在來看,實在是金玉良言啊。所以,我們面對一個Excel難題時,也要從簡單的步驟、簡單的公式開始。可以把Excel公式簡單的好處歸納如下:
反映了我們的思維規律
更容易入手
更不容易錯
一看就明白
就算錯了也好追溯
02用例子說明如何寫出簡單的Excel公式來解決複雜的問題
我們還是以《Excel中,銷售數據都在一個單元格裡,該如何統計計算?》中的例子為例。
我們要求張三和李四銷售記錄中價格大於1000的訂單數目。當時給出的Excel公式是:
=SUMPRODUCT(ISNUMBER(FIND(F7,$C$2:$C$9))*(LEN(MID($C$2:$C$9,FIND("價格",$C$2:$C$9)+3,9))>4))
前面說了,這個公式完全讓人無從下手。下面我們用Excel簡單公式解法來一步一步找出答案。
1.要求【價格大於1000的訂單數目】,首先要找到價格數據,而要找到價格數據就要找到價格數據所在的位置,我們用FIND()函數:
=FIND("價格",C2)
在Excel中將上面公式往下拖動填充,我們得到結果如下:
既然找到了價格數據所在的位置,現在我們需要從原始單元格裡邊把它單獨截取出來(這樣我們才能進行後面的計算)。Excel中截取字符串的函數有LEFT(),RIGHT()和MID()。我們可以根據喜好和實際需求來選擇。在這個例子中,需要截取的價格數據處於每個單元格的最後,所以我們用RIGHT()函數。
但是RIGHT()函數第二個參數需要的位置信息是從右往左來進行索引的。我們剛才用FIND()函數獲取的是從左到右的索引的。怎麼辦?用整個單元格的長度減去剛才我們找到的索引值再減去2(因為我們找到的是【價格】所在位置的索引,實際的價格數據還在這個索引+2的位置),就是我們實際需要的索引數值了。當然也可以用直接查找【價格:】的索引位置,這樣就只需要+1了。
=RIGHT(C2,LEN(C2)-D2-2)
最後我們得到下圖:
截取字符串之後,我們發現價格數據多了一個【元】字,我們需要再次截取,只保留數據,用INT()函數將截取結果轉化為數字格式,便於將來計算。
=INT(LEFT(E2,LEN(E2)-1))
我們得到下面的結果:
現在將每個訂單的價格數據提取出來了,接下來我們要知道哪些訂單是張三的,哪些訂單是李四的。
我們分析原始數據,可以發現,銷售姓名是在【銷售】和【價格】之間,那麼,只要我們找到【銷售】和【價格】在原始數據中的索引,就可以利用MID()函數找到銷售姓名了。由於我們已經找到了【價格】的索引位置,所以現在我們找到【銷售】的位置:
=FIND("銷售",C2)
我們得到下圖:
要注意,我們上面找到的是【銷售】二字在原始數據中的索引,那麼,銷售姓名在原始數據中的索引起始位置還要在此基礎上+3(【銷售】二字的長度+冒號的長度)。而要截取的字符串長度則是【價格】二字的索引起始位置-【銷售】二字所在的起始位置-3(【銷售】二字的長度+冒號的長度)。得到的MID()函數公式如下:
=MID(C2,G2+3,D2-G2-3)
看起來有些繞,實際操作下就很清楚了。我們得到下面的結果:
到這一步,我們就可以結束了。如果還有涉及到日期的計算,可以用類似的思路把日期提取出來,然後進行日期格式化之類。此處略過。
有了上面的表之後,再回過頭來看提取各個銷售人員銷售記錄中大於1000的訂單數,是不是就很簡單了?
可以列出銷售姓名後用COUNTIF()函數。但是假如銷售人員很多的時候,還不如直接篩選出大於1000的訂單,然後複製到新的表格,用數據透視表基於銷售人員對價格計數:
03結語
通過本文,你是否發現,一個看似複雜得幾乎不可能解決的問題,我們用簡單公式一步一步地將其分解,最後以簡單得令人不像話的方式得出了我們想要的結果,而且還兼顧了靈活性——假如要進行其他統計,也直接可以在我們得到的表格上進行計算。
你可能不知道,在Excel中,複雜公式其實是多個簡單公式組合起來的,並不神秘。所謂的Excel高手在寫下天書一樣的複雜公式之前,也是一步一步把問題分解,只不過最後再組合成一個複雜得不要不要的公式而已。
對於見到的Excel複雜公式,我們沒必要膜拜得五體投地,我們用小學生都會的簡單Excel公式,一步一步一個腳印,也能實現同樣的效果,把複雜問題一點一點啃下,化不可能為可能。
使用簡單公式這個理念,我是受《為什麼精英都是Excel控》這本書的啟發。在讀這本書之前,我總認為誰都看不懂的Excel公式是最佳做法,是高手風範。讀了這本書,我才發現,自己之前錯得有多離譜。
作者熊野整用了日本作家慣常的平實語言對避免使用長公式做了言簡意賅的說明:
熊野整著眼於簡單公式讓人一眼就看明白,我的關注點是從寫簡單公式開始,我們可以一步一步地把複雜問題解決掉,這是Excel簡單公式最大的好處,它實際上是一種思維方法,一種解決問題的思路。效用遠比讓人看得懂來得大。
如果對熊野整這本《為什麼精英都是Excel控》有興趣,請關注並發私信給我,我發PDF給您。
如果想要紙質書,也可以直接點擊下面的連結購買。