VBAの記述で、フォームを開くときにレコードの抽出条件を指定できますが、その際,指定したフィールドの値がNullのもの、逆にNullLでないものという条件の与え方はできないのでしょうか?
値がある文字列と等しいとかある数値や日付以上といった条件式はヘルプでみるのですが、NullかNullでないといった判断をさせる条件式が参考書等でもみあたらないのですが。
 それとも何か違うやりかたがあるのでしょうか?ご存知のかたは教えてください。

A 回答 (1件)

ACCESSのフォームフィルタの件ですか?


であれば
[フィールド名] Is Null ・・・Nullのデータだけ
[フィールド名] Is Not Null ・・・Null以外
を指定できませんか?
私の環境(ACCESS2000)ではできました。
    • good
    • 0
この回答へのお礼

sghさん、ありがとうございました。解決しました。
最初 ダブルクォーテーションで囲まずにやったら
「指定した式で参照されている'|'フィールドが見つかりません。」というエラーメッセージが返ってきたので焦りましたが、ちゃんと"[フィールド名] Is Null "と直したらできました。
 すごくシンプルな記述なのに、なんで試して見なかったのか自分にあきれています。
助かりました。本当にありがとうございました。

お礼日時:2002/01/31 00:15

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qaccess2003 クロス集計クエリに抽出条件を設定する

QNo.3495024にて、「取引先ごとの月次売上(部品別および合計)」をフォーム形式で表示する方法を質問した者です。
1)クロス集計クエリの抽出条件としてこのコンボを設定
2)フォームに置いたボタンでクロス集計クエリまたはそれをソースにした別フォームを開く
という方法を教えていただきました。

昨夜から自分なりに調べましたが、1)のクロス集計クエリに抽出条件を設定する方法がわかりません。 昨日の今日で再質問も気が引けますが、時間がないので質問させてください! ご存知の方、よろしくお願いいたします。

Aベストアンサー

>クロス集計クエリに抽出条件を設定する方法がわかりません。
クロス集計クエリでもデザインビューは同じですよ
異なるのはクロス集計クエリではパラメータのデータ型指定を省略できないという点だけです

[クエリ][パラメータ]でパラメータ名とデータ型を指定してください

Qエクセルの関数 指定した値の間で、指定した値以上の値を示す、最初の値を求めたい。

こんにちは。

一列目で指定した値の間で、二列目で指定した値以上の値を示す、一列目の最初の値を求める関数を教えてください。

添付した図で、具体的に説明します。
A列に値(時間)、B列に値があります。
この配列の中から、
F4の値(時間)と同じ値(時間)を示すA列の行から、F5の値(時間)と同じ値(時間)を示すA列の行までの中で、
F3の値以上の値(F3と同じ値を含めてF3の値よりも大きい値)がB列にある、A列の値(時間)の内、
A列で上から最初の値(時間)
を求める関数が知りたいです。

どうぞよろしくお願いします。

Aベストアンサー

No.1・2です。

補足を読ませていただいて・・・
大きな勘違いをしていました。

今までの方法はF2セルの値以上の範囲内の最小値と完全一致するA列データが返るはずです。
(今回の画像の配置だと「5」以上の最小値=「5」と一致する「10」が返ります)
No.1・2は無視してください。

本来のご希望はA列範囲内でF2セル以上の値が最初に出現する行のA列データを表示したい!
というコトですよね?

方法は前回同様ですが、数式が長くなりますので、
大前提として、お示しの画像のようにA2セル以降に1からの数値が抜けることなく整数でA列に入っているとします。

F5セル(今回も配列数式です)に
=INDEX(INDIRECT("A"&F3+1&":A"&F4+1),MIN(IF(INDIRECT("B"&F3+1&":B"&F4+1)>=F2,ROW(INDIRECT("A"&F3+1&":A"&F4+1))-F3)))
という数式を入れてみてください。

※ A列データが連続した整数でない(途中の数値が抜けている)場合は
今まで通りMATCH関数で行番号を取得する必要がありますので、
数式はもっと長くなってしまいます。

今度はどうでしょうか?m(_ _)m

No.1・2です。

補足を読ませていただいて・・・
大きな勘違いをしていました。

今までの方法はF2セルの値以上の範囲内の最小値と完全一致するA列データが返るはずです。
(今回の画像の配置だと「5」以上の最小値=「5」と一致する「10」が返ります)
No.1・2は無視してください。

本来のご希望はA列範囲内でF2セル以上の値が最初に出現する行のA列データを表示したい!
というコトですよね?

方法は前回同様ですが、数式が長くなりますので、
大前提として、お示しの画像のようにA2セル以降に1...続きを読む

Q住所録から2つ以上の条件で抽出する関数について

Windows Excel 2003で住所録から2つ以上の条件で抽出するにはどんな関数を使えばいいですか?

例えば住所録で『TELとFAXが異なっている番号の別々のセル』と『TELとFAXが同じ番号のセル(TELとFAXが同じなのでFAXのセルは空欄)』尚且つ『Eメールのある会社名』を抽出する関数はありますか?

Aベストアンサー

どういうレベルで要っているのかわかりませんが
>関数はありますか?
単独関数ではありません。2つ以上の関数を組み合わせたり、作業列を使ったりすれば出来るといえます。
単独の関数はあるとも無いとも言えるが、該当分行がつめたカタチでは単独の関数ではありません。
該当が飛び飛びで出てよいなら、IF関数で簡単に出来ます。これわかりますね。
A1 TELNO,B1 FAXNOとして
C1に =IF(A1<>B1,A1,"") D1に=IF(A1<>B1,B1,"")  でよいわけです。
 ここの質問に出るレベルは、ほとんど関数の組み合わせが必要です。
ーー
Googleで「imogasi方式」で照会してください。条件をかけて、抜き出す課題が相当数出てきます。
回答は
A.関数の組み合わせー作業列なし
B.関数の組み合わせー作業列を使うー>Imogasi方式など
などの回答が見られます。
もちろんフィルタやフィルタオプションの設定のお勧めの回答もあるでしょう。
私見では、A.の式が理解できたら、関数は9割5分は卒業です。
関数に拘らず、データ^フィルターフィルタオプションの設定
をお勧めします。(データーフィルタではないですよ)

どういうレベルで要っているのかわかりませんが
>関数はありますか?
単独関数ではありません。2つ以上の関数を組み合わせたり、作業列を使ったりすれば出来るといえます。
単独の関数はあるとも無いとも言えるが、該当分行がつめたカタチでは単独の関数ではありません。
該当が飛び飛びで出てよいなら、IF関数で簡単に出来ます。これわかりますね。
A1 TELNO,B1 FAXNOとして
C1に =IF(A1<>B1,A1,"") D1に=IF(A1<>B1,B1,"")  でよいわけです。
 ここの質問に出るレベルは、ほとんど関数の組み合わ...続きを読む

Qエクセルの関数です。一列目で指定した値の間で、二列目で指定した値を示す、一列目の最初の値を求める。

エクセルの関数です。
一列目で指定した値の間で、二列目で指定した値を示す、一列目の最初の値を求める関数を教えてください。
添付した図で、具体的に説明します。
A列に値(時間)、B列に値があります。
この配列の中から、
F4の値(時間)と同じ値(時間)を示すA列の行から、F5の値(時間)と同じ値(時間)を示すA列の行までの中で、
F3の値と同じ値がB列にある、A列の値(時間)の内、
A列で上から最初の値(時間)
です。

min、offset、index、match を組み合わせてみるのですが、うまくいきません。
どうぞよろしくお願いします。

Aベストアンサー

こんにちは!

画像の配置でF6セルに「7」という結果が返れば良い訳ですかね?

少し長くなりますが、
=INDEX(INDIRECT("A"&MATCH(F4,A:A,0)&":A"&MATCH(F5,A:A,0)),MATCH(F3,INDIRECT("B"&MATCH(F4,A:A,0)&":B"&MATCH(F5,A:A,0)),0))
という数式を入れてみてください。

※ F3セルは質問に載っていないので余計なお世話かもしれませんが
同じようなやり方で
=MAX(INDIRECT("B"&MATCH(F1,A:A,0)&":B"&MATCH(F2,A:A,0)))
という数式になると思います。

※ エラー処理はしていません。m(_ _)m

Q別シートに複数条件を選択すると抽出され合計値がでてくるような関数はありますか

毎日、以下のような作業内容が手元にくるのですが今までは手でノートに振り分け管理していたのですが、エクセルの関数で別シートに複数条件を選択すると抽出され合計値がでてくるような関数はありますか。
よろしくお願いします。

↓毎日くる作業内容です。
ex)これを日ごとにシートに入力して、別シートに項目の班替え選択→内訳選択→班長を選択→形を選択→該当する全日付から時間が抽出され合計時間がでてくる

Aベストアンサー

条件をかけるとして、条件該当の明細を必要としているのか、合計だけでよいのか、質問ではっきりしない。添付画像通常は小さくなり見にくい。
質問文に簡略化した1例(10行以内でよい)を挙げて質問すべきだ。要点を掴む能力と思考力が鍛えられる。
>ex)これを日ごとにシートに入力して、別シートに項目の班替え選択→内訳選択→班長を選択→形を選択→該当する全日付から時間が抽出され合計時間がでてくる、の部分。
4条件で加算の例か。
====
条件該当分の明細を出すなら
データーフィルタオプションの設定で出来るはず。
関数関数と言うが、エクセルは第1的には、操作の体系のソフトですよ。他シートにデータを出すのは、他シート側で操作を始めてください。
ーー
関数なら、自称「imogasi方式」で出来ると思います。
Googleで「imogasi方式」で照会すれば数百の例が出ると思います。
現データシート(Sheet1)条件該当分の行にだけ、上の行から順に連番をフリ(式の複写を使う)、他シート(Sheet2)で
Sheet2の行1に-->Sheet1の連番1の行をINDEX関数で持ってくる。
Sheet2の行2に-->Sheet1の連番2の行をINDEX関数で持ってくる。
・・以下同じ。
これを式の複写で自動で行える。
=====
合計だけで良いのなら、多分、条件が多数のものに対する合計をほしい、になり、条件値の組み合わせを手作業でセルにセットするのか、操作関数で出すのかも質問に書いてない。合計を出すより、この条件データを揃える方が、いつも言っているが、難しい。
>複数条件を選択すると抽出され合計値がでてくるような関数
これが文字通り合計計数だけでよいなら、毎日ここに質問が出る
SUMPRODUCT、SUMIFSのどちらかをつかえだけ。質問にエクセルバー順が書いてないのは、エクセルの勉強経験不足。
2007で便利な関数が出来たのは有名な話。

条件をかけるとして、条件該当の明細を必要としているのか、合計だけでよいのか、質問ではっきりしない。添付画像通常は小さくなり見にくい。
質問文に簡略化した1例(10行以内でよい)を挙げて質問すべきだ。要点を掴む能力と思考力が鍛えられる。
>ex)これを日ごとにシートに入力して、別シートに項目の班替え選択→内訳選択→班長を選択→形を選択→該当する全日付から時間が抽出され合計時間がでてくる、の部分。
4条件で加算の例か。
====
条件該当分の明細を出すなら
データーフィルタオプション...続きを読む

Qエクセルのセルで式で計算された数値を式なしの数値だけにする方法は?

タイトルの通りですが、例えば、A1のセルに、計算式が入っていて、その計算式による数値が表示されているとします。
A1のセルの数値だけを、コピーして、別のファイルにコピーしたいのですが、A1のセルの計算式による数値だけを(計算式ごとコピーすることなく)コピーする方法はありませんか?
よろしくお願いします。

Aベストアンサー

 コピー(Ctrl+C)し、コピー先のセルで右クリック。
 「形式を選択して貼り付け」を選択。
 それから、「値」を選択して、[OK]です。

Qエクセルにおいて複数の条件から抽出することができる関数(式)を教えてください。

皆さんどうか教えてください

エクセルにおいて複数の条件から抽出することができる関数(式)を教えてください。

400  70円  ad   6個
700  60円  da 7個  
100  30円 ad   9個
400  50円  ad   10個


などの表で、400で70円でadなものの数を求める
条件で数値を求めるにはどうすればいいのでしょうか

また条件にあったデータに6個などの数値をかけて合計した数値を求めるにはどうすればいいのでしょうか

関数でできる方法をお願いします。


あと”なおかつ”などの条件を行う関数も教えてください

どうかヨロシクお願いします。

Aベストアンサー

#4さんの回答で解決しませんか?

1行に複数のデータが入力されており、全ての列を満たす行数をカウントしたいということですか?
カウント対象が1万行あるとすると
=SUM((A1:A10000=A列の条件)*(B1:B10000=B列の条件)*(C1:C10000=C列の条件)*(D1:D10000=D列の条件)・・・)
と必要なだけ入力し、ctrlキーとshiftキーを押しながら
enterキーで式を確定して下さい。そうすると式が
{=SUM((A1:A10000=A列の条件)*(B1:B10000=B列の条件)*(C1:C10000=C列の条件)*(D1:D10000=D列の条件)・・・)}
という風な括弧で括られます。(配列数式になる)

列の条件は、数値ならそのまま、文字列なら""で囲います。
セルを指定しても構いません。
(1行目と同じ場合のみカウントという事であれば=A$1等となる)

もし、例の場合でいう400でadの場合の金額*個数を求めたいなら
(例では70円*6個+50円*10個で920円)
=SUM((A1:A10000=400)*(C1:C10000="ad")*(B1:B10000)*(D1:D10000))
をctrlキーとshiftキーを押しながらenterキーです。

後は応用です。

#4さんの回答で解決しませんか?

1行に複数のデータが入力されており、全ての列を満たす行数をカウントしたいということですか?
カウント対象が1万行あるとすると
=SUM((A1:A10000=A列の条件)*(B1:B10000=B列の条件)*(C1:C10000=C列の条件)*(D1:D10000=D列の条件)・・・)
と必要なだけ入力し、ctrlキーとshiftキーを押しながら
enterキーで式を確定して下さい。そうすると式が
{=SUM((A1:A10000=A列の条件)*(B1:B10000=B列の条件)*(C1:C10000=C列の条件)*(D1:D10000=D列の条件)・・・)}
という風な括弧...続きを読む

Q複数の条件を指定して数値をかえす方法

複数の条件を指定して数値を返したいと思っています。


Sheet1                Sheet2
   A     B   C          A    B    C
1 りんご   東   2        1      りんご
2 ばなな   西    1        2 東  
3 りんご   南   1        3 西
4 みかん  北    3        4 南
                      5 北  
                                
Sheet2のB1に入っている「りんご」と「A列の地域」は固定となります。

Sheet2のB1に入っている「りんご」と「A列の地域」がSheet1で該当する場合
Sheet2のB2からB5までの各セルにSheet1の「数」が反映する計算式を入力
していきたいと考えています。

<結果>
Sheet2のB2~B5の返す数値は

   りんご
東  2
西  0
南  1
北  0

となるようにしたいです。

また画像を添付しましたのでイメージを載せておきます。
ご助言頂ければ助かります。
よろしくお願いします。

複数の条件を指定して数値を返したいと思っています。


Sheet1                Sheet2
   A     B   C          A    B    C
1 りんご   東   2        1      りんご
2 ばなな   西    1        2 東  
3 りんご   南   1        3 西
4 みかん  北    3        4 南
                      5 北  
                           ...続きを読む

Aベストアンサー

Sheet2のB2セルに以下の式を入力し下方向に(1行目に項目名がある場合は右方向も)オートフィルコピーしてください。

=SUMPRODUCT((Sheet1!$A$3:$A$100=B$1)*(Sheet1!$B$3:$B$100=$A2)*Sheet1!$C$3:$C$100)

2007以降のバージョンをご使用なら以下の数式の方が計算負荷が少ないのでお勧めです。

=SUMIFS(Sheet1!$C$3:$C$100,Sheet1!$A$3:$A$100,B$1,Sheet1!$B$3:$B$100,$A2)

Q条件に合うデータを抽出する関数

EXCELで、条件に合うデータを抽出し個数を表示させたいと思っています。
ただしSUMPRODUCTなどの『複数条件の設定』ではなく、『特定の文字列を除く』
という形で設定したいのですが、そのような関数はありますか?

Aベストアンサー

=COUNTIF(範囲,"<>*文字列*")
で出来ませんか?
=SUMPRODUCT(ISERROR(FIND("文字列",範囲))*1)
でも同じに出来ますけど...

Q◇セルに任意の数値を入力した数値を条件付き書式に反映させる◇

◇セルに任意の数値を入力した数値を条件付き書式に反映させる◇

セルに任意の数値を入力した数値を条件付き書式に反映させ、状況に応じて
色付ける幅をかえたいと思います。

その都度、指定を変更すればいいのでしょうが、広範囲なのとマクロを組んでいるので
セルに毎回違う数値を入れて条件付き書式を使用したいと思っております。

何かよい方法があれば教えて頂きたいです。
宜しくお願いします。

Aベストアンサー

例えばA2セルから下方に日付が、例えば9月1日から9月30日までが入力されているとします。
そこで例えば9月10日から9月20までのセル範囲に色を付けるためにB1セルに9/10,C1セルに9/20と入力するとします。
その後にA列で日付の入力されている範囲を選択します。上記の場合でしたらA2セルがアクティブな状態になっていることでしょう。
そこで「ホーム」タブの「条件付き書式」から「新しいルール」を選択します。
表示の画面で「数式を使用して書式設定するセルを決定」を選択し、下の窓には次の数式を入力します。

=AND(A2>=$B$1,A2>=$C$1)

その後に同じ画面の「書式」をクリックして「塗りつぶし」のタブから好みの色を設定してOKします。

これで完成ですが、入力した式ではB1セルやC1セルの日付を変更すればそれに応じて条件付き書式の条件が自動的に変わり色付く日付の範囲も変わります。参考になりましたら幸いです。


人気Q&Aランキング

おすすめ情報