2013年10月8日 星期二

Excel 的資料分級程式

Excel 的資料分級程式
使用excel的時候,常會遇到將資料 分級 的需要。譬如
0-2.9 太低
312 普通
1215 優秀
15.1~太超過了
之類的,通常我們 會用好幾個 巢狀 IF 來寫這個程式,又臭又長。而且IF還有數目的限制。
這裡介紹一個很有用的  分級 程式。
就是 Vlookup 函數
用過 Vlookup 的人都知道,這是一個很棒的 查表函數。他可以查到 3, 12 15等我們預設的值對應到的資料。
但是大部分的人不知道,如果查不到呢?譬如 叫他去查6,他就查不到,那就會回復給我們一個 #N/A
其實有一個好方法,可以叫它 查不到也沒關係」,給我一個「最接近的數字所對應的值」就好了。譬如說 6 查不到,那就查「 6小但最接近的那一組數字」,也就是3那組數字。
這樣就很棒了!可以用來 查整個區間,還有就是可以用來做我們題目所提到的「做分級的工作」。
如何做?
譬如 我們把下面的表放在 A11B16
0

3
普通
12
優秀
15
優秀
15.1
太超過了
9999

我們要查分級的數字放在  A1
要把查到的分級  放到B1
B1 =VLOOKUP(A1,A11:B16,2,0), 
A13時,B1=普通
這裡我們詳細講解一下Vlookup這個 函數
就是要電腦到 A11B16這個表中去找 第一欄的數字=A1那一欄的數字的那一列,也就是 A12(=3) 那一列的第-2欄的資料 對應回來,得到「普通」這個內容
但要表中沒有的數字時就出現了錯誤,譬如A16 時,B1#N/A
因為Vlookup函數的最後一個引數 0 的時候,就是要「找到完全相同」的數字才行,否則就是 #N/A
但,精彩的來了!
Vlookup函數最後一個引數為1的時候,就是只要找到「小於它而最近的數字
也就是 B1=VLOOKUP(A1,A11:B16,2,1)
A16時,B1=普通
A1311.9999999 B1都是=普通,對!這就是我們要的
然後,各位看到我最上方寫一個 0, 最下方寫一個 9999, 就是假設可能出現的最小和最大值,這樣你怎麼查也不會出現 #N/A了。
還有 15的下面,要插入一個 15.1 (或是15.0000001比較安全)這樣超過15的數字就會對應到 「太超過了」。
過癮吧,你即使是分10級、20級再多的級數都沒關係,照樣可以用,不像IF有最多8層的限制,而且還把函數寫得非常冗長,頭都昏了。
這樣的功能還可以用在哪裡呢?
譬如 你要寫一個 薪資所得稅扣除額 的程式,薪資 18,00120,000的人假如扶養親屬-2個人要扣繳多少所得稅之類的,是不是用 Vlookup 才做就得心應手,很便捷的就完成了。

記得,Vlookup就是一個超棒的 查表函數 分級函數,有 查表 分級 的需要是就是要善用 Vlookup就對了。

沒有留言:

張貼留言