tft每日頭條

 > 科技

 > excel函數offset制作動态下拉菜單

excel函數offset制作動态下拉菜單

科技 更新时间:2024-07-18 09:35:53

公司要臨時制作一萬張食堂餐券,下圖所示是行政小哥設計好的餐券樣式,本意是直接打印後蓋章裁剪後使用;但是這個餐券是要求有編碼的(黃色單元格裡),編碼格式是公司名縮寫加數字組成,要求數字要從1到10000,也就是說要在“餐券編碼”後面輸入一萬個連續且不重複的編碼!如果手動輸入起碼要半天的時間,說不定還會出錯,眼看行政小哥一臉生無可戀,于是我過去三兩下幫他搞定(論每個公司都應該有一個EXCEL高手的重要性)

excel函數offset制作動态下拉菜單(EXCEL函數之offset函數應用舉例)1

解決方案如下:

一、 準備一份輔助數據,用于存儲餐券編碼,我這裡的編碼是ABC0000001到ABC0010000,如下圖所示:

excel函數offset制作動态下拉菜單(EXCEL函數之offset函數應用舉例)2

二、 設計一個控件,用于控制餐券編碼的顯示。行政小哥的模闆是每頁A4紙打印10張餐券,用控件的作用是:每當單擊一次控件,就會生成10張餐券,如下圖所示:

excel函數offset制作動态下拉菜單(EXCEL函數之offset函數應用舉例)3

三、 在B2輸入函數:=OFFSET(輔助!$B$1,(ROW() 1)/3 ($H$2-1)*10,);在E2輸入函數:=OFFSET(輔助!$B$1,(ROW() 1)/3 1 ($H$2-1)*10,)。

四、 選中B2到E2,複制,然後粘貼到其他的黃色單元格内,這時你會發現:前10張餐券生成了!如果你再點擊下控件的右箭頭,你會發現:又生成了10張餐券!

下面解釋下B2單元格函數中的(ROW() 1)/3 ($H$2-1)*10。請大家注意,在生成前10張餐券時,在B2單元格内,OFFSET函數的偏移量是1,就會得到編碼ABC0000001;然後單擊控件,OFFSET函數的偏移量是11,…,規律如下圖所示:

excel函數offset制作動态下拉菜單(EXCEL函數之offset函數應用舉例)4

這是數學中的等差數列,而a的數值就是我們用控件控制的,即H2位置處,H2的初始值是1,每單擊一次右箭頭,數值就會增大1,這樣就做到“OFFSET函數的偏移量能跟着控件的變化而變化”。

可能有人會問:既然b=1 (a-1)*10,那麼(ROW() 1)/3又怎麼解釋?大家注意,在B2單元格,ROW函數返回的結果是2,那麼(ROW() 1)/3就等于1,這樣寫函數,是因為我們把函數寫好後要複制到B8、B14、B20…,而新的位置上(行号)對應的OFFSET偏移數值分别是3、5、7、9…,規律如下圖所示:

excel函數offset制作動态下拉菜單(EXCEL函數之offset函數應用舉例)5

這也是個等差數列,和上面的解釋一樣,E2單元格的函數也是這個道理,隻是E2函數多加了1,是因為在這裡OFFSET的偏移量總是比B2的偏移量大1,道理很簡單,因為餐券是并排打印兩張。最終效果如下圖所示:

excel函數offset制作動态下拉菜單(EXCEL函數之offset函數應用舉例)6


“數據分析小哥哥”公衆号,以後将不定時更新我在數據分析領域的見解,可能會有數據思維訓練、數據分析過程解讀、數據報告撰寫、分析工具使用等方面的文章不斷出現,如果你想學點數據分析方面的知識,想提升自己的數據分析能力,那麼請跟着“數據分析小哥哥”一起前行吧,喜歡“數據分析小哥哥”的話,别忘了分享給你的同事、同學和朋友哦~

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved