快速瀏覽
往期合集:【2023年3月】【2023年4月】【2023年5月】【2023年6月】【2023年7月】
實用案例
內容提要
大家好,我是冷水泡茶,今天在知乎有一邀請貼:
說實話,關于SWITCH函數(shù),我好象是從來沒有用過,一點印象都沒有。于是趕緊搜了一下,微軟官網上的說明:
回答就是這樣了,我們再發(fā)散一下,談談在回答這個問題時,我們用到或想到的相關EXCEL技巧吧:
對照表整理
在準備回答問題的時候,我想把問主的公式整理成對照表的形式,怎么做才夠快捷呢?我是這樣做的:
1、把公式中1,“1”......31,“w"這段參數(shù)復制到一個單元格里。
2、分列,分隔符號,其他“,”。
3、把分列得到的數(shù)據轉置。
4、在數(shù)據右側單元格,通過MOD(ROW(),2)公式,把匹配值與返回值分別標上0或1.
5、篩選0和1則分別得到匹配值與返回值,把他們對應貼到對照表里。
6、完工!
日期的處理
1、我猜問主這么做,可能他要把所有的日期都變成長度為1的值,但我實在想不出來是什么原因。
2、如要提取出來日期中的月、日,我們可以用MONTH、DAY函數(shù), 不過如果直接用MONT(日期)&“月”或DAY(日期)“日”的話,在字段排序的時候可能會出現(xiàn)問題,如按日1排序:
3、我們可以通過TEXT函數(shù)來把1位數(shù)日前添0,都變成兩位數(shù),這樣排序就沒有問題了。按日2排序。
或者,=TEXT(A2,"DD")&"日",則更為簡潔。
SWITCH函數(shù)替代
問主直沖冷門函數(shù)而去,我們來看看有沒有其他替代方案:
1、對照表方法,最常見,最實用,但要多加一個表。
(1)VLOOKUP法,最簡單直接,我們前面說過了,不再重復;
(2)OFFSET+MATCH法:
=OFFSET(對照表!$A$1,MATCH(數(shù)據表!A2,對照表!$A$2:$A$32,0),1)
(3)INDEX+MATCH法:
=INDEX(對照表!$B$2:$B$32,MATCH(數(shù)據表!A2,對照表!$A$2:$A$32,0))
(4)LOOKUP法:
=LOOKUP(A2,對照表!$A$2:$B$32)
2、VLOOKUP+數(shù)組法,我們直接把公式改為:
=VLOOKUP(A2,{1,"1";2,"2";3,"3";
4,"4";5,"5";6,"6";7,"7";8,"8";
9,"9";10,"X";11,"Y";12,"Z";
13,"A";14,"B";15,"E";16,"F";
17,"G";18,"H";19,"J";20,"K";
21,"L";22,"M";23,"N";24,"P";
25,"Q";26,"R";27,"S";28,"T";
29,"U";30,"V";31,"W"},2,0)
復雜程度跟SWITCH差不多,公式很長。
3、LOOKUP+數(shù)組法:
=LOOKUP(A2,{1,"1";2,"2";3,"3";
4,"4";5,"5";6,"6";7,"7";8,"8";
9,"9";10,"X";11,"Y";12,"Z";
13,"A";14,"B";15,"E";16,"F";
17,"G";18,"H";19,"J";20,"K";
21,"L";22,"M";23,"N";24,"P";
25,"Q";26,"R";27,"S";28,"T";
29,"U";30,"V";31,"W"})
比VLOOKUP稍微簡潔那么一丟丟,公式依然很長。
4、IF法,在轉換參數(shù)比較少的情況下,可以用IF,但在本例中行不通。稍微列個例子意思一下:
=IF(A2=1,"1",IF(A2=2,"2",IF(A2=3,"3","")))
5、有沒有其他方法?我想肯定有,我們就不再深究了。
總結
=SWITCH(K2,"男",1,"女",0)
當然我們也可以用IF,對于二選一的情況,更簡潔:
=IF(K2="男",1,0)
3、就此打住。
正文完
聯(lián)系客服