- ベストアンサー
保険費の後の文字列が変わっても数値を表示したい
- Windows7 Excel2007でマクロを作っている初心者です。セルF17に次のコードが入っています。=IF(C17="保険費",50000,IF(C17="水道費",28000,IF(C17="修繕費",SUM(D33:D37),IF(C17="雑費",K16,D17*E17))))。つまりセルC17の文字列に応じて、費用金額がセルF17に表示されるようにしています。
- このコードの「保険費」という文字列を「保険費A適用分」に変更すると、当然空欄になります。保険費の後ろにどんな文字列が来ても上の50000が表示されるようにしたいです。*を使ってやりたいのですが、試行錯誤しましたが、どうしてもできません。
- Windows7 Excel2007でマクロを作成している初心者です。セルF17には、次のコードが入っています。IF関数を使用して、セルC17の文字列に応じて費用金額を表示しています。例えば、セルC17が「保険費」の場合、50000が表示されます。しかし、「保険費A適用分」というように、保険費の後ろに別の文字列が追加される場合、上の50000が表示されなくなってしまいます。どのようにすれば、保険費の後ろの文字列が変わっても価格を表示できるようになるでしょうか?*を使用して解決しようとしましたが、うまくいきませんでした。お手数ですが、ご教示いただければ幸いです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
#VALUEが出るということですが、それはFIND関数の落とし穴?です。 そこらあたりはヘルプをじっくりながめてみてください。 要するに単純に、FIND("保険費",C17)では拙いということです。 で、以下のようにするといいでしょう。 =IF(NOT(ISERROR(FIND("保険費",C17))),5000,IF(NOT(ISERROR(FIND("水道費",C17))),28000,IF(C17="修繕費",SUM(D33:D37),IF(C17="雑費",K16,D17*E17)))) それから、式をコピーとするということについていうと SUM(D33:D37)などの部分は、絶対参照でなくていいのかな、という疑問も出てきますが、、 以上です。
その他の回答 (1)
- bluecampus
- ベストアンサー率66% (138/209)
# カテゴリが違うような。 # [技術者向] コンピューター > 業務ソフトウェア > 会計ソフト # のほうが最適っぽい。 FIND関数を使ってみるとか。 >=IF(C17="保険費",50000,IF(C17="水道費",28000,IF(C17="修繕費",SUM(D33:D37),IF(C17="雑費",K16,D17*E17)))) =IF(FIND("保険費",C17)=1 ,50000,IF(C17="水道費",28000,IF(C17="修繕費",SUM(D33:D37),IF(C17="雑費",K16,D17*E17))))
補足
素早いご指導ありがとうございます。カテゴリ違いましたか?すいません。 教えていただいた =IF(FIND("保険費",C17)=1 ,50000,IF(C17="水道費",28000,IF(C17="修繕費",SUM(D33:D37),IF(C17="雑費",K16,D17*E17)))) について保険費と水道費の2個だけ使いたいので =IF(FIND("保険費",C17)=1 ,50000,IF(FIND("水道費",C17)=1 ,28000,IF(C17="修繕費",SUM(D33:D37),IF(C17="雑費",K16,D17*E17)))) と修正し、この式をF17にいれたところ見事に50000が表示されました。 ところが、この式をフィルハンドルでF18にコピーしたところ,#value!エラーが出ます。 なんででしょうか?
お礼
ご指摘のとおりやったら、思っていることが完璧にできました。ありがとうございました。ヘルプをながめていましたが、わかりませんでした。じっくりながめます。ありがとう感謝します。