小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

讓你的Excel表動起來

 靜幻堂 2017-07-28
2017-07-28 阿忠凱 Excel之家ExcelHome

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

話本次解決方案相對復(fù)雜,能看明白并且自己會用的基本上函數(shù)使用沒什么問題了。

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

問題

原表:

需求:想在某個單元格選擇某個部門后,自動將有數(shù)量的產(chǎn)品列在下表中!



問題拆分:

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

二、如何結(jié)果部門不同時,如何變成另外一個部門的數(shù)據(jù)

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


解決問題一:

如何在確定A部門的情況,將產(chǎn)品列在下表。

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

bingo!


將每一句話用一個函數(shù)實現(xiàn)。

先查看B列哪個單元格有數(shù)據(jù)->

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


查看有數(shù)據(jù)的單元格的在第幾行->

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


將行數(shù)從小到大進行排序->

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


將A列對應(yīng)行數(shù)的單元格拷貝到下面->

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

口述思路:

先挨個單元格判斷B列是否有數(shù)據(jù),如果有返回單元格對應(yīng)的行數(shù),如果沒有返回值為空。


代碼實現(xiàn):

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

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


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

在A列中返回B列有數(shù)字行數(shù)的值


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

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


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

所以目前完整公式為:

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

由于其中用到了數(shù)組函數(shù),輸入公式后要同時按住Ctrl+Shift+Enter

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


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


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

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


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


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


解決問題二:

如何結(jié)果部門不同時,如何變成另外一個部門的數(shù)據(jù)

原表:

上一個問題的公式:

=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做判斷。


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


介紹兩個小東西:

1、名稱管理器

2、Indirect函數(shù)


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


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


怎么做呢?

第一步:選中列表區(qū)域

第二步:公式-根據(jù)所選內(nèi)容創(chuàng)建

第三步:首行

至此,命名已經(jīng)完成。


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

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


我們需要每次選擇不同內(nèi)容時候,涂紅的區(qū)域跟著變化,所以用indirect函數(shù)實現(xiàn)。

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

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


解決問題三

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

選中涂黃的單元格,設(shè)置數(shù)據(jù)有效性即可

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

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


最后就實現(xiàn)了!


    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多