[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『エクセル2003を使っていますIFを使って...』(Momo)
エクセル2003を使っています
IFを使って 以下のようなことをしたいのですが
C D E F G H I J K L
1 50 100 150 200 250 328 350 400 450 500
2 1 2 3 4 5 6 7 9 10 11
3
4 52 =IF(C4<=50,C2,IF(C4<=100,D2,IF(C4<=150,E2,IF(C4<=200,F2,IF
(C4<=250,G2,IF(C4<=300,H2,IF(C4<=328,I2,IF(C4<=350,J2,IF (C4<=400,J2,IF(C2<=450,K2,IF(C4<=500,L2)))))))))))
C4 セルに任意の数字を入れたら 第2列の数値を選んで D4セルに表示する 式を作りましたが エラーになります。 IF を使いすぎるとエラーになるようです 何か良い方法はありませんでしょうか?
こんな感じでしょうか? (Hatch) =IF(C4<=C1,C2, IF(ISNA(MATCH(C4,C1:L1,0)), INDEX(C2:L2,,MATCH(C4,C1:L1)+1), INDEX(C2:L2,,MATCH(C4,C1:L1,0))))
こんなのでは?
=IF(INDEX($C$1:$L$1,,MATCH(C4,$C$1:$L$1,1))=C4,INDEX($C$2:$L$2,,MATCH(C4,$C$1:$L$1,1)),INDEX($C$2:$L$2,,MATCH(C4,$C$1:$L$1,1)+1))
(Bun)
ゴメン、50未満の処理が抜けていました
=IF(C4<C1,C2, IF(INDEX($C$1:$L$1,,MATCH(C4,$C$1:$L$1,1))=C4,INDEX($C$2:$L$2,,MATCH(C4,$C$1:$L$1,1)),INDEX($C$2:$L$2,,MATCH(C4,$C$1:$L$1,1)+1)))
(BuN)
直接の回答ではありませんが、2003 での IF のネスト回数は7回までだったと 思います。
ご質問者は momo さんとは別の方ですよね。 初心者さんほどではないですが、Momo に momo に momo さんがいらっ しゃるみたいですね。早口言葉みたいな・・・。
全然関係ないですが、最近 弥太郎さんや HANA さんが見えなくなって寂しいですね。 ここの雰囲気も随分変わってきました。 駄レスですみません。 (Mook)
こういうのもどうでしょう? (PENSIONER)
=IF(COUNT(C4),IF(C4<=500,SMALL(C2:L2,RANK(C4,(C4,C1:L1),1)),""),"")
なるほど・・・こんな感じでもよさそうですね。エラー処理なしです。 =INDEX(C2:L2,,COUNTIF(C1:L1,"<"&C4)+1) 恥の上塗り・・・にならなければよいのですが ^^; (Hatch)
皆様ありがとうございました。 皆様から教えて頂いた式の意味をずっと調べ
実際に検証してました。
おかげでINDEXという関数が少し見えてきました。
Mook様
momoさんとは全然かんけいありませんよ(^^)
質問文は正しいですか? 式も正しいですか?
表と式が少しずれているようですね
・・・(C4<=300,H2,IF(C4<=328,I2,IF(C4<=350,J2,IF (C4<=400,J2・・・
By
1行目の値以下の条件で2行目の値を取り出したいというのが質問の意図ではないでしょうか? 私はそのように読み取ったのですが・・・ (Hatch)
少し長ったらしいですが。=12-(C4<=50)-(C4<=100)-(C4<=150)-(C4<=200)-(C4<=250)-(C4<=328)-(C4<=350)*2-(C4<=400)-(C4<=450)-(C4<=500) (NB)
Hatch様 その通りです。 皆様のおかげで INDEX や MATCH 関数の使い方が見えてきました。 ありがとうございました。 Momo
回答も出されて、解決していると思います。もう見ないと思いますが・・・
質問内容が、実際の値を利用(一部に規則性がある)しているのか判りませんし 実際に表を作成しているのでしょうか?
降順に並べ替えて
C D E F G H I J K L 1 500 450 400 350 328 250 200 150 100 50 2 11 10 9 7 6 5 4 3 2 1 3 4 52
=INDEX(C2:L2,MATCH(C4,C1:L1,-1))
数値が整数の場合、値を変更して
C D E F G H I J K L M 1 0 51 101 151 201 251 329 351 401 451 501 2 1 2 3 4 5 6 7 9 10 11 3 4 52
=HLOOKUP(C4,C1:M2,2) =INDEX(C2:L2,MATCH(C4,C1:L1,1))
>IF を使いすぎるとエラーになるようです IFのネストを避ければいいので
=IF(C4<=328,IF(C4<=50,C2,IF(C4<=100,D2,IF(C4<=150,E2,IF(C4<=200,F2,IF(C4<=250,G2,IF(C4<=300,H2,I2)))))),IF(C4<=350,J2,IF(C4<=400,J2,IF(C2<=450,K2,IF(C4<=500,L2)))))
今回のように、途中まで規則性がある場合 =IF(C4<=250,CEILING(C4,50)/50,IF(C4<=328,H2,IF(C4<=350,I2,IF(C4<=400,J2,IF(C2<=450,K2,IF(C4<=500,L2))))))
実際の値、実際に作る表 などによりいろんな回答が出てくると思います
参考までに・・・
By
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.