• 締切済み

エクセル「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 データベースをすべて縦書きにして同じ項目をなくせばもちろんヒットするのですが、 現金と通帳のデータ両方をデータベースの範囲として見て欲しいので、レイアウトを 横並びにしたいのですが、なにか方法はありますでしょうか? 別の関数でも構いませんのでよろしくお願いします。 やりたいのは、横並びにした両方のデータを参照して、 一致したものは入金が終わっているとしたのですが、その関係で同じタイトルにしてます。

みんなの回答

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

DGET関数は,該当するデータが無いと#VALUEに,また複数の行がヒットすると#NUMになるのは理解していますね? 方法1) =IF(ISERROR(DGET(左半分を検索)),0,DGET(左半分を検索))+IF(ISERROR(DGET(右半分を検索)),0,DGET(右半分を検索)) =IF(ISERROR(DGET(左半分を検索)),"",DGET(左半分を検索))&IF(ISERROR(DGET(右半分を検索)),"",DGET(右半分を検索)) のようにすれば,該当する左半分もしくは右半分を抽出できます。 ご利用のエクセルのバージョンがご質問に書かれていませんが,Excel2007以降を使っているならもちろんIFERROR関数を使えばもっと簡単になります。 方法2) ABC列に左半分,DEF列に右半分を置いてあるとして H,I,J列にクライテリアを作成します H1,I1,J1を「空っぽにしておく」 H2に =OR(A2=DATEVALUE("2012/3/3"),D2=DATEVALUE("2012/3/3")) I2に =OR(B2="田中",E2="田中") J2に =OR(C2=24000,F2=24000) と記入する H4に =DGET($A:$F,COLUMN(A1),$H$1:$J$2) と記入し,「右にあと5個」(M4まで)コピーして貼り付ける と出来ます。

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

項目名の終わりに1や2を付けて区別すればできるわけですからそのようにすればよいでしょう。元の項目名は同じだから崩したくないとは言ってもその場合の解決法はかなり難しくなるのですから止めるのが賢明だと思いますね。 DGET関数を使うことを考えるなら条件は何日以降とか何万円以上とかの条件になりますので難しくなります。例として示しておられるのは以上や以降が使われない場合ですのでDGET関数を使うこともなく解決できるのですが、そのような条件ではないのですね。

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.1

同じ項目名を複数回使うというのは、DBとして不正です。 そのままではDGETは使えません。 代案として作業列を3列用意してAA同士の合計値、BB同士の結合文字列、CC同士の合計値を表示させ、そちらをDBとして使用してはいかがでしょうか。

関連するQ&A

  • EXCELの関数について

    EXCELの関数について教えてください。 恐らくIFを使うと思っていますが、よくわかりません。 元の表 1 aa bb 空欄 空欄 空欄 2 空欄 cc これを空欄をうめたいです。 目的の表 1 aa bb 2 cc

  • Excelの関数(表の並べ替え?)

    Excelの関数について質問します。 name address flower 01 aa bb cc 02 dd ee ff 03 aa ff bb 04 cc kk aa というような表から、似たような     flower   address   name 01 03 04 02 という表に落とし込みたいのです。 要するに並び替えだと思うのですが。 LOOKUPかINDEXあたりが使えるのかな? と思ったのですが、よく分かりません。 また、並び替えとはいえ同じタイトルが使われているので、出来れば間違い防止のためにタイトルを利用できたらと思います。 何か有効な方法はありませんでしょうか? よろしくお願いします。

  • エクセルで複数条件に対して、それぞれの結果を出す関数

    エクセルで、Aの条件を満たす場合はAA、Bの条件を満たす場合はBB、Cの条件を満たす場合はCC。と言うような関数を作りたいのですが、どのようにしたらいいでしょう?よろしくお願いします。

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

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

  • Excelのマクロを作ってもらえますか?

    こんにちは。 エクセルのマクロで、Sheet1に転々と 入力されているデータを すべてA1の列へ統一して並べ替え(2) 同じデータの数を計算してB2へ記述する(3)などという マクロができるなら作っていただけないでしょうか? もし、数の入った行のみ残して削除までできれば最良なの ですが(4) (2) AA-20 AA-20 AA-20 BB-30 CC-30 CC-30 CC-30 (3) AA-20   3 AA-20 AA-20 BB-30   1 CC-30   3 CC-30 CC-30 (4) AA-20   3 BB-30   1 CC-30   3 このようになのですが、 お時間のあるときで結構ですので宜しくお願いします。

  • エクセル IF関数を教えてください。

    数字(10桁)のデータがあります。(1234567890、2345678912のような) 例えばB列にそのようなデータがあり、IF関数にてそのうちの1から始まる10桁のデータは"AA1"。2から始まる10桁のデータだったら"BB2"という結果を出したい場合なのですが、どのような論理式を立てればいいでしょうか?10桁の数字は、1から始まれば全て"AA1"2から始まればBB2と結果がでるようにしたいのです。 どうかお分かりになる方ご返答お待ちしております。よろしくお願いいたします。

  • エクセルの並べ替えについて

    列に日付・品名・数量 行にそのデータを入れています。 このデータを元に列に日付を入れて 行に日付のデータを入れ替える方法があるのでしょうか? 3/10 AA 500 3/10 BB 500 3/11 AA 10 3/11 CC 500というデータを 3/10  3/11 AA 500 AA 10 BB 500 CC 500こんな具合に出来ませんかね。

  • エクセル関数について

    エクセルでデータベースを作っています。別のシートからデータを抽出して合計を出すというものなのですが、どうも関数がうまくいきません。 別のシートには日付・現場名・費目・時間・金額などが入力されています。(オートフィルタが使われていました)そしてデータベースには現場名と費目から金額の合計を抽出したいのですが、どんな関数を使っていいのか分かりません。 =SUMPRODUCT((条件1)*(条件2)*....(集計する数値)) =SUMPRODUCT((入力!$C$3:$C$9810=Sheet1!$B3)*(入力!$G$3:$G$9810=Sheet1!C$1)*(入力!$K$3:$K$9810)) というものを使っていたのですが、別シートのデータが入力されていない所まで範囲を指定するとエラーになってしまいます。 =sumifだとエラーにならないのですが、私の技術では1つの条件(現場名だけ)しか抽出、合計できません。 入力されていない所を範囲指定してもエラーにならなくて上の事が出来る関数はないでしょうか、よろしくおねがいします。

  • エクセルの条件検索

    行の先頭の値を返すには エクセル関数をどのようにつかったらよいのでしょうか? たとえば CC1を検索すると Bが表示されるようにしたいのですが A AA1 AA2 AA3 AA4 B BB1 BB2 CC1 D BB4 AA5 この表には同じ値は絶対ありません。 VLOOKUPなど LOOKUPを主に検索をしてみたのですが、わかりませんでした よろしくおねがいいたします。

  • SQLをどのように記述すれば出来ますか?

    SQLをどのように記述すれば出来ますか? >データベース 種目 年月  金額 AA 200501 1000 AA 200502 1000 AA 200503 1000 BB 200501 1000 BB 200502 1000 CC 200503 1000 DD ・・・ >表示形式 種目 合計 年月1 年月2 年月3 AA 3000 1000 1000 1000 BB 2000 1000    1000 CC 1000       1000 DD ・・・ ※注意点 年月範囲は固定ではなく適宜指定可能とする。 また、該当するデータが無い場合は空白とする。 上記の場合は「200501~200503」を指定した。

専門家に質問してみよう