• ベストアンサー

『DGET関数』へオートフィルを適用させる手順

「『DGET関数』では、1つの組み合わせの絞り込み検索条件に対しまして、1つの結果だけが返されている」、という事情は分かっていますが、 其の"Criteria"の欄へ複数の種類の検索条件を盛り込みまして、 それぞれの組み合わせに個別の結果を返させる為に、 オートフィルを適用させ得るのか否かを存じていません。 従いまして、私の現状では、複数の"Criteria"の欄を別の箇所へ準備して、 個別に『DGET関数』を設定しませんと、各項目に適した解答を貰えませんので、 作業がややこしく、画面を見難くなっていますから、 もし其の状況からの脱却の為の手段が存在しているのでしたら、 其の具体的な手順を紹介して頂けませんでしょうか?

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.2

どうも心もとないですが >1つの組み合わせの絞り込み検索条件に対しまして、1つの結果だけが返されている 再掲: >結果が「1つに絞られる」場合に限り、DGET関数を利用する事が出来ます。 複数の行が合致した場合は最初に回答した通りにエラーとなり、決して「1つの結果だけ返ってくる」のではないことを理解してますね? さて。 再掲: >あなたが今抱えている具体的な「元データ」と「クライテリア」、それらから「結果してこうなってほしい姿」を目に見える姿で用意 のようにお話ししたのをすっかり無視して、全く具体的な状況説明をなさらずご相談を投稿なさいました。ご質問の直接の回答としては >其の状況からの脱却の為の手段が存在しているのでしたら、 >其の具体的な手順を紹介して頂けませんでしょうか? 具体的な手段としては、数式を使用してクライテリアを作成する事で、出来ます。 としかお答えしません。 もしも具体的な「こういう数式」を書いてもらわないと自分じゃ全く手も足も出ませんという状況ならば、次回は例えば次のようにして、目に見えるアナタのエクセルの姿を人にわかるようにキチンと説明する努力を示してください。 作成例: A列にA1に項目ラベル、A2以下にa,b,cなどの記述 B列にB1に項目ラベル、B2以下に数値などの記述が並んでいる クライテリアを設定し、A列がbであるB列の値、cであるB列の値などを、DGET関数のオートフィルで取り出せるようにしたい。 添付図: D列にクライテリアを作成し、D2、D3、D4に合致するB列のデータをDGET関数で参照させる。 手順: E2に =項目=INDIRECT("RC[-1]",FALSE) と記入し、以下コピー。 F2に =DGET(A:B,2,E1:E2) と記入し、以下コピー。

codotjtp
質問者

補足

具体例を盛り込めなかった内容ですのに、御教授を下さいまして、非常に有り難う御座います。 別のページ( http://okwave.jp/qa/q7585796.html )へ、 質問を続けさせて戴きました。

その他の回答 (1)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

以前にも同じようなご質問をされていますね。 その時の私の答えはDGET関数を使うことなく対応できる方法になります。その時の答えは次のようになっています。 基本的には次のような例題を理解することで関数による対応が可能でしょう。 シート1には例えばA1セルに氏名、B1セルに性別、C1セルに年齢、D1セルに県名などの項目名が有り、その下方に各データが入力されているとします。 そこでオートフィルタとなる検索の条件を入力する表をG1セルからJ2セルに作るとします。 G1セルには性別、H1セルには年齢(以上)、I1セルには年齢(以下)、J1セルには県名の文字をそれぞれ入力します。 そこでそれぞれの項目の2行目には検索したいデータを入力します。年齢の場合に30代の年齢を検索したい場合にはH2セルに30、I2セルに39と入力します。勿論検索に含めない場合には空白のセルとします。 そこでこれらのフィルタの条件を考慮した行をシート2に作成するとしてそのための作業列をシート1のE列に作成することにします。E2セルには次の式を入力して下方にドラッグコピーします。 =IF(IF(G$2="",0,IF(B2=G$2,1,0))+IF(H$2="",0,IF(AND(C2>=H$2,C2<=I$2),1,0))+IF(J$2="",0,IF(D2=J$2,1,0))=COUNTA(G$2)+COUNT(H$2)+COUNTA(J$2),MAX(E$1:E1)+1,"") シート2では結果を表示するための表でA1セルには次の式を入力してD1セルまでドラッグコピーしたのちに下方にもドラッグコピーします。 =IF(ROW(A1)>MAX(Sheet1!$E:$E)+1,"",IF(INDEX(Sheet1!$A:$D,IF(ROW(A1)=1,1,MATCH(ROW(A1)-1,Sheet1!$E:$E,0)),COLUMN(A1))="","",INDEX(Sheet1!$A:$D,IF(ROW(A1)=1,1,MATCH(ROW(A1)-1,Sheet1!$E:$E,0)),COLUMN(A1)))) これで年齢などの幅を設けた条件の設定の仕方などを参考にすることですべてのケースについて対応ができるものと考えます。 その際のご質問で作業列に関することですが、条件が満たしている列では1がそうでなければ0として各列でのそれらの値の合計をもとめ、すべての条件がその行の各列で満たされていればそれらの行について上から番号を付けています。 ご参考になればよいのですが。

codotjtp
質問者

補足

入門者向けの御配慮を下さいまして、誠に有り難う御座います。 下方向へとオートフィルでドラッグする場合には、たとえ其処へ"Column"関数を盛り込みましても、 参照先Cell番地の値が全く変わらないのだろう、と私は勝手に認識して参りましたので、 最後の関数の末尾の"Column"関数は定数にも置き換えられ得るのではないか、と愚かな私は考えてしまったのですが、 其の認識は私の根本的な誤解なのでしょうか? 酷く拙いレベルの補足質問で畏れ入りますが、 御教授を賜れますと助かります。

関連するQ&A

  • 方法が有れば、それを知りたいです。

    VLOOKUP関数へはオートフィルを適用させられますが、 複数列の検索条件による絞り込みを致せませんので、 LibreOfficeでDGET関数を利用したい、と私は考えております。 でも、疑問が御座います。 もしCriteriaが複数列で構成されているのでしたら、 DGET関数へはオートフィルを適用させられないのでしょうか。

  • 『DGET関数』についての質問です。

    『DGET関数』の"Criteria"のフィールド名へも、 検索範囲の全フィールド名を盛り込まねばならないのでしょうか? エラーが繰り返されているものですから、 御教授を賜れませんでしょうか?

  • excelの dget関数で レコードが複数

    excel2000を利用しています。 dget関数を用いて計算し、条件を満たすレコードが複数存在する場合は、エラー値 「#NUM!」 が返されますが、 その複数のレコードを表示させる方法はないでしょうか?

  • エクセル「DGET」関数の範囲について

    お世話になります。 DGET関数に関して質問です。 =DGET (データベースの範囲,条件を満たすフィールド,検索条件) に対して、「データベースの範囲」に対してタイトル(AA~CC)をつけていますが、 データベース上に同じ名前があると、2件目以降のAA~CCの項目にあるデータは 条件で見つけてくれないようでした。(以下の条件だとヒットしない) ●条件 AA       BB    CC 2012/2/10 山田 \24,000 ●データベースの範囲 AA       BB    CC    AA       BB CC 2012/2/10 田中 \12,000                   2012/2/10 山田 \24,000 データベースをすべて縦書きにして同じ項目をなくせばもちろんヒットするのですが、 現金と通帳のデータ両方をデータベースの範囲として見て欲しいので、レイアウトを 横並びにしたいのですが、なにか方法はありますでしょうか? 別の関数でも構いませんのでよろしくお願いします。 やりたいのは、横並びにした両方のデータを参照して、 一致したものは入金が終わっているとしたのですが、その関係で同じタイトルにしてます。

  • オートフィルタの代わりの関数による表計算

    "VLOOKUP"とか"HLOOKUP"とかの(表計算用)関数では、単一の検索値だけによって絞り込みが為されていくのだろう、 と私は勝手に認識して参りましたので、伺います。 『複数の条件で各データを絞り込みまして其の同一行に並んだデータを取り出す』という設定の為には、どういう関数の利用が必要なのでしょうか? たとえVBEによる記述が必要になっていましても、 構いませんから、御教授を宜しく御願い申し上げます。

  • ACCESS Dlookup関数

    Dlookup関数を使えば、クエリの抽出条件に他のテーブルや、クエリの結果を使うことがわかりました。 しかし抽出条件が抽出するデータの種類(品種)により複数有る場合、その種類ごとにDlookup関数で指定しなければなりません。 そこで関数のDLookup(expr, domain [, criteria] ) 引数 criteriaを工夫する事で複数の条件をひとつの関数で出来ないものでしょうか。 例 品種tbl 品種 | 範囲(以下) A | 100 B | 150 <抽出条件欄> Dlookup("範囲","品種tbl",[品種tbl]="A") Dlookup("範囲","品種tbl",[品種tbl]="B") 個の二つをひとつで出来ないものでしょうか。 またよく以下のような表記を見ますが、「& Me.車番入力欄 &」はどう解釈したらいいのでしょうか。 DLookup("[全長]","車種","[車番] = '" & Me.車番入力欄 & "'")

  • 離れた列のオートフィル、オートSUMのコピー

    2点質問いたします。 exel2007を使用し、行数の多い縦長の表を多数作っています。 A列C列E列など離れた列でそれぞれ一定の計算を行うときに今までは個別にオートフィル機能を使って下方まで計算していました。 隣り合う列ならばまとめてオートフィルをかけていますが、ctrlボタンでの複数セル選択ではオートフィルが出来ないようで困っています。 さて、このように列が離れている場合に、それぞれの列を一括でオートフィルにかけることは可能でしょうか? 表が縦長な故、ポインタの上下を繰り返すのが手間になっています。 もう1点ですが それぞれの列の合計欄の行を設けていますがこれまでは1列をオートSUM計算し、オートフィル機能で全ての列の合計を出し、合計しない列はそのつど削除していました。 この合計欄の行が表の中で複数あるため、 合計欄自体を別で先に作成し、作成した合計欄を挿入する形にしたいと考えております。 合計する行数がまちまちのために合計する行をそのつど範囲指定できないのでオートSUM機能を使いたいです。 つきましてはセルの数式にオートSUMを予め入れる方法はありますでしょうか? 分りずらい長文で申し訳りませんがよろしくお願いいたします。

  • データベース関数のCriteria(クライテリア)について

    いつもお世話になってます。 データベース関数のCriteria(クライテリア)で条件を数式で指定する場合なんですが。。 (1)なぜ検索範囲の先頭レコードでないとダメなのか? (2)数式がand・or関数しか使えないのか? ちょっと疑問に思ったので・・ 詳しい方お願いします!

  • エクセル関数でデーターベースから値を抽出するには・・・

     エクセル関数のDGETはデータベースから1つの値を抽出しますよね。でも条件を満たす値が複数ある時には「#NUM」が返されて抽出出来ない。条件を満たす値を複数返すような関数は無いのでしょうか ?   住所、氏名、年齢、職業、のデータの中で「"東京*"」にすむ人の名前を抽出しなさい。「"東京*"」に住んでいる人がいない場合は空白セルを返すようにする、と言った内容です。   どなたか教えて下さい。

  • EXCELでオートフィルタのような条件検索を関数を使って作りたい!

    いつもお世話になっております。 タイトルのごとく、EXCELでオートフィルタのような条件検索を関数を使って作りたいのですが、 たとえば、フォームのコンボボックスを複数設置し、その条件にあう答えを、特定のセルに表示させたいと思っています。 コンボボックスは20個ほど(すべての条件が揃わなくても結果がでるようにしたいと思っています)、その答えは100個ほどあります。 かなり手間になるかもしれませんが、どなたかご教示願います!

専門家に質問してみよう