• ベストアンサー

エクセルVBA 複数の条件を判定するIFの書き方

いつもお世話になっております。 ワークシート関数で =IF(AND(A1=C2,A1=D1,A1=E1),"☆","★") と同じ結果をたとえばA2セルに返すにはどのように 記述したらいいか教えてください。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.2

なぜあえてVBAなのかわかりませんが、もっと複雑な処理のうちの一部なのでしょうか。 とりあえず、質問の式と同じことをやろうとするのであれば、以下のような感じになるかと思います。 If Range("A1").Value = Range("C2").Value And Range("A1").Value = Range("D1").Value And Range("A1").Value = Range("E1").Value Then  Range("A2").Value = "☆" Else  Range("A2").Value = "★" End If

oresama
質問者

お礼

ありがとうございます。 andで繋げばよかったのですね。 ご想像の通り、ある処理を行う前提のチェックとしての判定です。 なので、 Then 以下は Call ☆なマクロ Else Call ★なマクロ End If となります。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.3

そのままVBA化するなら、こんな感じでしょうか。 Range("A2").Value = _ IIf(Range("A1") = Range("C2") _ And Range("A1") = Range("D1") _ And Range("A1") = Range("E1"), _ "☆", "★")

oresama
質問者

お礼

ありがとうございました。 IIf関数を使うのかなと思いましたが 肝心のAndで繋ぐということを知りませんでした。 これはこれで、色々使いでがありそうです。

全文を見る
すると、全ての回答が全文表示されます。
  • kaz-5919
  • ベストアンサー率26% (45/170)
回答No.1

VBAじゃなくても =IF(AND(A1=C2,A1=D1,A1=E1),"☆","★") ↑がC1にかいているのなら 同じ結果をA2に返すのは A2に「=C1」ではだめなんですか?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 判定 複数条件

    IF関数の中に AND関数で条件を入れているのですが、 前者しか判定が機能していません。 F4セルについては実際は500と入力されています。 また、AND関数について 3段階に分けた場合は偽の判定しか出ませんでした。 IF(AND(SUM(E7:E23)<B4;"1100"<=F4;F4<"2000");"※";"") http://www.evernote.com/shard/s114/sh/57d89467-3940-4f3e-9467-48a6f4703ae4/b9f5cc164c12eea851ab32e6d6739e58

  • IF VBA 1つの条件で複数の処理

    IF関数で、1つの条件(セルに特定の文字があったら) セルA1=B1+C1 セルB1=D1+E1 のように2つの処理を行ないたい場合、どんな構文を作成 したらいいでしょうか。 IF~Then ElseIf~Then End If というのが基本構文ですが、条件が複数あるのではなく 条件1つで処理は2つというのが分かりません。

  • エクセルVBA If Then 構文でOR条件の場合のVBA記述方法は?

    仮にセル("A1")が空白か Falseの場合は Then 以下のことをする。 と書きたいのですが If Sheets("Sheet1").Range("A1")="" Then ~略 If Sheets("Sheet1").Range("A1")=False Then ~略 と別々に記載する方法しかわかりません。 ワークシート関数のようにIF(OR(A1="",A1=False),~略)というようにまとめて記述するにはどう書けばいいのでしょうか? AND条件の場合も教えてください。よろしくお願いします。

  • エクセルで条件によって判定させる方法

    みなさん、お忙しいことと思いますが、教えて下さい。 現在エクセルで判定シートを作っています。 条件の例として、 セルA1が0~5でB1が0~10の場合、Aとします。 セルA1が6~10でB1が11~20の場合、Bとします。 セルA1が11~15でB1が21~30の場合、Cとします。 それ以外の場合には、Dと判定するようにしたいのです。 そこで、以下のようにしてみました。 IF(AND(0<A1<5,0<B1<10),"A" ,IF(AND(6<A1<10,11<B1<20),"B" ,IF(AND(11<A1<15,21<B1<30),"C","D"))))) これが上手く機能しないので、教えていただけますか? 何卒、宜しくお願いします。

  • エクセル IF関数 複数条件?

    いつもお世話になります IF関数で複数条件を記入する場合 現在は =IF(AND(A16="aaa",H16>=81),H16-80,IF(AND(A16="aaa",H16>=1),H16+80,IF(AND(A16="bbb",H16>=81),H16-80,IF(AND(A16="bbb",H16>=1),H16+80,H16)))) と やたらと長い条件設定になっています 結果は正しいのですが、もっとスッキリ出来る方法を教えて頂きたいのです。

  • IF関数の複数条件

    D2のセルに計算式B2+C2が入力されているんですが、 E2のセルに●か▲のどちらか一つが入力されたときにD2のセルの式をB2*C2に切り替えたいです。 この場合のif関数の式を教えてください。

  • エクセルでIFとANDを使った関数について教えて下さい

    A B C D E F G 1 1 2 3 結果 2/3 2/4 2/5 2 2/3 2/4 2/5 合格 0 0 1 3 上記のような表を作成しようとしています。条件が、 D1が「合格」で、 C2の日付がE1(該当セル、E1なら2/3、F1なら2/4)と同じなら「1」、 違うなら「0」、 B2の日付がE1(該当セル、E1なら2/3、F1なら2/4)と同じで尚且つ、 C2が「空欄」なら「1」、違うなら「0」、 A2の日付がE1(該当セル、E1なら2/3、F1なら2/4)と同じで尚且つ、 C2が「空欄」で、B2が「空欄」なら「1」、違うなら「0」 を返しなさい。 という関数を作りたいのですが、上手くいきません。 IFとANDを使えばいいと思うのですが、どのように組み合わせれば 良いでしょうか。 真を返す、優先順位は、C2、B2、A2、のセルです。 C2に日付が入ってるときはB2とA2に日付が入っていても カウントされないように(偽が入るように)したいのです。 ちなみに、最初は、 =IF($D2="合格",IF($C2=E$1,1,IF($B2=E$1,1,IF($A2=E$1,1,0))),0) と、入れてましたが、これだと、C2に日付が入った時にC2だけカウント したいのに、B2もA2もカウントされてしまいます。 どうか、良きアドバイスをお願いします!!

  • EXCELのIF関数 複数の条件と複数の結果

    初心者ですすみません。 IF関数で、複数の条件の入れ方はなんとなく わかりました。(ANDを使えばいいんですよね?) 今回、条件も結果も複数ある式を作りたいのですが、 どういう式にしたらよいのでしょうか?? 例えば、もしA2の答えがマイナスで、且つA1の答えが整数だったら、C2*D2、A2が整数で、A1がマイナスだったら、c2-D2、A2が整数で、A1がマイナスだったら、C2*D2のような感じです。

  • Excelで4つの条件で計算式を変える

    できるのかできなのかもわからず、試行錯誤してましたが、途方に暮れています。 A1のセルに「あいう」か「いろは」 B1のセルに「A」か「B」 の値が入るとすると、組み合わせは あいう・A あいう・B いろは・A いろは・B の4通りになりますが、この4通りに違う式を当てはめてE1セルに表示させたいのです。 あいう・Aの時は、(C1-D1)*10 あいう・Bの時は、(D1-C1)*10 いろは・Aの時は、(C1-D1)*500 いろは・Bの時は、(D1-C1)*500 のような感じですが、IF関数、AND関数いろいろやってみましたが、「あいう」のA、Bくらいなら大丈夫ですが、「いろは」も含めるとエラーになってしまいます。   どのように関数書けばちゃんと表示される(答えがでる)でしょうか。 =IF(A1="あいう",IF(B1="A",(C1-D1)*10,(D1-C1)*10)) ↑これなら「あいう」でA、Bに分けるのはいいと思うのですが、ここから先がよくわかりません。 「いろは」でも同じ様に分けたいのです。 このIF関数、A1が「あいう」だったら、B1が「A」の場合(C1-D1)*10 そうじゃない場合(Bの場合)は(D1-C1)*10の解釈で、偽の場合にIF関数使ってA1に「いろは」だったらのような感じでIF関数入れればなんとかなるのかな?と考えましたが、そもそもその考え方がおかしいのでしょうか?

  • Excelのif関数を使ったのですがうまくいきません。

    Excelのif関数を使ったのですがうまくいきません。   | A | B | C | D | E ----------------------- 1 | A | A | A | A | 5 2 | B | A | A | B | 4 3 | C | C | A | C | 2 のようにA1~D4のセルに入力されたA,B,C の組み合わせによって E5のセルに1~5の数字を入れていきたいのですがAAAA~CCCCの組み合わせが 15通りあってif関数では入れ子ができません。 AAABもAABAも同じと判断させて1~5の数字を自動的に入力させたいのですが 何かいい方法はないでしょうか。 教えてください。

インク交換してもエラーがでる
このQ&Aのポイント
  • インク交換してもエラーが発生するというトラブルについて相談します。
  • お使いのプリンターでインク交換を行った際にエラーが発生し、解決方法を知りたいです。
  • インク交換後にプリンターが正常に動作せず、エラーメッセージが表示される場合の対処法について教えてください。
回答を見る

専門家に質問してみよう