中括號是幹什麼用的
EXCEL
裡有非常多的厲害函式
我們要介紹的
LOOKUP
函式就其中最厲害的函式之一
它有2個最大的特性,基於這2個最牛逼的特性,我們衍生出了很多常用套路
特性一,二分法(篇幅有限,感興趣的可以自己研究下)
特性二,忽略錯誤值,這個特性就非常少了,在函數里能忽略錯誤值的非常非常少
上面說的特性,不懂就忽略過去向下看,我們來說說常用的套路
一、區間求值
上案例,我們最常用的績效計算,成績計算等
VBA+
Excel教程零基礎VBA學習資料批次處理宏教程 表格製作 函式 透視圖表
325篇原創內容
公眾號
Word教程自學平臺
Word教程自學平臺 每日分享Word、Excel、PPT、WPS等各種辦公技巧,助你高效率辦公。
384篇原創內容
公眾號
PPT教程自學平臺
PPT教程自學平臺。每日分享Word、Excel、PPT圖文教程,提供Office、Word、Excel、PPT、WPS等各種辦公技巧,大幅提高辦公效率
276篇原創內容
公眾號
我們按照簡單的
if
函式來做,那就要寫好長的一個函式,如下:
=IF(B15<=60,“不合格”,IF(AND(B15>=61,B15<=80),“一般”,IF(AND(B15>=81,B15<=90),“良好”,“優秀”)))
如果這個區間再多一點,簡直就是災難一樣
我們用LOOKUP來做這個問題
第一步,我們要改造資料來源
自己可以對應理解分數這的寫法表示了什麼
0表示0-60,這個60就比上面的數字小1(這裡是整數)
61表示61-80,以此類推的理解
=LOOKUP(J9,G9:H12)
一引數,就是查詢的值,二引數,就是區間範圍
簡單嗎,任你區間千千萬,只要範圍改下就好了
這裡唯一注意的是,因為二分法要求,分數區間
必須升序排列
好
二、精確查詢
上案例,我們要處理的是精確查詢
先說說單條件的精確查詢
我要透過
員工id
,找
姓名
=LOOKUP(1,0/(B7:B14=G7),C7:C14)
固定套路語法:=LOOKUP(1,0/(條件),返回值範圍)
這裡就是利用了一個忽略錯誤值的原理,來實現查詢功能
首先0/數字,永遠是小於1的一個數字
如果沒找到就是0/FALSE,這個結果是一個錯誤值,LOOKUP會忽略不計
然後拿1,去比較永遠小於1的一個數字,就會拿到最後一個匹配到的結果
為什麼說最後匹配的結果,我們做個試驗,剛剛的案例裡,我們AZQ003都是雨夜
我們修改一下, 把數學成績對應的姓名,改為
那一夜
那為什麼是找到最後面的匹配結果,嘿嘿,我們來下一個套路說
我們再說下多條件查詢
還記得我們上面說的語法
固定套路語法:=LOOKUP(1,0/(條件),返回值範圍)
=LOOKUP(1,0/((B7:B14=G12)*(D7:D14=H12)),E7:E14)
其他沒變化,就是那個套路條件這裡變了,多條件用括號包起來,中間用乘法連結
三、找最後一行
我們有一個數量表,其中下面會有一個合計,但是我們位置不是固定的
我需要直接拿到資料裡最後一行的資料
劃重點,這裡是找的
數字
,並且為之不固定,可能是11行,也可能是1111行
=LOOKUP(9E+307,D:D)
因為是找數字,我們這裡給他一個足夠大的數字就好了,
9E+307
如果我能找的文字或者漢字
=LOOKUP(REPT(“座”,255),B:B)
這裡REPT(“座”,255),表示255個座字,讓這個漢字足夠大
有的同學會說,給我看這個有啥用?我沒事找他幹什麼
四、資料有效性(資料驗證)
我們既然能找到最後一行資料
同樣的道理,我們也能找到,最後一行行號
知道行號,我們就能利用這個原理,做一個智慧下拉
=LOOKUP(REPT(“座”,255),B:B,ROW(B:B))
是不是找到了最後行
我們再利用OFFSET函式來做個自定義名稱
=OFFSET(案例5!$B$2,,,LOOKUP(REPT(“座”,255),案例5!$B:$B,ROW(案例5!$B:$B))-1,1)
然後我們設定有效性。看看效果
用LOOKUP函式來做資料有效性,自己可以隨便寫,空行也一樣可以拿到正確資料