Access VBA質問箱 IV

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

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


1915 / 2272 ツリー ←次へ | 前へ→

【4636】抽出条件 初心者です。 05/3/17(木) 23:49 質問[未読]
【4637】Re:抽出条件 Gin_II 05/3/18(金) 1:07 回答[未読]
【4638】Re:抽出条件 初心者です。 05/3/18(金) 1:41 質問[未読]
【4639】Re:抽出条件 Gin_II 05/3/18(金) 2:58 回答[未読]
【4640】Re:抽出条件 [名前なし] 05/3/18(金) 8:55 質問[未読]
【4641】Re:抽出条件 Gin_II 05/3/18(金) 9:22 回答[未読]
【4656】Re:抽出条件 [名前なし] 05/3/18(金) 20:42 お礼[未読]

【4636】抽出条件
質問  初心者です。  - 05/3/17(木) 23:49 -

引用なし
パスワード
   はじめまして、わからないことがあるので教えて下さい。
「テーブルA」から「テーブルB」のテーブルを作りたいのですが、「テーブルB」のフラグの設定の条件で悩んでいます。
フラグの設定の条件は、
    月が"3"の時は、今月の数値が"50"以上だった場合
    もしくは今月,1ヶ月前,2ヶ月前,3ヶ月前,4ヶ月前,5ヶ月前の値を参照して、"50"以上が2回以上あれば"1"を設定、そうでなければ"0"を設定

    月が"2"の時は、今月の数値が"50"以上だった場合
    もしくは今月,1ヶ月前,2ヶ月前,3ヶ月前,4ヶ月前の値を参照して、"50"以上が2回以上あれば"1"を設定、そうでなければ"0"を設定

    月が"1"の時は、今月の数値が"50"以上だった場合
    もしくは今月,1ヶ月前,2ヶ月前,3ヶ月前の値を参照して、"50"以上が2回以上あれば"1"を設定、そうでなければ"0"を設定

    月が"12"の時は、今月の数値が"50"以上だった場合
    もしくは今月,1ヶ月前,2ヶ月前の値を参照して、"50"以上が2回以上あれば"1"を設定、そうでなければ"0"を設定

    月が"11"の時は、今月の数値が"50"以上だった場合
    もしくは今月,1ヶ月前の値を参照して、"50"以上が2回以上あれば"1"を設定、そうでなければ"0"を設定

    月が"10"の時は、今月の数値が"50"以上だった場合は"1"を設定、そうでなければ"0"を設定

    ※「テーブルA」の項目の「月」の値は全レコード一緒
    処理を行う月が3月なら"3"、4月なら"4"

以上です。
よろしくお願いします。


テーブルA                                        
月 社員ID 氏名 今月 1ヶ月前 2ヶ月前 3ヶ月前 4ヶ月前 5ヶ月前    
3   1  前野  0    35    35    40    10    20    
3   2  井沢  60    5    15    40    45    35    
3   3  田中  20    15    40    55    15    90    
3   4  田辺  30    35    20    15    80    35    
3   5  竹田  40    20    50    40    70    65    
3   6  木下  50    55    65    70    60    55    
3   7  岩下  10    95    60    60    50    60    
3   8  神谷  30    65    45    35    10    40    
3   9  柴崎  60    0    20    60    40    65    
3   10  増田  30    40    60    20    70    40    
                                        
    ↓            
                                        
テーブルB
ID    氏名    フラグ                        
1    前野    0
2    井沢    1
3    田中    1
4    田辺    0
5    竹田    1
6    木下    1                        
7    岩下    1
8    神谷    0                        
9    柴崎    1
10   増田    1

【4637】Re:抽出条件
回答  Gin_II  - 05/3/18(金) 1:07 -

引用なし
パスワード
   >「テーブルA」から「テーブルB」のテーブルを作りたいのですが、「テーブルB」の
> フラグの設定の条件で悩んでいます。

IIF([月] In(1,2,3,12,11) AND [今月]>=50,
  1,
  IIF(IIF([1ヶ月前]>=50,1,0)+IIF([2ヶ月前]>=50,1,0)+IIF([3ヶ月前]>=50,1,0)+
    IIF([4ヶ月前]>=50,1,0)+IIF([5ヶ月前]>=50,1,0)>=2,
    1,
    0
    )
  )

で、どうでしょうか?
#見検証です ^_^;
 実際には、1行で記述してください。

【4638】Re:抽出条件
質問  初心者です。  - 05/3/18(金) 1:41 -

引用なし
パスワード
   どうもありがとうございます。
ただ疑問な点があるのですが、
下記の場合だと、月が"3"の時は良いと思うのですが、
月がその他の場合でも5ヶ月前まで計算してしまうのではないでしょうか?
例えば、月が"11"の時は、

IIF([月]11) AND [今月]>=50,
  1,
  IIF(IIF([1ヶ月前]>=50,1,0)))

みたいな感じにしなくてよいのでしょうか?
もし間違ったことを言っていたらすみません。


▼Gin_II さん:
>>「テーブルA」から「テーブルB」のテーブルを作りたいのですが、「テーブルB」の
>> フラグの設定の条件で悩んでいます。
>
>IIF([月] In(1,2,3,12,11) AND [今月]>=50,
>  1,
>  IIF(IIF([1ヶ月前]>=50,1,0)+IIF([2ヶ月前]>=50,1,0)+IIF([3ヶ月前]>=50,1,0)+
>    IIF([4ヶ月前]>=50,1,0)+IIF([5ヶ月前]>=50,1,0)>=2,
>    1,
>    0
>    )
>  )
>
>で、どうでしょうか?
>#見検証です ^_^;
> 実際には、1行で記述してください。

【4639】Re:抽出条件
回答  Gin_II  - 05/3/18(金) 2:58 -

引用なし
パスワード
   うーんと。。よく意味が理解できないのですが。。。^_^;
とりあえず、この部分の解説をしておきます。

> IIF([月] In(1,2,3,12,11) AND [今月]>=50,

これは、
IIF([月] = 1 Or [月] = 2 Or [月] = 3 Or [月] = 12 Or [月] = 11) AND [今月]>=50,
という意味です。

なので、月が 1,2,3,11,12 のどれかで、今月 が 50以上なら、必ず 1 になるはずです。


あと、
>   IIF(IIF([1ヶ月前]>=50,1,0)+IIF([2ヶ月前]>=50,1,0)+IIF([3ヶ月前]>=50,1,0)+
>     IIF([4ヶ月前]>=50,1,0)+IIF([5ヶ月前]>=50,1,0)>=2,
これじゃ、やっぱりダメですね (^^ゞ

[今月] も含めてやる必要があります。

  IIF(IIF([1ヶ月前]>=50,1,0)+IIF([2ヶ月前]>=50,1,0)+IIF([3ヶ月前]>=50,1,0)+
    IIF([4ヶ月前]>=50,1,0)+IIF([5ヶ月前]>=50,1,0)+IIF([今月]>50,1,0)>=2,

【4640】Re:抽出条件
質問  [名前なし]  - 05/3/18(金) 8:55 -

引用なし
パスワード
   わかりずらくてすみません。

月=3
IIF(IIF([1ヶ月前]>=50,1,0)+IIF([2ヶ月前]>=50,1,0)+IIF([3ヶ月前]>=50,1,0)+
    IIF([4ヶ月前]>=50,1,0)+IIF([5ヶ月前]>=50,1,0)+IIF([今月]>50,1,0)>=2,
月=2
IIF(IIF([1ヶ月前]>=50,1,0)+IIF([2ヶ月前]>=50,1,0)+IIF([3ヶ月前]>=50,1,0)+
    IIF([4ヶ月前]>=50,1,0)+IIF([今月]>50,1,0)>=2,    
月=1
IIF(IIF([1ヶ月前]>=50,1,0)+IIF([2ヶ月前]>=50,1,0)+IIF([3ヶ月前]>=50,1,0)+
    IIF([今月]>50,1,0)>=2,
月=12
IIF(IIF([1ヶ月前]>=50,1,0)+IIF([2ヶ月前]>=50,1,0)+IIF([今月]>50,1,0)>=2,
  
月=11
IIF(IIF([1ヶ月前]>=50,1,0)+IIF([今月]>50,1,0)>=2,

みないな感じがいいのですが・・・
度々すみません。


▼Gin_II さん:
>うーんと。。よく意味が理解できないのですが。。。^_^;
>とりあえず、この部分の解説をしておきます。
>
>> IIF([月] In(1,2,3,12,11) AND [今月]>=50,
>
>これは、
>IIF([月] = 1 Or [月] = 2 Or [月] = 3 Or [月] = 12 Or [月] = 11) AND [今月]>=50,
>という意味です。
>
>なので、月が 1,2,3,11,12 のどれかで、今月 が 50以上なら、必ず 1 になるはずです。
>
>
>あと、
>>   IIF(IIF([1ヶ月前]>=50,1,0)+IIF([2ヶ月前]>=50,1,0)+IIF([3ヶ月前]>=50,1,0)+
>>     IIF([4ヶ月前]>=50,1,0)+IIF([5ヶ月前]>=50,1,0)>=2,
>これじゃ、やっぱりダメですね (^^ゞ
>
>[今月] も含めてやる必要があります。
>
>  IIF(IIF([1ヶ月前]>=50,1,0)+IIF([2ヶ月前]>=50,1,0)+IIF([3ヶ月前]>=50,1,0)+
>    IIF([4ヶ月前]>=50,1,0)+IIF([5ヶ月前]>=50,1,0)+IIF([今月]>50,1,0)>=2,

【4641】Re:抽出条件
回答  Gin_II  - 05/3/18(金) 9:22 -

引用なし
パスワード
   3月の場合だけで説明します。

> 月=3
> IIF(IIF([1ヶ月前]>=50,1,0)+IIF([2ヶ月前]>=50,1,0)+IIF([3ヶ月前]>=50,1,0)+
>     IIF([4ヶ月前]>=50,1,0)+IIF([5ヶ月前]>=50,1,0)+IIF([今月]>50,1,0)>=2,

これはどういった意味ですか?

> 月が"3"の時は、今月の数値が"50"以上だった場合
> もしくは今月,1ヶ月前,2ヶ月前,3ヶ月前,4ヶ月前,5ヶ月前の値を参照して、
> "50"以上が2回以上あれば"1"を設定、そうでなければ"0"を設定

この日本語での説明と変わっていません??

[月]が3であれば、[今月] の数値だけを確認すればいいですよね?
3月じゃなかった場合、[今月]〜[5ヶ月]までの中で、50以上が2つあれば
いいってことですよね?


とりあえず、試してみて、結果が違っているのなら、どう違うのかを
説明してください。

【4656】Re:抽出条件
お礼  [名前なし]  - 05/3/18(金) 20:42 -

引用なし
パスワード
   返事遅くなりました。
なんとかできました!
どうもありがとうございました。

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