帥哥有個辦法,能把複雜問題變簡單

HI,大家好,我是小潛潛,論壇ID是soar.xiaolei,今天我來跟大家一起聊一聊,如何把一個複雜的問題化解成一個一個簡單的小問題,進而各個擊破,最終達到解決問題的目的。

讓我們來看數據源:

我們要利用函數做幾項最常見的任務:分別是多條件計數、多條件提取。

具體到這個數據源對應的問題,就是統計出5月1日共有幾類倉庫進入了新產品,提取出5月1日進入新產品的倉庫。

下面我們一一道來。

首先來說一說第一個問題,統計出5月1日共有幾類倉庫進入了新產品。

對於這個問題,我們首先要做的工作就是把日期是5月1日的倉庫信息提取出來或者標記出來,那如何標記呢,只要讓A列的單元格與5月1日做一個判斷,是就標記為1,不是就標記為0。

於是我就在D2單元格寫了這樣的一個公式:

=(A2=$I$3)*1

說到這裡,我相信大家應該是都明白的,好,我們繼續往下曰。

要想提取出不重複記錄,還需要把不同類的倉庫進行標記出來。在這裡就要想到match函數啦,這是match函數的一個特性,只返回它所查到的值在一個區域里得第一個相對位置。

舉個例子大家就都懂了。

以上這個圖就是我用Match函數寫的一個公式,可以很清楚的看到第一次出現A在第一個位置,其餘的A返回值也均為1。

那麼現在說的這道題同樣是利用match函數的這個特性,只不過多了一個小小的東西,如果是第一次出現我們就把它標記為1,不是呢就標記為0。

如何實現呢,大家還繼續看上面的AAA的圖,第一次A出現的位置是在表格的第一行,B第一次出現的位置在表格的第四行,而MATCH函數返回的值恰恰是這個區域的位置,那麼我們就可以利用位置相等這一條件對是否為第一次出現進行標記。

回到我們剛說的題上來,我們是不是就可以寫出對倉庫是否是第一次出現進行標記了呢。請看下圖:

通過上圖我們可以發現輕鬆地對不同類倉庫做出了1和0的標記,說到這裡離我們解決這道題的目標就很近了。

接下來我們要做的就是把D:E兩個輔助列中都是1的找出來,然後看一下有多少個就可以了呀。

那麼如何找出輔助列1為1,輔助列2也為1的呢,通過上圖可以很明了地看到只要d列的值和E列的值相乘之後還為1,就是都符合條件的了。

具體做法請見下圖的F列輔助列3的公式。

如上圖,我已經把同時符合條件的用灰色進行了標記。好了,我們只要查一下有幾個灰色,這道題就解決了。至於怎樣查,用sum函數,count函數等,就隨便嘍。

這裡特別說一下count函數,在計數時,它是只計數值的個數的,這個時候我們可以利用0/0這種 ,把0變為錯誤值,從而得到我們想要的答案。

好了,經過上面一系列的簡化,最終得到了我們想要的答案,那麼,假如我們把這些簡單的公式整合到一起,就是一個公式,就是函數的嵌套了。

首先我們從最後的F列的公式進行嵌套,把D2和E2分別用D2和E2單元格中的公式進行替換,替換後的結果為

=(A2=$I$3)*(MATCH(B2,B:B,)=ROW())

我們在用sum函數等查灰色個數時是要在F列里的值,是一個區域,那就很簡單了,我們只要把相應地部分替換成區域就可以了,替換後的結果為:

此時,我們在編輯欄中選中公式,按F9鍵看看結果,是不是就是F列的內容呢。

很明顯,就是F列中的內容了,這個時候就外套SUM那些函數就OK了,別忘記有名的Shift ctrl 回車 三鍵噢。

這道題的解題思路主要就是把符合條件的位置信息標記出來,那麼如果我們再擴展一下,我們把這個標記出來的位置信息返回到相應的行數,是不是就得到了我們要返回的值在所再區域里的具體的位置,然後通過INDEX函數就把不重複數據提取出來了。

得出位置信息之後對位置用small函數由小到大進行排序。再用index(b:b,h2)就可以得出答案了。

最後把這些簡單的公式進行組合,就是我們常見的INDEX,SMALL,IF函數的組合:

=INDEX(B:B,SMALL(IF((A$1:A$13=I$3)*(MATCH(B$1:B$13, B$1:B$13,)=ROW($1:$13)),ROW($1:$13),,2 ^20),ROW(A1)))&""

用普通話解釋就是:

如果A$1:A$13等於指定的日期I$3,並且B$1:B$13單元格中的倉庫是首次出現,就返回對應的行號ROW($1:$13),否則返回一個非常大的數值2^20。

也就是同時符合兩個條件的,返回對應的行號,不符合條件的返回2^20(1048576)

再用SMALL函數從小到大依次提取行號,這個行號最終用作INDEX函數的索引值,返回B列中對應行的內容。


推薦閱讀:

「保留中加兩國籍」的辦法極不靠譜,網上報道決不能輕信
人大常委會審議香港特首普選辦法|長官|香港
面對才是解決問題的辦法
「反正沒什麼生意咱們想個辦法上新聞吧」:澳大利亞一咖啡店根據顧客的禮貌程度來收錢
屬相不合的破解辦法

TAG:帥哥 | 辦法 | 複雜 | 簡單 | 問題 |