• 締切済み

Excel関数 表の中のデータを検索して表示したい

検索範囲が列や行の一方向でないため行き詰まってしまいました。 いい式の組み立てがありましたら、教えていただけますようお願いいたします。 クラスのリスト A B C D 1 1組 田中 吉田 織田 伊藤 2 2組 坂本 神奈 千葉 小笠原 3 3組 浜田 金沢 岡本 多田 A列の氏名を元にB列にクラスを表示したい A   B 多田 3組 伊藤 1組 ・ ・ ・ 検索のキーとなる氏名に重複はありません。 =INDEX($B$1:F3,IF(COUNTIF($B$1:$F$3,A6),ROUND(MOD(SUMPRODUCT(($B$1:$F$3=A6)*(ROW($B$1:$F$3)+ROW($B$1:$F$3)/1000)),1)*1000,),""),1) 該当の文字が入力されている行番号を検索してINDEXをつかって表示する式をつくりました。 しかし、リストの表が1行目から作成されていないとエラーになってしまいます。 なにかいい式はないでしょうか?

みんなの回答

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

>たとえばB2:F4に一覧があるなら >B2:F4から多田を検索する 添付図参照願います。 #まぁ,関数を読んでというのは無理だったかもしれませんね。 Excel2002以降をご利用でしたら,ワークシート分析(ツールメニューにあります)の数式の検証を使って,計算をトレースして理解してみてください。

SergioRamo
質問者

お礼

丁寧に画像つきでありがとうございます。 =INDEX(リストの開始列,SUMPRODUCT((リスト範囲=検索値)*ROW(リスト範囲))) で応用が利くこともわかりました。 感謝です。

全文を見る
すると、全ての回答が全文表示されます。
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

>検索のキーとなる氏名に重複はありません たとえばB2:F4に一覧があるなら =INDEX(A:A,SUMPRODUCT((B2:F4=A6)*ROW(B2:F4))) 「A:A」の部分だけ変更不可。 #もしくは,理屈がわかれば =INDEX(A2:A4,SUMPRODUCT((B2:F4=A6)*(ROW(B2:F4)-1))) でも同じ。

SergioRamo
質問者

補足

早速の回答ありがとうございます。 質問がわかりにくくてすみません。 =INDEX(A:A,SUMPRODUCT((B2:F4=A6)*ROW(B2:F4))) を使うと B2:F4までの表の中に、該当文字が入力されている行番号が表示されます。 1組 田中 吉田 織田 伊藤 2組 坂本 神奈 千葉 小笠原 3組 浜田 金沢 岡本 多田 たとえば、この表の中の中で多田を検索したときに、3行目という行番号ではなく、3組というクラスを表示したいのですが、どうすればいいでしょうか? 多田 と入力されている隣のセルに、B2:F4を検索して、B列のクラスを表示したいのです。 下の式だとエラー#REF!になってしまいました。 配列の使い方がいまいち理解できていないのでうまく組み立てられません。 よろしくお願いいたします。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • EXCEL2000で関数INDEXとMATCHを使った際の表示について

    EXCEL2000で関数INDEXとMATCHを使った際の表示について お聞きしたいのですが、別シートでリストが有りそのリスト内のリストNoを別シートで入力すると項目が自動表示される様に関数を入力したのですが、リストでは1行に2段表示にして作成しているのですが別シートに自動表示した際1行で表示されます。リストと同じ表示するにはどうすればよいのでしょうか、わかる方宜しくお願いします。 ちなみにわかりずらいかもしれませんが現在下記の様に表示されます。 現在の関数式 =INDEX(**リスト!$B$4:$B$50,MATCH(**データ!D2,**リスト!$A$4:$A$50,0)) 表示例 (リスト側)        (データ側)     A(列)           A(列)  1(行) あああ    1(行) あああいいいいい   いいいいいい 

  • Excel関数での採番

    A列 B列 1  1 1  2 2  3 2  4 3  5 3  6 上記B列のように1から6までの行があるのですが2行毎にIndexをつけてA列のような形で採番するよい関数、式等ありますでしょうか? もし良いやり方をご存知でしたらご教授下さい。

  • 表の中から条件のあうものだけで別に表をつくる

    エクセルです。いろいろ考えましたが思い浮かびません。 a1[番号]b1[氏名] c1[性] a2[1] b2[吾郷] c2[男] a3[2] b3[伊藤] c3[女] a4[3] b4[宇佐美]c4[男] a5[4] b5[江田] c5[女] a6[5] b6[小川] c6[女] a7[6] b7[川田] c7[男]  ・・・・・・・・・ の中から女性だけを抽出して e1[番号]f1[氏名] c1[性] e2[1] f2[伊藤] e3[2] f3[江田] e4[3] f4[小川]  ・・・・・・ というふうに別にリストを作りたいのです。 マクロを使わずに関数だけで何とかならないでしょうか。 同じシート内に作業領域があるのは問題ありません。 よろしくお願いします。

  • Excel関数について

    A列の1行目に A C D F X のデータが入ってきます。 B列の1行目に 0 1 2 9 T V のデータが入ってきます。 条件はA列の1行目がAまたはFでB列の1行目が0の場合は10% 条件はA列の1行目がAまたはFでB列の1行目がTの場合はブランク 条件はA列の1行目がDの場合はブランク 条件はA列の1行目がXの場合は100% 上記以外は0% の条件を満たすための関数の設定の仕方を教えてください。

  • EXCEL2000 関数の使い方

    EXCEL2000 関数の使い方についておしえてください。 (状況) 1)シート1(請求書)とシート2(名簿)があります。 シート2は 列A 列B 列C    列D No 氏名 生年月日  年齢 1 A子 H11.11.1  7 2 B男 H13.8.18  5 ..と続いています。 2)シート1のセルB3(宛名欄)にシート2の名簿の中からB列「氏名」(「氏名」という名前で定義つけてあります)をリスト表示しています。 3)セルB3にリストから選択した人物の年齢をシート2から探して年齢(列D)をシート1のセルC32に表示させたいのですが、どのような数式になるでしょうか? VLOOKUP関数を使うのかな?と思ったのですが、シートが分かれていたり、リストとの合致の定義付けがよくわかりません。 検索個所:シート1のセルB3とシート2B列の一致した値 検索範囲:シート2のB1からD35(データという名前で定義付けています) 表示させたいセル個所:シート1のC32 数式の使い方など認識がまちがっていたり、わかりにくい説明になっているかもしれませんが、どうぞよろしくお願いします。

  • 関数を使って検索エンジンを作りたい

    はじめまして☆ エクセルで検索エンジンのようなものを作成しているのですがなかなかうまくいきません。 ご存知の方、教えていただければと思います。 シートが検索用シート、データ用シートと分かれていまして =PHONETICで検索したい文字列をカナ変換後↓としています。 (↓これも人から教わったので、細かい内容はよくわかっていないのですが、なんとか使っています) =INDEX($J$2:$J$5000,SMALL(IF(ISERROR(FIND(検索!$L$2,$J$2:$J$5000)),1000,ROW($J$2:$J$5000)-1),ROW()-2)) ------検索用シート-----------------------------------------    A       B         C    D E F G 1      2      検索ワード入力セル  3 4 検索の結果を4行目以降20行目まで表示させる ------データ用シート---------------------------------------    A  B  C  D   E   F   G   H   I 1PHO関数      ワード1 ワード2 ワード3 2 3 4 これ以降 5000行まで続く↓ やりたいことは、データシートのD1に記入されたキーワード1を検索した上で、その行を全て表示させるということですが、なかなか複雑なようで…。 現在、上記で、検索用シートで文字入力後、その検索ワードの行の内容を全てVLOOKUPで拾おうとしたのですが、検索ワードが同一のものが多数出てきた時に、全て同じ内容になってしまうことに気づきました。(T_T) はじめからやり直さなければいけないような気がしますが、 どのようにしたら、検索して、その該当する行をそれぞれ表示させることができるでしょうか? 関数初心者なので、できましたら、詳しく教えていただければと思います。よろしくお願いいたしますm(__)m

  • excelのデータ抽出?検索?についておしえてください。

    excelのデータ抽出?検索?についておしえてください。 エクセル2003で sheet1に次のようなデータがあります。   A列  B列  C列     D列  E列 ・・・ 1 組   番号  氏名     古典  現文 ・・・  2 1   1   青木 優    3 1   2   池田 洋子   4 1   3   植村 美紀   ・ ・ sheet2には1組の成績が sheet3には2組の成績が入っています。 クラスによって科目が違います。 この「氏名」と1行目の「科目名」が一致するデータを 他のシートから読み出してくる関数がありませんでしょうか 青木さんの古典を1組のシートから読み出すといった感じです。 説明がへたで 申し訳ないのですが うまく検索ができなくて困っています。 ぜひ くわしいかた教えてください。 どうぞ よろしくおねがいします。

  • excel関数(検索)

    excel関数でA列に存在するデータがB列に存在するときは、C列に"1"に、存在しないときは"0"とする関数は何を使うべきですか?   A     B     C model-1  model-1  1 model-2  list-02  0 model-3  list-01  1 list-01  model-3  1 list-02  test-01  1

  • エクセルVBAでデータ検索(Win2000,Excel2000)

    エクセルで毎日の業務で手計算している作業をVBAコードかいて試しているのですが、縦と横の検索で行き詰まってしまい質問しました。どうぞよろしくお願いします。 _A__B____C____D__E__F___G___H 1| 2|_______その他_1~3_4~6_7~10_11~20_21~30 3| 3|__項目A___ 0___50__49__46___43__40 4|__項目B___ 0___45__44__39___37__34 5|__項目C___ 0___43__42__34___30__ 28 行 *このデータは現在(B3:V42)にあり今後増える可能性あり *1行目とA列は空白です。 *2行目とB列は対応する項目です。 *3行目は関係ない値が入っています(データをつくる為の値) このようなデータが、"Sheet2"にあると仮定します "Sheet1"のシート上に配置したComboBox(コントロールツールボックスの)に検索値があります。 (ComboBox1 → 数値 , ComboBox2 → 数値 , ComboBox3 → 文字)*リストは"Sheet1"に登録してあります。 TextBox1 ÷ 2 の結果を小数点以下切上げし、これにTextBox2の値をかけたもの(仮にAAAとする)が、2列目のそれぞれのセルの数値範囲に対応し、TextBox3の文字列がB列に対応し、両検索結果の交わったセルの値を返すようにしたい。 例)もしAAAが「8」なら「F列」をみる。TextBox3 の文字列が「項目B」なら「4行目」をみる。この結果、交わったセルは「F4」なので、「F4」にある値「39」を"Sheet1"."A1"に返す。 また、これらコンボボックス(このシートとは別にテキストボックスを使うこともある)にはひとつずつchangeイベントでいきなり別シート("Sheet3")に書くコードが既に書いてあります。このセルから取り出すことも可能です。よろしくお願いします。

  • EXCEL関数

       A      B        C     D    E 1 田中(東京) 合格   8/1      鈴木 2 山田(大阪) 不合格  8/1      田中  3 鈴木(京都) 合格   8/3      山田 4 山田(大阪) 合格   8/4      伊藤 たとえばA1からE4にこのような入力がされているとします。(D列はなにも入力されていません。) 山田さんが合格のときF列に日付を表示し、そうでなければ空白を表示するにはどうすればよろしいのでしょうか? この場合F4に「8/4」と入るはずなのですが、 =IF(A4=E3 & "*",IF(B4="合格",C4,""),"") という式では空白になってしまうのです。 どうすればよろしいでしょうか。式には"山田"と入力せず、E3と示したいです。 分かる方教えてください。 EXCEL2000を使っています。

専門家に質問してみよう