用EXCEL可以這么看中國的歷史朝代(lookup妙用) 歷史需要記憶 今天突發(fā)奇想,如果我知道年代能不能一下子查看中國的歷史朝代歸屬呢,就立馬想到了一個函數(shù),先不說,先看看我做的效果。 用EXCEL可以這么看中國的歷史朝代(lookup妙用) 朝代查詢 看到這個是不是感覺很好玩啊,大家首先想到的應該是查詢函數(shù),很多人會最先想到Vlookup(),也有的會想到index()和match組合,但其實都不太好使,因為朝代是個區(qū)間;那是不是要判斷啊,會用到IF()函數(shù),但IF()函數(shù)也是有其局限性的,只能7層嵌套,但中國的朝代那么多7層嵌套肯定是不夠的。 我最先想到的是lookup這個牛叉的查詢函數(shù),說實話lookup比vlookup和hlookup應用范圍會更廣,利用其模糊查詢的功能。其實我們要搞懂lookup查詢的原理,這個函數(shù)是利用二分法來查的,而且返回的是小于等于的最大值,但要求數(shù)據(jù)排列必須是升序的。 下面說下lookup函數(shù)查詢原理,如果嫌我講的啰嗦,下面的查詢原理可以跳過,記住升序排列就行了,具體原理如下: 比方說我們有(1,7,8,9,13,15,18)7個數(shù),我用10來查,但我們會發(fā)現(xiàn)lookup查詢結(jié)果會是9,這個是怎么回事呢,二分法就是首先要找到數(shù)據(jù)的中間值,我們能發(fā)現(xiàn)5個數(shù)字中間的數(shù)字是9,中間值時9<10,而我們默認是右邊大于左邊的數(shù)字,所以會繼續(xù)向右找中間值,右方數(shù)據(jù)(13,15,18)中間值是15,很明顯15>10的,那怎么辦,往左找唄,往左是(9,13)兩個數(shù),10<13,排除13,我們選到了9。 好了說了這么多,我們開工吧: 1.首先做一個朝代表,網(wǎng)上就有,可以下一個。 公元前用負數(shù)表示,公元元年及公元元年后用正數(shù) 用EXCEL可以這么看中國的歷史朝代(lookup妙用) 朝代對照表 2.設計查詢表 設計表頭紀年、年代、朝代;紀年輸入框位置B2單元格通過數(shù)據(jù)驗證(或數(shù)據(jù)有效性)-序列,設計下拉菜單公元前、公元;年份位置C2單元格為自主輸入?yún)^(qū)域,設置為格式為常規(guī)就可以了。 朝代的查詢結(jié)果位置D2單元格輸入=LOOKUP(IF(B2="公元前",-C2,C2),B6:C26),if函數(shù)主要作用是將公元前的年代變?yōu)樨摂?shù),公元后是正數(shù),是不是最后發(fā)現(xiàn)這個函數(shù)好簡單。 LOOKUP有兩種不同形式,在這里都是可以的; 一種是我輸入的這種叫數(shù)組形式,即LOOKUP(lookup_value,array); 一種叫向量形式LOOKUP(lookup_value,lookup_vector,result_vector),所以我們把公式也可以寫為LOOKUP(IF(B2="公元前",-C2,C2),B6:B26,C6:C26)。 用EXCEL可以這么看中國的歷史朝代(lookup妙用) 如果喜好我的文章,歡迎關(guān)注我的微信公眾號:跟我學EXCEL圖表 |
|
來自: 跟我學EXCEL > 《跟我學EXCEL圖表》