動態顯示下拉框內容
過了冬至,你在北方瑟瑟發抖,我在廣東秋風瑟瑟~
最近小編經常夢回母校~放一張母校的美圖!
年底了,又到了預訂報刊的時候!
肯定有人會問,這年頭還有誰看報刊哇!
小編只能回應:
知道全國有多少種刊物嗎?告訴你哦!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》公眾號