• ベストアンサー

EXCEL データベース関数のデータベース部分を可変にしたい

データベース関数の式は、 D関数(データベース,集計したいフィールド,条件) で表されますが、この中のデータベース部分を可変に することは可能でしょうか? 可能であれば、その方法を教えて頂きたくお願いします

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

  • ベストアンサー
  • O_Denwa
  • ベストアンサー率26% (46/172)
回答No.1

可変って事は、D関数はいじらず、データベース部分に、 他のセルで記述される範囲指定を持ってくる。とかでいいんでしょうか。 123なら@@関数でできそうだけど、 Excelだとなんだろうなーっと調べてみました。 INDIRECT関数で出来そうな感じです。 別セルへ範囲の指定を文字列で書き込んでおき、 D関数(INDIRECT(範囲が書かれたセル番地),フィールド,条件) とかで、どーでしょ。 ちなみに、INDIRECTで指定するセルに書き出された範囲は、 文字列結合の結果とかでも大丈夫みたいです。

niraitame
質問者

お礼

ありがとうございます。 無事、目的を達成できました。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

私も前からこんなことが出来ないかと思っていました。 基本的には、固定範囲の演算しか念頭にないと思いますが。 下記で出来ましたが、半信半疑ですが大丈夫でしょう。INDIRECTを使います。A1セルに(例えば)「人数」、 まずA2:A11までテストデータとして1,2、・・・9,10をいれます。条件(Criteria)としてセルC1に「人数」 C2に「>5」といれます。 D1セルに「a9」といれます。何処でも良いが、D10に 関数式「=DSUM(A1:INDIRECT(D1),"人数",$C$1:$C$2)」 といれます。結果は21となりOKのようです。 上記のような簡単な例しかテストしていませんが、他のD××関数でも使えるか検証していません。 お分かりのように、D1にa8といれるとD10は13に変わります。

niraitame
質問者

お礼

ありがとうございました。

関連するQ&A

  • AVERAGEIFS関数の引数が可変の場合

    averageifs関数のことについて教えてください。   引数の合計対象範囲をindirect関数とaddress関数、match関数を使い可変にしています。 条件範囲また条件はダイアログボックスで確認する限り計算されてはいるのですが、 戻り値が#VALUEになります。 どうすればキチンと戻り値が表示されるのでしょうか? ちなみに可変の部分(合計対象範囲)をaverage関数で計算するとちゃんと計算されています。          ↓こんな式です。    AVERAGEIFS(INDIRECT(ADDRESS(MATCH(DATE(データ!$D$1,$A3,1),データ!$D:$D,0),6,,,"データ")):INDIRECT(ADDRESS(MATCH(DATE(データ!$D$1,$A3+1,0),データ!$D:$D,0),6,,,"データ")),データ!$C:$C,0) ややこしいですが、お願いします。

  • エクセルのデータベース関数について

    エクセルのデータベース関数について質問します。 データベースの指定された列を検索し、条件を満たすレコードの中で数値が入力されているセルの個数を数えたいと思います。が、その列が複数あり、また、条件も複数ある場合、DCOUNT関数を使うと、データベース関数に指定した条件が設定されているセル範囲をいくつも設定しなくてはならないのでしょうか? 以前、Lotusを使っていた時は、#and#という形で、条件をいくつも指定することが出来たのですが、そういったことは出来るのでしょうか? わかりにくい表現かもしれませんが、よろしくお願いします。

  • アクセスでデータベースを作っているのですが

    いつもお世話になります。 とっても基本的なことですが、データベースのテーブルの中のAとBとCのフィールドを集計してDのフィールドに記入したいのです。  A+B+Cという式を入れた選択クエリを作ってその集計をDに返すようにしたのですが、A,B,Cとも数値が入っていないと空白になります。テーブルの規定値には 0が入っているのでいいと思うのですが(汗) 多分ホントに簡単なことかと思うのですが、判りません(泣) よろしくお願いいたします。

  • エクセルのデータベース関数について

     DSUMなどのデータベース関数の条件(クライテリア)の指定において,複数の条件を指定できるのでしょうか?  例えば,布について,フィールドに色(黒,白,赤,黄,緑),値段,大きさ(大,中,小)があるデータベースの中から,色が黒と白,大きさが大のものの値段の和を求める場合,セルに   A B 1 色 大きさ 2 黒 大 3 白  というような,クライテリアの指定ができるのでしょうか?このとおり指定しても,上手く計算されてこないのですが?Aで色を黒と白と複数指定できないのでしょうか?

  • エクセルにおいての配列関数について

    エクセル の配列関数のSUMPRODUCT使用して このような式を書いた場合 SUMPRODUCT((条件1)*(条件2)*・・・(条件n)*(集計範囲)) =SUMPRODUCT((A1:A30=50)*(B1:B30=750)*(C1:C30=6600)*(D1:D30=210)*F1:F30) 集計範囲の行 いわゆるFの行の数字の中の一つのセルに 「3」などのカッコを使用した ものをいれると "#VALUE!" と表示され正しい答えが出ないのですが 解決方法を教えてください。 よろしくお願いします。

  • EXCELのデータベース関数について(DCOUNTA?)

    EXCELのデータベース関数について(DCOUNTA?) 住所録を作成していますが、ポイントは3点あります。 (1)1年間に入社した人(雇用形態)毎に人数を求めたいのです。 (2)今年度中に退職した方は残したままで、人数を計算したいのです。(退職日を入力) (3)今年度は人が増えるため、全体をテーブルとし、雇用者1人事をレコードとして処理していますが、そのためCOUNTIFSなどは用いず、簡単に計算するためデータベース関数を利用したいと考えています。 DCOUNAの関数は(Database,フィールド,Criteria)となりますが、Criteriaの条件を雇用形態と退職日を横に並べた値としたいが、退職日を空白の人を人数としたい為、空白とすると条件を選んでいないとして雇用形態のみ合致した人数をカウントしてしまうようです。 良い方法あればご教示ください。

  • エクセルのDSUM関数について

    =dsum(データーベース、フィールド、条件) の条件のところにいれたが反応せず、ただ”フィールド”の列を合計したものがかえってきてしまうのですが。 =DSUM(C59:E90,E90,C114:E115) C59 D59 E90 分類 媒体 金額 行の90までデーターが入っています。 C114 D114 E114 分類 媒体 金額 行の114まで条件が入力できるようになっています。 分類・媒体・金額の部分はセルを2行結合しているのですが、条件の部分もセルを結合しています。 フィールド名が結合したセルだとDSUMはつかえないのでしょうか?

  • エクセルのデータベース関数を教えてください。

    エクセルのデータベース関数を教えてください。 自分で考える能力が無いものですみません(._.)。 テーマはゴルフのスコア分析とお考え下さい。1行目が各ホールのパーの数字、2行目がそれに対応するスコアが入っているというデータがあります。 Par---- 4 4 3 5 4 ・・・ Score-- 5 4 5 4 4 ・・・ このような感じです。 このデータで、Parが4のスコアだけを集計する方法が分かりません。 DSUMでは、列の見出しが無いのでうまく作動してくれません。どうも、行と列が逆のようです。1ラウンドのデータが2行に分かれていて、1行目がパー、2行目がスコアという形になっているので、このデータの行と列を入れ替えるという作業は避けたいのです。 エクセル関数初心者にご指導をよろしくお願いします。

  • エクセルでIF関数で表示した集計方法

    エクセルで条件式=IF(AND(C7<>"",D7=""),"1","")と言うものをK7に表示しています。 このK7を抽出して集計しようとフィルタをかけて下の方に =SUBTOTAL(9,K5:K30) と入れましたが 計算してくれません。 if関数で入力した数値を集計する方法はありますでしょうか? ご教授よろしくお願いします。

  • 競馬データベースをエクセルの関数で作りたいのですが

     初めまして。少し前にここのカテゴリと違う場所で質問をしてしまいましたので、改めてこの場所をお借りして質問させて頂きます。  私、EXCELで趣味的に競馬データを作っている者ですが、ある部分で躓いてしまい難儀しております。  添付画像のように競馬データをサイトからテキストでコピーしているのですが、黄色の「B3~B12」の部分は出走頭数により行全体が上下に可変します。  膨大なデータ量となるため、同じセル範囲に1レース分を一度にコピー・ペーストし、あとでデータベースとなる固定のフォーマットを作りたいのです。  当然ながら払戻金の項目も出走数により上下するのですが、これを解決しようと可変しても、セル中の文字がどのレースデータをペーストしても固定である、「B14」の「▼払戻金」という文字を基準に下へ向いて関数を作ることは出来ました。  F5=INDEX(B3:B30,MATCH("▼払戻金",B3:B30,0)+1,1,1)で+の右数字を増やす事で、3つの複勝や同着だった場合の枠連・馬連の空欄にも対応できる項目のペーストがF列に出来たのですが、その横にあるC列の馬番やD列の払い戻し金額をそのままG列・H列に抽出するところで挫折しています。  F列に入力してある関数を利用して違う関数をネストするように組まなければ、上下にデータが動くためセルを固定できないので、何とか「▼払戻金」の文字位置を基準に抽出できないかと試行錯誤してみたのですが、単勝の横にある7の数字も680円の数字も出現してくれません。  当方VBAなど触った事もなく、できれば関数で処理できる方法があれば、どなたかご教授くださいませ。  よろしくお願いいたします。

専門家に質問してみよう