エクセルの表引き方法とは?

このQ&Aのポイント
  • エクセルの表引き方法について説明します。表引きとは、与えられたデータから検索キーに該当する値を取り出す操作です。
  • 具体的には、検索キーとなるデータが入力されている列と、取り出したいデータが入力される列があります。
  • そして、検索キーに該当するデータを持つ行を見つけ、該当するデータを取り出して別の列に表示することで、表引きが実現されます。
回答を見る
  • ベストアンサー

エクセルの表引き

こんにちは いつもお世話になっています。 Sheet1に以下の表があります。 すみません、表示がうまくいかず、A列には文字列、B列には数字が入ります。 A列に数字があるように表示されていましたらB列に表示されているものとしてみてください。 Sheet1 A        B 和歌山    2 愛知    3 東京    1 大阪    2 栃木    1 石川    3 A列のデータに重複はなく、B列のデータには重複があります。 B列の数字を検索値として振り分けるような形でA列の値を表引きしたいです。 表引き先は Sheet2のB列の複数セルに1が入力済みの状態。 Sheet3のB列の複数セルに2が入力済みの状態。 Sheet4のB列の複数セルに3が入力済みの状態。 例えば Sheet2 A        B    1    1    1    1    1 Sheet3 A        B    2    2    2    2    2 Sheet4 A        B    3    3    3    3    3 以上の各シートが以下のようになるようにしたいです。 Sheet2 A     B 東京 1 栃木 1 1 1 1 Sheet3 A     B 和歌山 2 大阪 2 2 2 2 Sheet4 A     B 愛知 3 石川 3 3 3 3 Sheet2-4のA列に各B列のデータに一致する値をSheet1から表引きしたいです。例えばSheet2に関して、東京、栃木と出てしまったら後のA列は空欄になるようにしたいです。A列数字が表示されていたらB列にあるものとしてください。 フィルタとかでの手作業でなく、何とか関数で持ってこられないでしょうか。 作業列とか必要でしたら教えてください。 わかりにくい表現ですみません。 よろしくお願いします。

  • 5goma
  • お礼率82% (265/321)

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

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

ご利用のエクセルのバージョンは幾つですか。ご相談投稿では,必ずご利用のソフトのバージョンまで明記することも憶えてください。 例えばExcel2007以降なら,各シートのA1に =INDEX(Sheet1!A:A,SMALL(IF(Sheet1!B:B=B1,ROW(B:B),9999),ROW(A1)))&"" と記入してコントロールキーとシフトキーを押しながらEnterで入力し,下向けにコピーして入れておきます。 Excel2003までを使っているなら, シート1のC1に =B1&TEXT(COUNTIF($B$1:B1,B1),"-0000") と記入してリスト下端までコピーして埋めておき, 各シートのA1には =IF(ROW(A1)>COUNTIF(Sheet1!B:B,B1),"",INDEX(Sheet1!A:A,MATCH(B1&TEXT(ROW(A1),"-0000"),Sheet1!C:C,0))) と記入してリスト下端まで埋めておきます。

5goma
質問者

お礼

keithin 様 ありがとうございました。お蔭様で解決しました。 バージョンを書かなくてすみませんでした。 両方作っていただいてありがとうございました。 大切に使わせていただきます。 簡単で恐縮ですが、お礼申し上げます。

その他の回答 (1)

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

一例です。 配列数式を使用していますので若干処理が遅くなります。 各シートのA1に次の数式を貼り付け、入力完了時にShift+Ctrl+Enterキーを 同時押下後、下方向に必要分コピーして下さい。 対象範囲は100行としていますので数式内の100の値を変更して下さい。 =IF(COUNTIF(Sheet1!B:B,B1)>=ROW(A1),INDEX(Sheet1!A:A,SMALL(IF(Sheet1!$B$1:$B$100=B1,ROW(Sheet1!$A$1:$A$100),9999),ROW(A1))),"")

5goma
質問者

お礼

mu2011 様 ありがとうございました。お蔭様で解決しました。 大変勉強になりました。 簡単で恐縮ですが、お礼申し上げます。

関連するQ&A

  • エクセルの表引き関数

    こんにちは いつもお世話になっています。 エクセルで右列のデータを検索値にして表引きする方法を教えてください。 sheet1に以下のデータ A     B 1     秋田 2     愛知 3     石川 4     愛媛 sheet2に以下のデータ A     B       愛媛       石川       秋田       愛知 sheet2のA列にsheet1のA列のデータを表引きする方法を教えてください。 (sheet1のA列は連番とは限りません。) 作業列を作らない方法を探しています。 よろしくお願いします。

  • エクセルの表引き?

    こんにちは いつもお世話になっています エクセルの表引きについて教えてください。 実は表引きといえるかどうかわからないので、できるか、できないかだけでも知りたいです。 sheet1に次のデータがあります。 A     B     C 1     秋田    a 2     愛知    a 3     石川    a 4     愛媛    b 5     大分    b 6     鹿児島   b 7     香川    c 8     熊本    c A列は連番とは限りません、重複データはありません。 C列でグループ分けしてあり、第一条件でソートしてあります。 sheet2ではA列に10行ごとに黒枠罫線がひいてあるだけで、ほかにデータはありません。 この枠線の中にsheet1のC列のグループごとにA列のデータを振り分けたいのです。 sheet1のC列は昇順でソートしてありますのでsheet2へも、その順番で各枠線内の上から入力させたいです。 sheet2のA列へはC列のa,b,cの各データの個数より余分に枠罫線がひかれてあるので、入りきらないことはありません。 つまり、 sheet2に A 1 2 3 7行分空白(ここまで枠罫線) 4 5 6 7行分空白(ここまで枠罫線) 7 8 8行分空白(ここまで枠罫線) と入力させたいのです。 関数とか表引きではできないとすると、他の方法はあるでしょうか。 条件付書式でもできるでしょうか。 わかりづらい表現で申し訳ないですが、よろしくお願いします。

  • EXCEL 3つ以上の条件による表引き

    ご覧いただきありがとうございます。EXCELでの表引きについて、お知恵をお貸しください。 通常、表引きは縦・横2つのキーを指定して行うものだと思うのですが、3つ以上の条件による表引きは可能でしょうか。具体的には以下のような表引きを行いたいのです。 次のような表があるものとしてください。    A  B   C    D   E    F   G 1    学年  01   01   02   02   03 2   クラス   01   01   01   01   01 3   番号   01   02   01   02   01 4 A校     792  766   26   284  570 5 B校     446  424   23   147  537 6 C校     757  745   12    85  270 7 8 A校 9   01 10  01 11  01 12  792 このような表で、A8~A11セルに学校名、学年、クラス、出席番号を入れるとA12セルに対応するデータが表示されるようにしたいのです。 A12セルに『{=INDEX(C4:G6,MATCH(A8,A4:A6,0),MATCH(A11,C3:G3,0))*((C1:G1=$A$9)*(C2:G2=$A$10)*(C3:G3=$A$11))}』 という式を入れてみたところ、A9~A11セルに01を入力したときだけデータが表示されますが、それ以外の場合はゼロが表示されます。良い関数式がお分かりになられる方がいらっしゃいましたら、どうかご教示ください。 別にシートを用意して、文字列の結合で横方向のキーを010101、010102…と加工した上で表引きするのが順当な方法だとは思うのですが、できればそういう中間的なシートは使わずに、もとのデータから直接表引きしたいと思っています。よろしくお願いいたします。 OS WindowsXP Home EXCEL 2002

  • エクセルで表引き

    こんにちは  エクセルで「4月」シート、「5月」シートがあります。 「4月」シートのA,B,C列(A3からデータ)にデータが入っています。A列には数字(ランダムだが50行目までは重複なし、51行目から重複あり。添付画像ではソートしてありますが、実際はランダムです)、B列には文字(すべて重複なし)、C列にはローマ数字(I、II、III、IV)がランダムに入っています。 「5月」シートのA3セルに「4月」シートのA列のデータを引いてくる関数を教えてください。  つまり、「4月」シートのA列はA3からA50行目まで1から48の数字が重複せずに入力されていますが、51行目以降は、また、1から始まる数字が入力されています。今回、A列から引きたい行はA3からA50までです。また、「4月」シートのB列の文字列は今回の関数には関係しないかもしれません。  条件としては、例えば、「4月」シートのC列に「 I 」がある行のA列のデータ(数字)を引いてこられる関数を「5月」シートのA3からA20にフィルハンドルで入れたいです。データが入りきるように余裕を持たせています。「5月」シートのデータを参照する必要はなく、単純にC列に I がある行のA列のデータを引いてくるだけです。A21からA40にはC列に II がある行のA列のデータを引いてくる関数を入れたいです。以下同じ要領でA41から60にはC列に III があるもの、A61から80にはC列に IV があるものを引きたいです。 わかりにくい説明ですみません。 応用の効く初心者用の関数だと助かります。

  • 表引き

    表引き関数  再質問です 仮に A    B  C   D   E  A1    2  1   1   A2    4  2   1 A3    5  3   2  A4    6  4   4 A5    1  5   6 A6    2  6   2 BとCに2列の表があります E1には =vlookup(D1,B1:C6,2,false)の関数の式を入れました B列はランダムな数値 C列は通し番号です いつもは B列に通し番号 C列はランダム数値なのでD列の数値に対してのE列の表引きは問題ないのですが 上のように B列がランダムな数値 C列が通し番号の場合 B列に同じ数値が複数個あるとき E列に返してくるのは その数値の最初のひとつだけ  上の仮の表 では D列の数値に対して E1は 以下     E列  5  5  1と6  2  4  1と6 ですが この1と6の6が表引き出来なんです この6も表引きしたいのです どうすればいいのでしょうか 他の関数と組み合わせるんでしょうか よろしくお願いします

  • エクセル2003で表引き

    こんにちは いつもお世話になっています。 エクセル2003で表引き Sheet1のB列に都道府県名があります。 青森 秋田 岩手 愛媛 鹿児島 Sheet2のK1セルにSheet1のB1データを引いてくるために =Sheet1!B1 という関数を入れました。 Sheet2のL1セルにSheet1のB2を引いてきたいのですがフィルハンドルでのコピーに失敗します。 どのような関数を使えば横にコピーできるようになるでしょうか。Sheet2のM1,N1に同様にコピーしていきたいのです。 縦のデータを横にしたいのではなく、関数で引っ張りたいのです。 よろしくお願いします。

  • エクセルと表引き

    エクセル初心者です。 エクセル2003で下記画像のような2枚のシートを作りたいのです。 上段画像のシート1は作成済です。 それぞれ勤務地の希望表なのですが ○印だけのセルを探して、その項目名(東京・大阪・神奈川) をセルに表引きしたいのですが。 よろしくお願いします。

  • エクセル/表引きの方法を教えて下さい

    エクセルで、セルにコード番号を入れたときに、その右横のセルに、別のシートに作ってあるコード一覧表を参照して、入力したコード番号の商品名を自動的に入れるにはどうしたらいいのでしょうか。 コードの一覧のシートに 1 A商品 2 B商品 … と作ってあって、 別のシートでセルに「2」 ←を入れると 2 B商品(←自動的に表示される) ↑ 入力 のようにしたいのですが。 いろいろ調べたのですが分からないのでよろしくお願いします。

  • Excel2000で表を作っていますが、うまくできません

    Excel2000で表を作っていますが、うまくできません(T_T) セルA1+B1=C1 C1+A2+B2=C2 C2+A3+B3=C3.... のようなC列に合計欄がある表を作っています。(元帳のような物です) (A列、B列の欄には必ずしも全て数字が入る訳ではありません。) しかし、セルA列とセルB列に数字を入力していない場合、C列に全て「0」が 表示されてしまいます。 数字入力後は、全て下まで残高が入ってしまいます。 セルA列,B列に最後に数字を入れた行まで、Cに数字が入るようにしたいのですが、 できないでしょうか? (30行まで表を作って20行まで数字を入れたとき、21行から30行に残高も入らないように したいのです。) 何だかうまく説明できませんが、是非教えていただけますでしょうか。 よろしくお願いします。

  • エクセルで表引き

    こんにちは いつもお世話になっています。  Windows7、エクセル2007です。  初心者のため以下の関数が可能かどうかも判断できませんが教えてください。 勝手ながら、作業列を使う場合はD列以降にお願いします。ピボットテーブルは不要です。 A列に1からの連番。B列に名前(表引きに直接関係はありませんが)。C列に記号が3種類あります。 C列の記号ごとにA列の番号をA16セル以下に引いてくる関数を教えてください。 具体的にはJPGをご参照ください。 A16~19にC列の記号Iを持つA2~11の番号 A20~23にC列の記号IIを持つA2~11の番号 A24~27にC列の記号IIIを持つA2~11の番号 実際はA列の連番は50ぐらいあります。 引いてくる先のセルA16以下のセルは余裕を持たせてあります。 A16以下に検索値のようなものはありませんが大丈夫でしょうか。 厚かましいお願いですが応用が利く、わかりやすい関数も希望しております。 よろしくお願いします。

専門家に質問してみよう