標籤:

讓你的Excel表動起來

2017-07-28 阿忠凱 Excel之家ExcelHome

本周問題,利用名稱管理器完成二維表的匹配返回,讓你的表格動起來。

話本次解決方案相對複雜,能看明白並且自己會用的基本上函數使用沒什麼問題了。

解決方法為個人原創,有更好解決方案歡迎留言打臉——

問題

原表:

需求:想在某個單元格選擇某個部門後,自動將有數量的產品列在下表中!

問題拆分:

一、先解決如果公司固定,只是A部門,如何能將含有數據的產品列在下表。

二、如何結果部門不同時,如何變成另外一個部門的數據

三、如何將某個單元格設置為不同部門可選(三個問題中最簡單的一個)

解決問題一:

如何在確定A部門的情況,將產品列在下表。

思路:先查看B列哪個單元格有數據、查看有數據的單元格的在第幾行,將行數從小到大進行排序,將A列對應行數的單元格拷貝到下面。

bingo!

將每一句話用一個函數實現。

先查看B列哪個單元格有數據->

IF(判斷條件,為真返回什麼,為假返回什麼)函數判斷是否為空

查看有數據的單元格的在第幾行->

Row(單元格)返回單元格的行數

將行數從小到大進行排序->

Small(列表,第幾個最小的值)返回列表中的第幾個最小的值

將A列對應行數的單元格拷貝到下面->

Index(列表,個數)返回列表中第幾個值

口述思路:

先挨個單元格判斷B列是否有數據,如果有返回單元格對應的行數,如果沒有返回值為空。

代碼實現:

IF($B$2:$B$9="","",ROW($B$2:$B$9))

返回IF函數中最小的那個數字(空不列入排序)

SMALL(IF($B$2:$B$9="","",ROW($B$2:$B$9)),1)

在A列中返回B列有數字行數的值

INDEX($A$1:$A$9,SMALL(IF($B$2:$B$9="","",ROW($B$2:$B$9)),1))

目前有個問題了,我需要依次返回第一個最小的值,第二個最小值,第N個最小值!怎麼快速實現呢。

我們將數字1用Row(A1)替換,這樣自動填充到第二個單元格的時候就會變成Row(A2)

所以目前完整公式為:

=INDEX($A$1:$A$9,SMALL(IF($B$2:$B$9="","",ROW($B$2:$B$9)),ROW(A1)))

由於其中用到了數組函數,輸入公式後要同時按住Ctrl+Shift+Enter

雙擊公式自動填充後效果如下:

如果B列只有三行數據,則返回值前三行是有正確輸出的,但是後面的就會報錯,我們想一個方法規避這種錯誤提醒。

Iferror(函數,如果有錯誤返回值顯示什麼)

所以將原有的公式外面包裹一個Iferror函數,如果有錯誤,顯示空

=IFERROR(INDEX($A$1:$A$9,SMALL(IF($B$2:$B$9="","",ROW($B$2:$B$9)),ROW(A1))),"")

這樣錯誤值就被隱藏掉了。

解決問題二:

如何結果部門不同時,如何變成另外一個部門的數據

原表:

上一個問題的公式:

=IFERROR(INDEX($A$1:$A$9,SMALL(IF($B$2:$B$9="","",ROW($B$2:$B$9)),ROW(A1))),"")

我們希望當選擇B部門的時候,是用C2:C9單元格作判斷;C部門的時候,用D2:D9做判斷。

如何方便快捷的更改選擇的區域呢?且隨著某個單元格的內容變化而變化呢?

介紹兩個小東西:

1、名稱管理器

2、Indirect函數

名稱管理器是啥,就是將某個區域命名為一個名字。

Indirect函數啥意思呢?含義此函數立即對引用進行計算,並顯示其內容。通俗的講。如果將B2:B9命名為部門A,則這個區域作為參數的時候,可以輸入B2:B9,也可以輸入Indirect(部門A)。大概就是就這個意思。

怎麼做呢?

第一步:選中列表區域

第二步:公式-根據所選內容創建

第三步:首行

至此,命名已經完成。

看一下我們之前編輯好的公式

=IFERROR(INDEX($A$1:$A$9,SMALL(IF($B$2:$B$9="","",ROW($B$2:$B$9)),ROW(A1))),"")

我們需要每次選擇不同內容時候,塗紅的區域跟著變化,所以用indirect函數實現。

部門所在的單元格是B12,所以進行引用

=IFERROR(INDEX($A$1:$A$9,SMALL(IF(INDIRECT($B$12)="","",ROW(INDIRECT($B$12))),ROW(A1))),"")

解決問題三

如何將某個單元格設置為不同部門可選

選中塗黃的單元格,設置數據有效性即可

第一步:選中單元格-單擊有效性驗證

第二步:選中序列-選中標題的行

最後就實現了!


推薦閱讀:

每日一題:Excel多表合計-SUMIFS、INDIRECT、SUMPRODUCT
[Excel小課堂] LOOKUP三兄弟,你都了解些啥?
Excel公式練習17:提取字元串中的數字
[轉載]Excel公式教程 IF函數數組變換詳解
Excel中value錯誤值的意義和解決方法

TAG:Excel |