- ベストアンサー
IF関数を使ってExcel2010で円マーク付きの書式設定が反映されない問題
- Excel2010でIF関数を使って特定の条件に応じてセルに表示する値を設定していますが、複数のIF関数を使うと円マーク付きの書式設定が反映されず、問題が発生しています。
- 具体的には、調整したセルに通貨の円マークが表示されるように書式設定をしており、IF関数によって他のセルの値を表示するように設定しています。しかし、複数のIF関数を追加すると円マークが表示されなくなります。
- また、他のセルで同様の書式設定をしても同じ問題が発生し、書式設定が反映されません。この問題を解決するためにはどのような対策が必要でしょうか。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
if の繋げ方が間違っています。 & は文字列として繋げてしまうので、それぞれの結果が数値でも、繋げた結果は文字列となり、通貨用の書式設定が無効になってしまうというわけです。 今回の例でifを繋げるには、 =IF($R$1=1,C2,IF($R$1=2,D2,IF($R$1=3,E2, …… ))) というように、「もし条件が成立すれば C2、そうでなければ、もし…」というように繋げて行ってください。 ネスト数にも制限がありますが、新しいExcelほど多くネストできるので12個ぐらいなら大丈夫ですね…。 また、$R$1の数値でC2~N2を選ぶだけなら、そういう関数がありますので、 =CHOOSE($R$1, C2,D2,E2,F2,G2,H2,I2,J2,K2,L2,M2,N2) というようにも書けます。 (複雑な条件による選択ならば、やはりIF関数で書くことになるでしょう)
その他の回答 (3)
- heisukewada
- ベストアンサー率57% (93/162)
仮に2月の金額が100だとすると、計算結果は =""&100&"" となって、数値ではなく文字になるのだと思います。 なので、O2に入る計算式は =IF($R$1=1,C2,IF($R$1=2,D2,IF($R$1=3,E2,IF($R$1=4,F2,IF($R$1=5,G2,IF($R$1=6,H2,IF($R$1=7,I2,IF($R$1=8,J2,IF($R$1=9,K2,IF($R$1=10,L2,IF($R$1=11,M2,IF($R$1=12,N2,"")))))))))))) であれば、¥マークが付くはずです。 順番に並んでいるので =CHOOSE($R$1,C2,D2,E2,F2,G2,H2,I2,J2,K2,L2,M2,N2) のほうがわかりやすいかと思います。 もしくは =INDEX($C$2:$N2,ROW()-1,$R$1)
お礼
ご回答ありがとうございます。CHOOSE関数で問題が解決しました。
- HohoPapa
- ベストアンサー率65% (455/693)
書式設定が有効にならない原因はすでに説明されているので 私からは別解を。 =INDEX(C2:N2,1,R1,1) といった計算式はいかがでしょうか。 もし、元々の計算式を生かすなら、ちょっと乱暴ですが、 =(IF($R$1=1,C2,"")&IF($R$1=2,D2,"")&IF($R$1=3,E2,"")&IF($R$1=4,F2,"")&IF($R$1=5,G2,"")&IF($R$1=6,H2,"")&IF($R$1=7,I2,"")&IF($R$1=8,J2,"")&IF($R$1=9,K2,"")&IF($R$1=10,L2,"")&IF($R$1=11,M2,"")&IF($R$1=12,N2,""))/1 といった解もあります。
お礼
ご回答ありがとうございます。こんな短いINDEX関数ですべて解決するんですね。とてもクールな解決方法を教えていただき、ありがとうございました。
IF を AND で結ぶ・・・って、機能しないと思う。 IF( $R$1=1,C2,IF($R$1=1,D2,IF($R$1=3,E2,""))) そもそも計算式間違ってるかも。
お礼
ご回答ありがとうございます。条件が12個あるので、入れ子に上限があり困っているところでした。
お礼
ご回答ありがとうございます。原因まで教えていただき、ありがとうございます。CHOOSE関数で書式設定が出来ました。ありがとうございます。