- 締切済み
COUNTIFの複数条件指定について
Excelにて社内資料を作成しています。 COUNTIFの複数条件指定をしたいのですが難しく(汗) 詳しい方がいらっしゃいましたら教えてください。 【要望】 貼付の表の様に、 「A~Dは入力欄、J・H・IはA~Dに入った内容を持ってくる」 という内容にしたいです。 ◆A⇒Jはそのまま ◆B⇒Hもそのままです。 問題はIに入る内容です! Iには、 ⇒Dに「プラン」もしくは「キャンペーン」という表現が入ったらC+Dの内容を入れる ⇒Dに「プラン」もしくは「キャンペーン」が入らなければCの内容のみを入れる です! 【Dに「プラン」という表現が入ったらC+Dの内容を入れる】 という計算式は、 =IF(COUNTIF($D2,"*"&"プラン"&"*")>=1,CONCATENATE($C2,"※",$D2,),$C2)で設定できました。 「プラン」もしくは「キャンペーン」と設定する場合の方法を教えていただけますと幸いです。 よろしくお願いいたします。
- みんなの回答 (8)
- 専門家の回答
みんなの回答
- bunjii
- ベストアンサー率43% (3589/8249)
>プラン」もしくは「キャンペーン」と設定する場合の方法を教えていただけますと幸いです。 COUNTIF関数は不適当と思います。 IF関数の論理式にMMULT関数を使い、その中で文字列の比較をFIND関数とIFERROR関数を組み合わせれば分かり易くなるでしょう。 =IF(MMULT(IFERROR(FIND({"プラン";"キャンペーン"},D2),0),1)>0,D2,C2) この数式は列方向(縦)にコピーできますが、行方向(横)にコピーする場合は列記号の先頭に$マークを付けてセル番地の変化を防止してください。 尚、仕事に応用する事案をこのサイトへ質問するのは甘えすぎかと思います。
- imogasi
- ベストアンサー率27% (4737/17069)
#4です。 すみません、途中であった回答に、追加して、 I列の関数を、小生の挙げた実例では、 =IF(ISERROR((FIND("プラン",$D1)<>0)*(FIND("キャンペーン",D1)<>0)),C1,C1&D1) のようにする。 でもややこしいですね。関数では、式が長くなって、苦労します。 ちなみに、SERCH関数もFIND関数と似ていますが、短くは、ならないようです。
- al2o3zro2
- ベストアンサー率0% (0/0)
こんなのはいかがですか =IF((COUNTIF($D2,"*"&"プラン"&"*")+COUNTIF($D2,"*"&"キャンペーン"&"*"))>=1,CONCATENATE($C2,"※",$D2,),$C2) IF関数の条件式を二つ用意して足しています。 どちらかが1を返せば1以上になるので”OR”条件を満たします A条件真→1 B条件真→1 (A+B=2) >=1 真 A条件真→0 B条件真→1 (A+B=1) >=1 真 A条件真→1 B条件真→0 (A+B=1) >=1 真 A条件真→0 B条件真→0 (A+B=0) >=1 偽 な感じです 質問の式の条件部分を変形させただけなので 質問者にはこれが一番わかりやすいのでは
- msMike
- ベストアンサー率20% (364/1804)
列記号の順序が間違ってますが、… =IF(COUNTIF(D2,"*キャンペーン*")+COUNTIF(D2,"*プラン*"),C2&"※"&D2,C2) で如何ですか?
- imogasi
- ベストアンサー率27% (4737/17069)
COUNTIFやCOUNT関数はセル範囲の中で、該当のものを探す関数で、質問者はエクセル関数の誤解をしているようだ。 ーーー 1セルの値の文字列の中(一部分)で、語句(文字列)が含まれているかどうかは、FIND関数だろう。 D列 例データ xxプランyyキャンペーン xxプランyy xxプリランyyキャンペーン xxyyキャンペーン xxプランナー募集 xxyy大キャンペーン xx第プランyyキャンペーン xxプラyyキャン xxプラランyyキャンペーン セルG1の式 =IF(AND(FIND("プラン",D1)<>0,FIND("キャンペーン",D1)<>0),"Z","") セルH1の式 =IF(FIND("プラン",D1)<>0,"Z","") セルI1の式 =IF(FIND("キャンペーン",D1)<>0,"Z","") 結果 G1:I9 Z Z Z #VALUE! Z #VALUE! #VALUE! #VALUE! Z #VALUE! #VALUE! Z #VALUE! Z #VALUE! #VALUE! #VALUE! Z Z Z Z #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! Z このG列の式によって、Zに当たる場合 I列の内容を決める式を組み立ててください。 今時間がないのでとりあえず。 でももっと簡単な式がないかな。 ーー 上記HとI列のIF文の結果のTrue*True(掛け算)をして、1の時は両条件を満たしている場合で、それ以外は満たさない風に式を書けば良いかも。
- q4330
- ベストアンサー率27% (768/2786)
=IF(OR(D1="プラン",D1="キャンペーン"),C1&D1,C1) これでできます
- kon555
- ベストアンサー率51% (1842/3559)
既に『【Dに「プラン」という表現が入ったらC+Dの内容を入れる】』が実現できているなら、入れ子構造にすれば実現できます。 https://www.becoolusers.com/excel/nested-functions.html https://www.itc.u-toyama.ac.jp/el/spreadsheet/if_2.html 難しく考える必要はなく、今の条件分岐の偽の場合に、もう一つ条件判定を入れれば良いです。
難しいことができないときは簡単なことをたくさんやってはどうですか。 Dにプランが入っていたらKにDを、そうでないときは0を入れる。 Dにキャンペーンが入っていたらLにDを、そうでないときは0を入れる。 IにC+K+Lを入れる。