Excel情報局 用案例講Excel 問題求助SOS:如何根據ABCD等級的變化,判斷升降情況? 這個問題的提干很簡單,非常容易描述。 如下圖所示: A列是8月份的各等級信息,B列是8月過渡到9月時,等級的變化情況,我們想要判斷一下,9月相對于8月,等級是上升了,或者是下降了,還是沒有變化。 比如等級由B→B,等級未發生變化;等級由C→D表示等級下降;等級由D→A表示等級上升。 ![]() 這個問題的主旨思路是非常簡單的,沒有任何難度,重點在于如何比較ABCDEFG等英文字母的大小,我們通多比較“字母”的大小就完全可以判斷等級的升降情況了。 這里我們要介紹的就是CODE函數了。 CODE函數是Excel或WPS表格中用于獲取文本字符串中第一個字符數字代碼的函數。 語法: =CODE(text) 參數text為要獲取數字代碼的文本字符串。 比如:=CODE("A") 返回65(字母A的ASCII碼);=CODE(A1) 若A1單元格內容為“B”,則返回66。 ![]() 第一步:提取9月等級 使用TEXTAFTER函數: ![]() 第二步:字母等級轉代碼 使用CODE函數: ![]() 第三步:代碼比較 根據大寫字母(A-Z)所對應的代碼依次是65-90,是由小到大順序排列的。也就是字母越靠前,代碼越小。 所以我們進行減法運算比較: ![]() 一般情況下,我們會使用IF或IFS條件判斷函數進行判斷: =IFS( CODE(TEXTAFTER(B2,"-"))-CODE(A2)>0,"升級", CODE(TEXTAFTER(B2,"-"))-CODE(A2)<0,"降級", CODE(TEXTAFTER(B2,"-"))-CODE(A2)=0,"不變") 或: =IF(CODE(TEXTAFTER(B2,"-"))-CODE(A2)>0,"升級", IF(CODE(TEXTAFTER(B2,"-"))-CODE(A2)<0,"降級", "不變")) 但是我們發現,雖然邏輯很簡單,但是公式很冗長,我們都喜歡公式越短越好。 我們可以利用TEXT函數的特殊格式用法: ![]() ![]() |
|