Hello,大家好,大家工作中有沒有遇過這樣的情況,下拉菜單非常的項目很多多,想手動輸入還被提示輸入錯誤,這個時候我們隻能一個一個的點選非常的麻煩,效率很低,今天就跟大家分享下如何制作智能式下拉菜單,可以根據我們輸入的數據給出下拉的列表,能夠快速提高工作效率,如下圖,當我們在智能下拉中輸入小米,下拉中僅僅會出現小米的選項,而普通下拉無法輸入内容,隻能在下拉中選擇
一、3個函數
制作智能下拉菜單我們是使用函數完成的,在這裡我們需要用到3個函數:offset、match以及countif函數,對于match以及countif函數都是我們常用的函數,在這裡就不多叢介紹了,我們來了解下這offset函數的作用以及參數
Offset函數:offset是一個偏移函數,它以一個基點為原點進行偏移得到一個新的偏移區域
第一參數:參照區域,以選擇的區域作為偏移基點 第二參數:行數,将基點區域在行方向移動多少行單元格 第三參數:列數,将以行方向移動過的區域,再以列方向移動多少個單元格 第四參數:高度,将第一第二參數移動過後的新區域取多少列 第五參數:寬度,将第一第二參數移動過後的新區域取多少行
第2到第5參數如果不填寫則需省略
offset函數會根據一個單元格的位置,移動得到另一個新的數據區域,它返回的結果是一個區域,并不是一個單元格,所以常與函數進行嵌套使用,這個函數經常用于制作動态圖表
二、制作智能下拉
首先我們需要對數據進行排序,這一點非常重要,如果不排序是不能達到這樣的效果的,然後我們點擊想要制作智能下拉的單元格,點擊數據找到數據驗證,在允許中找到序列,然後輸入函數:
=OFFSET($A$1,MATCH(C2&"*",$A:$A,0)-1,,COUNTIF($A:$A,C2&"*"))
緊接着我們點擊出錯警告,将輸入無效數據時顯示出錯警告前面的對勾去掉,點擊确定,這樣的話智能下拉就完成了
下面跟大家簡單的介紹先函數
=OFFSET($A$1,MATCH(C2&"*",$A:$A,0)-1,,COUNTIF($A:$A,C2&"*"))
第一參數:基點,$A$1,基點單元格,也就是我們表頭的位置,需絕對引用
第二參數:移動的行數 ,MATCH(C2&"*",$A:$A,0)-1,在這裡match函數的作用是查找在下拉中輸入的數據在A列的位置,第一參數:C2&"*",在這裡星号是通配符代表任意多個字符,比如我們在單元格中輸入vivo。就是查找以vivo開頭的單元格的位置,因為有重複值的存在,函數僅僅會返回都一個查找的結果,在這裡我們需要将查找結果減去1是因為有表頭的存在,如果沒有表頭的話在這裡就不用減去1了
第三參數:移動的列數,以為這個僅有一列,所以我們可以将第三參數省略
第四參數:偏移後區域的高度,COUNTIF($A:$A,C2&"*"),在這裡我們使用countif計數同樣的在這裡我們也使用了C2&"*",我們假設單元格中輸入vivo,他就會統計以vivo開頭的單元格的個數
第五參數:偏移後區域的寬度,僅為數據僅有1列,所以可以省略第五參數
因為offset獲得是一個數據區域,當我們輸入不同的數據,函數就會返回不同的數據區域,從而達到智能下拉的效果
智能下拉的制作還是需要一定的函數基礎的,如果你覺得難的話,可以直接使用上面的函數,替換相應的單元格位置即可
我是excel從零到一,關注我持續分享更多excel技巧
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!