- ベストアンサー
Excelの関数についての質問
- Excelの関数についての質問があります。特定の条件に基づいてセルに表示させたい内容が異なる場合、どのような関数を使えば良いでしょうか?
- Excelの関数について質問があります。特定の条件に応じてセルに表示する内容が異なる場合、どのように設定すれば良いですか?
- Excelの関数に関する質問です。条件に基づいてセルに表示する内容を指定する方法について教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
まず、VBAチックにプログラムの内容を書きますね。 前提として、 ・"↑+100"および"↑+50"の文字はすべて全角。半角はなし という仕様も追加しています。 If(COUNTA(E5:E9)=0 Then ・・・(1) If(COUNTIF(D5:D10,"↑+100")Then "A" ・・・(2) Else If(COUNTIF(D5:D10,"↑+50")Then "B" ・・・(2) Else If(COUNTA(D5:D10)=0, Then "C" ・・・(2) Else "" End if End if ) End if Else "" End if このIf文の順番にによって、優先順位を実現しています。 で、これをExcel関数に直して、 =IF(COUNTA(E5:E9)=0,IF(COUNTIF(D5:D10,"↑+100"),"A",IF(COUNTIF(D5:D10,"↑+50"),"B",IF(COUNTA(D5:D10)=0,"C",""))),"") と、なります。 仕様関数は、 IF COUNTA COUNTIF の3つです。 COUNTAは指定した範囲の文字列入力が行われているセルの数を返します。 COUNTIFは、条件が一致したセルの個数を返します。 たぶん、これで質問の内容は満たせていると思いますが、いかがでしょうか?
その他の回答 (1)
COUNTA(D5:D10)=0 としていたところを、 COUNTIF(D5:D10,"")=ROWS(D5:D10) としてみたらどうでしょうか? つまり、空白と行の数が一致したら、真とする。 #同じようにE列も修正してください。 もし行が伸びないのであれば、ROWS()のところは定数でも良いかと思いますが。。。
お礼
丁寧な説明ありがとうございました。 とてもわかりやすかったです。 なんとか希望通りになりました。 ありがとうございました。
補足
回答ありがとうございました。 とても参考になりました。 実は(E5:E9)や(D5:D8)の範囲に他の関数の数式が入力されてまして、見た目にはブランクの表示なのですが実際には=IF((B5<C5),"")などの数式で""で表示されているので、もしやIF(COUNTA(E5:E9)=0やIF(COUNTA(D5:D8)=0,"C"がそれ認識しているのでうまくいかないのでは?と思うのですが では上記の条件で (1)E5~E9がすべてブランク ↓ E5~E9がすべて「""」 かつ D5~D10がすべてブランクの場合 →「C」を表示させる ↓ D5~D10がすべて「""」の場合 →「C」を表示させる とする場合はどうすればいいのでしょうか? よろしくお願いします。