エクセル複数条件検索方法:データの抜き出しと教科の表示

このQ&Aのポイント
  • win7、エクセル2007で作成中のデータベースで、複数の条件に合ったデータを抜き出す方法について教えてください。
  • 現在、時間帯、名前、教科、所属などのフィールド名を使用して複数の条件でデータを抜き出す式を作成しています。
  • 条件に合ったデータがある場合には「〇」が表示されるようにまではできたのですが、さらに、条件に合ったデータの教科を表示する方法を教えてください。
回答を見る
  • ベストアンサー

エクセル 複数条件の検索でデータを抜き出す方法

win7、エクセル2007で作成中のデータベースで、複数の複数の条件に合ったデータ(レコードではなく1セル)を抜き出したいと思っています。 フィールド名は、時間帯、名前、教科、所属などです。 今作っている式は、 =IF(SUMPRODUCT((INDIRECT("'[時間割.xlsx]"&C$2&"'!$b$5:$b$150")=$B5)*(INDIRECT("'[時間割.xlsx]"&C$2&"'!$G$5:$u$150")=$M$28))=1,"〇","") 名前と時間帯が式の検索条件に入っています。 参照先が別ファイルの為、INDIRECTを使っています。 これで条件に合ったデータがあった場合に「〇」が表示されるようにまではできたのですが、さらに、条件に合ったデータの教科を表示するようにしたいと思っています。 ちなみに、人の時間割の為、条件に合うデータは1件しかないです。 DGETなどを使ってみつつ1日中考えていたのですが、訳がわからなくなってきました。。。 もし詳しい方おられましたら、教えて頂けないでしょうか?? すみませんがよろしくお願いします!!

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

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

ちょっと数式に間違いがあったので手直します。ゴメンナサイ。 それと教科がD列にあるなら、そのように修正しないといけません。 =IF(A1<>"○","",INDEX(INDIRECT("'[時間割.xlsx]"&C$2&"'!D:D"),SUMPRODUCT((INDIRECT("'[時間割.xlsx]"&C$2&"'!b5:b150")=$B5)*(INDIRECT("'[時間割.xlsx]"&C$2&"'!G5:u150")=$M$28)*ROW($D$5:$D$150)))) また○になる、つまり該当する答えが「必ず1つしか無く」て「絶対に間違いなく1つはある」事がどんな時でも必ず保証できるなら、「IF(○なら」の部分は省略しても構いません。 具体的な例として、例えば一つ挙げるとB5やM28とかにまだデータが未記入では、「答えが1つある」とはならないといった状況です。 「A1に」を用意するのがイヤなら、あなたがご質問で書いた○の式を回答の式のA1の部分に直接放り込んでも、勿論計算できます。数式が倍の長さになるので、ただでさえごちゃごちゃしてるのがもっと見通しが悪く判りにくくなるだけですが。 INDEX関数は =INDEX(範囲、位置) のように2つの引数を使います。(今回のように範囲が1列あるいは1行の場合。範囲が面に広がってる場合は、範囲、縦、横の3つの引数になります) 最初のINDIRECT関数が範囲、続きのSUMPRODUCTの一式が位置です。

kotkot11
質問者

お礼

できたぁ~~~~!!! お付き合いありがとうございました!! うろ覚えで使っているのでわけわからなくなってきてました。 大変助かりました!!

その他の回答 (1)

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

今作ってる式(○になったりならなかったり)がA1に,教科がA列に入ってるとして =IF(A1<>"○","",INDEX(INDIRECT("'[時間割.xlsx]"&C$2&"'!$A$5:$A$150"),SUMPRODUCT((INDIRECT("'[時間割.xlsx]"&C$2&"'!$b$5:$b$150")=$B5)*(INDIRECT("'[時間割.xlsx]"&C$2&"'!$G$5:$u$150")=$M$28)*ROW($A$5:$A$150)))) などのように,もう一工夫するだけです。

kotkot11
質問者

お礼

ありがとうございます!今日はちょっと時間が取れないので、明日試してみます。ありがとうございました!!

kotkot11
質問者

補足

説明と理解が悪く申し訳ありません。。。 まず、「時間割」というファイルにB列「時間帯」C列「学年」D列「教科」F列「ID」G列「氏名」という項目があり、これは日付ごとのシートで20日間程あります。 次に「配布用」というファイルに、B列「時間帯」c列「7/20」D列「7/22」・・・・のように日付が入っています。これは3行目です。B列5行目から時間帯が入っていて、c列からの日付の下に、M28の氏名、C列からの日付、時間帯を検索条件として、〇ではなく、実際の教科に入っている教科名が導き出される形で、関数を入れたいと思っています。 入れて頂いた式なのですが、作業用のセルを使って、〇で無い時には空欄という形で、式を分けたほうがわかりやすいのでしょうか??それとも私の説明不足で、〇欄も作りたいと捉えさせてしまったのでしょうか?? そして、INDEX関数の引数が2つになっているみたいだけどなぜなんだろう、、、ROW($A$5:$A$150)で行の何を決められているのか、、、理解できず(><)、、、何となく試してみたけど、答えも導き出せずの状態で、、、 分かりにくい説明で申し訳ありませんが、もしよろしければもう少しお付き合いいただけると大変助かります。。。 よろしくお願いいたします!!

関連するQ&A

  • エクセル関数 複数の条件でのデータ抽出

    エクセルの初心者です。 関数で複数の条件からデータを抽出する方法をおしえてください。 [Sheet1] date type Qty. 7/1 b-1 100 7/1 a-2 200 7/3 b-1 500 上のようにデータが並んでいます。 その中で条件にかなうQty.を下のシートに抽出したいのです。 行にはtypeが、列にはdateが並んでいます。 [Sheet2] 7/1 7/2 7/3 a-1 0 0 0 a-2 200 0 0 b-1 100 0 500 SUMPRODUCT, DGETなどいろいろ試したのですが、うまくいきません。 (条件が、列と行になっているからでしょうか) これは、同じtypeが異なるdateに出てくる場合があります。 また、dateの順番がばらばらの場合は抽出は不可能ですか。 ご多忙の中申し訳ございませんがよろしくお願いします。

  • エクセル 複数条件に合うデータを数えたい

    エクセル 複数条件に合うデータを数えたい エクセルでA列に何らかの値が入っていて(=空欄でない)、かつB列の値が“○”の数を数えたいです。 =SUMPRODUCT(($A:$A="*")*($B:$B="○"))と入れましたがSUMPRODUCTはワイルドカードが使えないようで結果は「0」となってしまいダメでした。 エクセル2007を使ってるので =COUNTIFS($A:$A,"*",$B:$B,"○")としたらできたのですが2002を使っている人と共有したいので2002でも使える関数を使いたいです。 どうしたらいいのでしょうか?

  • SUMPRODUCT 複数条件と日付

    関数初心者です。Excel2000を使用しています。 SUMPRODUCT関数を使って複数条件の集計をしたいのですが、どうしても日付の列に反応してくれません。 おそらく原因はデータ元となる日付に時間まで入っているからではないかと思っています。 日付が入力されているセルのデータは 例) 2012/3/3 12:10:50 → セルの書式設定は 時刻のみ 12:10:50 集計したいのは複数条件 例) 2012/3/3 12:10:50 りんご 50  日付 と 商品名 を条件とし 数値 の合計を出したいです。 秒単位で時間計測しているのでこのデータ自体の変更と書式設定の変更は出来ません。 =SUMPRODUCT((B6:B12=B3)*(C6:C12=C3),(D6:D12)) B3のセルに「3/3」もしくは「2012/03/03」の入力で拾えるようにしたくて、 過去のの質問など参考にし(B6:B12=B3)の部分を変更しましたが、うまくいきませんでした。 やってみたことが的外れだったのかもしれません。 また、日付を条件とした場合、書式設定も影響されるのでしょうか? アドバイスをよろしくお願いします。

  • エクセル 複数条件を満たすデータを返す関数

    エクセルで、複数条件を満たした時にデータを返す関数をお教えください。 例えばA列に県名、B列に都市名、C列にアルファベットが入っている表があります。 イメージ・・・(カッコ内はセルの番地) (A1)神奈川県   (B1)横浜市    (C1)X (A2)神奈川県   (B2)横須賀市   (C2)Y (A3)千葉県    (B3)千葉市    (C3)Z この表があり、 (A5)神奈川県   (B5)横須賀市   (C5)??? このようにA5,B5のデータ(条件)に一致するアルファベットを C5に返す関数が必要です。(ここではYを返す) C列が数値の場合は、sumproduct等で可能と思いますが、 C列が文字の場合は使えないのではと考えています。 何か方法はありませんでしょうか?

  • エクセル 条件が複数な場合のデータ取得の方法

    お世話になります。 下記のような表の場合、条件に合うデータを取得したい場合、 どのように関数を組んだら良いか教えてください。   A  A  A   B  B  B   C C C・・・ ←項目   (1) (2) (3)  (1) (2) (3)  (1) (2) (3)   ←項目 あ 10 20 15   5  8 10・・・・・・ い 5  12 8   20 9 30・・・・・ (C(1) (2) (3)以降も項目が続きます。) →「あ」の「B」の「(2)」の値 8 を求めたい。 SUMPRODUCT関数を使用してみましたが エラーになってしまい、うまくいきませんでしたので、 ご教授いただきますよう、よろしくお願い致します。

  • 複数条件で表からデータを検索(引用)する方法

    はじめまして。 質問をお願いいたします。 ExcelでSheet2に一覧のデータを作成しました。 A列 B列・・・N列まで 会員番号 B:M(データ) N列が年度  を入力しており、それぞれの列に同じデータは含まれておりません。 (会員番号は同じで年度が違うデータはあります) これらのデータから、Sheet1に会員番号と年度を入力すると D:Mまでのデータが表示できるようにしたいと思います。 どうすれば、そのような検索の式を作ることができるのでしょうか? 私が考えているのは、SUMPRODUCT(会員番号の参照=$A$1,B,M=$B$1)と てA1に会員番号 B1に年度を入力すると、Bから参照したデータを出力す る、というセルをBからM分まで12個つくって表示させようと思いました。 しかし、この関数はとても処理が遅いみたいで表示されるまで時間が かかって仕方がありません。 もっと、スマートで簡単な方法があれば教えてください。

  • 【エクセル】ある特定文字を含んでいるデータを計算したい

    複数条件でのデータ集計をしています。 条件は、商品名、担当者名、一宮市を含む、の売上(D列)合計です。 関数はSUMPRODUCTを使っていますが、一宮市を含むの条件でうまく 計算されません。 =SUMPRODUCT(($A$1:$A$200="商品名")*($B$1:$B$200="担当者名")*($C$1:$C$200="*一宮市*")*($D$1:$D$200))という式ではエラーに なってしまいます。 一宮市セルは前後に複数文字があります。 うまくいく方法を教えていただきたいのと、上記の式でエラーになる 理由も併せて教えていただければと思います。 お詳しい方、よろしくお願いいたします。

  • ファイルメーカーで複数条件データを抽出する方法

    filemaker で、複数条件のデータ抽出を行いたいのですがその方法が分かりません。 フィールドAとフィールドBにそれぞれaまたはb、cまたはdの値が入力される場合、aかつc、aかつd、bかつc、bかつdの件数を求めたいと 考えております。 =Exact(A;"a")and Exact(B;"c")のように入力してみましたがうまくいきませんでした。 知恵をお貸し頂ければ幸いです。 宜しくお願い致します。

  • 複数シート、複数条件でのSUMPRODUCT関数について

    こんにちわ。 SUMPRODUCT関数に挑戦していて上手くいかない点があるので教えていただけると助かります。 複数のシート(A,B,C)のそれぞれ同じセル範囲の中から、集計するシート内と一定条件に合致したものを抽出したいので、 =IF($A19=0,0,(SUMPRODUCT(($A19=A!$A$723:$A$769)*(A!$C$723:$AG$769))))+IF($A19=0,0,(SUMPRODUCT(($A19=B!$A$723:$A$769)*(B!$C$723:$AG$769))))+IF($A19=0,0,(SUMPRODUCT(($A19=C!$A$723:$A$769)*(C!$C$723:$AG$769)))) という式を作りました。3シート目位までは結果が正しく戻るのですが、途中でエラーが出てしまいます。全部で12シート分の条件にあったセルを合計したいのですが。 長すぎるのか、括弧のつけ方とかがあるのかと思うのですが、短くする方法がいまいちわからず困っています。 宜しくお願いします。

  • SUMPRODUCTの複数条件設定について

    SUMPRODUCTの複数条件設定について質問です。 以下の式で、以下条件を設定したいのですが、方法が分かりません。 回答の程宜しくお願い致します。 【式】 =SUMPRODUCT(D3:D10000>=C3:C10000) 【やりたい事】 この条件に以下の条件を加えたい。 →D列のセルが空白の場合も  カウントする対象としたい 以上宜しくお願い致します。

専門家に質問してみよう