Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


4812 / 13644 ツリー ←次へ | 前へ→

【54294】3つの内1つ? 長崎 繭子 08/3/4(火) 0:44 質問[未読]
【54295】Re:3つの内1つ? ひげくま 08/3/4(火) 8:50 発言[未読]
【54296】Re:3つの内1つ? acch 08/3/4(火) 9:09 回答[未読]
【54299】Re:3つの内1つ? 長崎 繭子 08/3/4(火) 15:40 質問[未読]
【54300】Re:3つの内1つ? Jaka 08/3/4(火) 16:02 発言[未読]
【54301】Re:3つの内1つ? neptune 08/3/4(火) 16:36 発言[未読]
【54302】Re:3つの内1つ? VBWASURETA 08/3/4(火) 17:30 発言[未読]

【54294】3つの内1つ?
質問  長崎 繭子  - 08/3/4(火) 0:44 -

引用なし
パスワード
   A・・・E4−D4≧2 と 4≦G4-F4≦6 が共に当てはまる
B・・・F4−E4≧2 と 4≦G4-F4≦6 が共に当てはまる
C・・・EF−D4≧2 と 4≦G4-F4≦6 が共に当てはまる

という3つの内、1つでも当てはまる場合
J4に1という数字を記入させたい場合どのように行なえばいいのでしょうか?

【54295】Re:3つの内1つ?
発言  ひげくま  - 08/3/4(火) 8:50 -

引用なし
パスワード
   VBAではなく、Excel関数だけで実現できますよ。

論理積は、AND(条件1,条件2,条件3,・・・)
論理和は、OR(条件1,条件2,条件3,・・・)
これとIF関数を組み合わせれば、やりたいことは実現できます。

ちなみに、条件Aの場合は、
E4-D4>=2、G4-F4>=4、G4-F4<=6
という3つの条件に分けて考える必要があります。

【54296】Re:3つの内1つ?
回答  acch  - 08/3/4(火) 9:09 -

引用なし
パスワード
   ▼長崎 繭子 さん:
>A・・・E4−D4≧2 と 4≦G4-F4≦6 が共に当てはまる
>B・・・F4−E4≧2 と 4≦G4-F4≦6 が共に当てはまる
>C・・・EF−D4≧2 と 4≦G4-F4≦6 が共に当てはまる
>
>という3つの内、1つでも当てはまる場合
>J4に1という数字を記入させたい場合どのように行なえばいいのでしょうか?
ひげくまさんのおっしゃるとおりです。
例えば、A1セルにAの条件式、B1セルにBの条件式を、C1セルにCの条件式を入れ、条件式に当てはまる場合に1をそうでない場合に0を入れるようにします。A1セル、B1セル、C1セルの合計が0より大きければあなたの言われる条件に当てはまっていることになります。そこで、この条件式をJ4セルに入れておけばよいのです。
  Aの条件式(A1セル)・・=IF(AND(E4-D4>=2),(G4-F4>=4)(G4-F4<=6)),1,0)
  Bの条件式(B1セル)・・上記を変える
  Cの条件式(C1セル)・・上記を変える
J4セルに・・=IF(A1+A2+A3>0,1,0)
 以上です。いかがですか。

【54299】Re:3つの内1つ?
質問  長崎 繭子  - 08/3/4(火) 15:40 -

引用なし
パスワード
   おふた方様

ご返信ありがとうございます
エクセル関数では同様にして行なっているのですが、
これをVBAで行ないたいと思いこちらの
VBA質問箱に質問させていただきました
VBA質問箱でまさか関数での回答が帰ってくるとは思わずに・・・

VBAでの方法での質問としてご回答よろしくお願いします

【54300】Re:3つの内1つ?
発言  Jaka  - 08/3/4(火) 16:02 -

引用なし
パスワード
   If Range("G4").Value - Range("F4").Value >= 4 And _
  Range("G4").Value - Range("F4").Value <= 6 Then
  If Range("E4").Value - Range("D4").Value >= 2 Or _
   Range("F4").Value - Range("E4").Value >= 2 Or _
   Range("EF????").Value - Range("D4").Value >= 2 Then
   Range("J4").Value = 1
  End If
End If

何の工夫も無い.....。なんか効率悪そう。

【54301】Re:3つの内1つ?
発言  neptune  - 08/3/4(火) 16:36 -

引用なし
パスワード
   ▼長崎 繭子 さん:
みなさん、こんにちは。

回答ではないのですが、お邪魔します。
ひげくまさんのようなロジックがわかっているなら
>エクセル関数では同様にして行なっているのですが、
>これをVBAで行ないたいと思いこちらの
なぜ、現状ではどうしているかの説明が無いのでしょう?

>VBAでの方法での質問としてご回答よろしくお願いします
何が判らないのかを尋ねるのが質問で、全く判らない、手が付いていない
状態では質問とは言いません。

技術系(VBAもその端っこには位置していると思う)の質問掲示板では
丸投げといって嫌われますから、先ず現状説明と、不明点を明らかに
する事をお勧めします。

【54302】Re:3つの内1つ?
発言  VBWASURETA  - 08/3/4(火) 17:30 -

引用なし
パスワード
   こんにちは。

質問された内容にVBAの必要性が伝わらないと基本関数で実現できるなら
手っ取り早く出来る方法として回答されても仕方ないかも知れませんね。

因みにVBAで書いても条件式は基本同じです。

4812 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free