動態顯示下拉框內容

過了冬至,你在北方瑟瑟發抖,我在廣東秋風瑟瑟~

最近小編經常夢回母校~放一張母校的美圖!

年底了,又到了預訂報刊的時候!

肯定有人會問,這年頭還有誰看報刊哇!

小編只能回應:

知道全國有多少種刊物嗎?告訴你哦!12800種,小編夠博學多才吧!

咳咳,如果需要預訂報刊呢,選擇哪個報刊是一件很痛苦的事情~

為了防止填報錯誤,我們必須讓每個人填寫的數據要與國家規定的一樣,那我們設置一下自定義單元格格式!

我就問你一句話!從1萬2千多個待選列表中的名稱選到自己想要的,難不?

這裡有個簡單的方法,客官,請看!

如果可以實現單元格內敲前面的內容,然後待選擇列表裡面的內容和單元格內容一致的才顯示,不一致的不顯示。這樣可以快速的提高數據填充的速度,避免了海量數據查找的麻煩!

Advertisements

為了方便分享,我講整個報刊列表簡化一下~

左邊是原始的素材,右邊呢是給三個小編訂報紙。

不要糾結與小編前面的形容詞,越沒有什麼越想要什麼!

開始想辦法實現!

如果我想實現

帥氣的小編報刊待選擇的列表是北京開頭的;

勤勞的小編報刊待選擇的列表是初中開頭的;

博學的小編報刊待選擇的列表是本草開頭的。

那我怎麼手動實現呢?

第一步:先將原始數據排序

為什麼要排序呢,排序才方便我選擇整個列表哇!

排序后如何實現剛剛的要求,我們來動圖演示一下!

我們將三個單元格分別設置為不同的區域,這樣子每個單元格都可以顯示自己的內容了!

說好的人工智慧呢!說好的自動實現呢!

第二步:思考如何實現每次選擇不同的區域

如何才能選擇不同的區域呢?介紹一個函數Offset,蝦米用呢?

Advertisements

它的參數很多,一共有五個參數

=Offset(以哪個單元格為原點,向下移動多少行,向右移動多少列,返回多少行,返回多少列)

大家當年初中肯定學過坐標軸吧。其實一樣的,那我們先演示一下如何實現選中北京開頭的那些單元格!

如果想快速的獲取北京為首的一串單元格,需要使用Offset函數實現!

同理想獲取初中和本草開頭的也可以用Offset函數實現!

那我們用動圖直接操作一下!

那我們知道了如何用Offset函數實現選擇某個區域,並且發現只有第二個向下多少行,第四個返回多少數量的單元格是變得,其它都是固定的,剩下的就是想這兩個參數如何能夠根據單元格的內容自動變化。

第三步:Offset函數中的參數自動變化

首先第二個參數是向下移動多少,那我們想獲取某個文本在某一列的位置,應該用的函數是什麼?

Match函數,Match函數接三個參數

=Match(判斷的文本,在哪個區域內判斷,0)

返回的是文本在區域內是第幾個單元格

但是北京並不等於北京老年報,如何讓他們相等呢?增加一個通配符!

公式:=MATCH(C7&"*",A1:A21,0)

那如果我想獲取Offset向下移動了多少,那用Match的結果減去1即可!

那應該返回多少行數據呢?

Countif函數實現

=Countif(判斷列表,要判斷的條件是什麼)

公式:=COUNTIF(A1:A21,C12&"*")

上述兩個公式可以實現

第四步:函數組合實現

那我們分別將Match和Countif函數嵌套在Offset函數中!

效果如下:

公式:

=OFFSET(A1,MATCH(D2&"*",A1:A21,0)-1,0,COUNTIF(A1:A21,D2&"*"),1)

加上絕對引用

=OFFSET($A$1,MATCH(D2&"*",$A$1:$A$21,0)-1,0,COUNTIF($A$1:$A$21,D2&"*"),1)

動圖實現!

將要填報的區域選中,然後將編輯好的公式粘貼到序列那裡面即可!

注意哦,為了防止你輸入初中,電腦認為你填報錯誤,所以在條件格式出錯告警中要勾選掉,這樣就可以完美實現我們的需求啦~

謝謝各位表親!

更多內容歡迎關注《阿凱的Excel》公眾號

Advertisements

你可能會喜歡