請問我想設定A1跟B1的最大值在0~10時顯示A,10~20時顯示B,20~30時顯示C,30~40時顯示D,這函數要如何寫呢?謝謝!
我已經查到以下回答
在C1輸入以下函數
=IF(MAX(A1,B1)<0,\"負數\",(IF(MAX(A1,B1)<=10,\"A\",(IF(MAX(A1,B1)<=20,\"B\",(IF(MAX(A1,B1)<=30,\"C\",(IF(MAX(A1,B1)<=40,\"D\",\"超出40\")))))))))
在補充問題 是 再寫這函數時 有長度限制嗎 ?
也就是說 我需要有A~J共10種不同答案
但是我寫到第6項以後 都會說程式錯誤
有人幫我姐這個疑惑嗎??
感恩
2006-06-12 11:27:05 · 5 個解答 · 發問者 k.k. 1 in 電腦與網際網路 ➔ 程式設計
感謝陽光小子的解惑......
那如果我需要這麼多的選項 該如何做ㄋ
2006-06-12 12:28:49 · update #1
感謝各位大大的解惑 問題已經解決了 大家都提供了非常好的解決方法 我粉難選出最佳答案 就交付投票好了
ps 我適用沙拉油的方式解決的
2006-06-13 07:41:40 · update #2
這一題得運用多個函數才能達成,不過我只能做到0和正數,若輸入負數的話會破功 a1、b1為輸入值c1為答案 d1:e12必須做個表格,如下:分數 級數 0 A 1 A 2 B 3 C 4 D 5 E 6 F 7 G 8 H 9 I10 J 接著C1的函數設定為:C1=VLOOKUP(ROUNDUP(MAX(A1,B1)/10,0),D2:E12,2)因為你的設定是0~10為A、11~20為B(10在A了就不能在B,所以是11~20,不是10~20)、21~30為C...照常理是得做一個0~100共101個對照值的表格,但這樣的工程太大,也很麻煩,所以要利用ROUNDUP這個函數,這個函數的功用是小數點N位之後無條件進位,所以利用它來取整數,例如:ROUNDUP(77.9,0)=78、ROUND(77,0)=77,再者,必須把11~20歸類在同一區間,所以把原數字除以10再無條件進位,那麼11~20都會變成2、21~30都會變成3....最外圍再用VLOOKUP這個函數來抓取相對應的值,0和1為A、2為B、3為C.... 表達能力欠佳,希望你看得懂。
2006-06-12 17:29:27 補充:
把C1的公式改成這樣,就能判斷負數了=IF(A1>0,IF(B1>0,VLOOKUP(ROUNDUP(MAX(A1,B1)/10,0),D2:E12,2),"負數"),"負數")
2006-06-12 18:32:39 補充:
修正一下把C1的公式改成這樣,就能判斷負數了=IF(A1>=0,IF(B1>=0,VLOOKUP(ROUNDUP(MAX(A1,B1)/10,0),D2:E12,2),"負數"),"負數") 或 =IF(MIN(A1,B1)>=0,VLOOKUP(ROUNDUP(MAX(A1,B1)/10,0),D2:E12,2),"負數")
2006-06-12 18:33:07 補充:
若再把C1的公式改成這樣,不但能判斷負數,還能判斷超過100的數值=IF(A1>=0,IF(B1>=0,IF(MAX(A1,B1)<=100,VLOOKUP(ROUNDUP(MAX(A1,B1)/10,0),D2:E12,2),"輸入值大於100"),"負數"),"負數") 或 =IF(MIN(A1,B1)>=0,IF(MAX(A1,B1)<=100,VLOOKUP(ROUNDUP(MAX(A1,B1)/10,0),D2:E12,2),"輸入值大於100"),"負數")
2006-06-13 10:21:50 補充:
判斷負數應該不是a1和b1比較大的數不是負數就通過了吧
a1=-1,b1=0
這樣也應該要能判斷出來
2006-06-12 13:18:28 · answer #1 · answered by ? 6 · 0⤊ 0⤋
=IF(MAX(A1-1,B1-1)<-1,"負數", CHAR(INT((IF(MAX(A1-1,B1-1)<0,0,INT(MAX(A1-1,B1-1)/10))))+65))這個總共可以顯示 26 項(A~Z),亦包含負數。最大值可到 260。最小值為負的無限大(因為只會顯示"負數")。
2006-06-13 05:28:59 · answer #2 · answered by 世賢 7 · 0⤊ 0⤋
=lookup(max(a1,b1),{0,"a";11,"b";21,"c";31,"d"})
2006-06-12 17:39:51 · answer #3 · answered by 沙拉油 5 · 0⤊ 0⤋
那就拆開來做吧
在C1輸入=CONCATENATE(E1,F1,G1,H1,I1,J1,K1,L1,M1,N1)
在D1輸入=MAX(A1:B1)
在E1輸入=IF($D1<0,"負數","")
從F1開始輸入
=IF($D1=>0,IF($D1<=10,"A",""),"")
這樣的公式表示0~10顯示A
以你上面的例子來看
往下繼續填
G1就會變成=IF($D1>10,IF($D1<=20,"B",""),"")
H1就會變成=IF($D1>20,IF($D1<=30,"C",""),"")
依此類推吧....到N1為止吧
備註:
CONCATENATE,只能單一參照儲存格,所以不能去改成區域表示喔
2006-06-12 13:13:25 · answer #4 · answered by ? 4 · 0⤊ 0⤋
因為if函數有層級限制,最多只能寫到七層而已,所以你的A~J共10種不同答案,自然會出現問題
2006-06-12 12:12:17 · answer #5 · answered by ∮陽光小子∮ 7 · 0⤊ 0⤋