Excelのデータ抽出

このQ&Aのポイント
  • Excelで複数の表にデータを分ける関数や方法を教えてください。
  • 元データの表からα, β, γの順番通りにデータを分ける方法を教えてください。
  • 元データに入力するだけで自動的に複数の表にデータを分ける方法を教えてください。
回答を見る
  • ベストアンサー

Excelのデータ抽出

Excelで以下のような作業ができる関数があれば、ぜひ教えて下さい。 各社にα~γの区分けを付け、それが順不同に並んでいる表から、 元データに書かれている順番通りにαのものは表1に、βのものは表2に、 γのものは表3に、というように、複数の表に分けられるような関数、 もしくはやり方をご存知の方はぜひ教えて下さい。 【元データ】        【表1】       【表2】     【表3】  1  2           1  2      1  2      1  2  α A社          α A社     β B社    γ  C社  β B社          α E社     β F社    γ  D社  γ C社                             γ  G社  γ D社    →      α E社  β F社  γ G社 ちなみに、元データ上で、α→β→γの順番に並び替え、それを表1~表3に コピペする方法は思いつきました。ただ、元データは毎日増えていきますし、 データ数も結構多いので、可能なら、元データに入力するだけで、自動で表1 ~表3にも反映されるような、やり方があれば、と思いまして。 よろしくお願いします。

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

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

できるだけ普段使いの関数だけで結果を出してみます。 添付図: A2: =IF(B2="","",B2&TEXT(COUNTIF($B$2:B2,B2),"-000")) 以下たくさんコピーしておく E2: =IF(ROW(E1)>COUNTIF(B:B,"α"),"",ROW(E1)) F2: =IF(E2="","",VLOOKUP("α"&TEXT(E2,"-000"),A:C,3,FALSE)) 以下沢山コピーしておく。 もちろん,どこかのセルに「α」を記入しておき,そのセルを使って計算させて構いません。 あなたの実際に作成するシートのレイアウトに応じて,適切に工夫してください。 #余談ですが 実際にエクセルを見ながらご相談を書いていたら,ご質問で書かれているように「1列目」「2列目」という具合にはなっていない事が判ったはずです。 寄せられた全ての回答について,まず実際に手を動かして実物のエクセルを作成し試してみてから,必要に応じて追加のご質問なり出来マシたの返答なりを投稿してください。(お礼の投稿等はしない主義の方でしたら余計なお世話でしたゴメンなさい。) それとも,あなたのお手元では実際に列表示も縦の表示も共に1,2,3と並んでいる画面で作業しているのだとしたら,皆さんから寄せられた全ての式がエラーになってしまうハズなので,注意が必要です。

B-line98
質問者

お礼

早速のご回答ありがとうございまし。実際に自分でExcelに入力してみまして、ご指摘の内容についてもおっしゃる通りでした。 勉強になりました。本当にありがとうございました。

その他の回答 (4)

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

α、β、γなどの分類が多くなっても対応できる方法です。 元のデータがA2セルとB2セルの下方に入力されているとして作業列としてC2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(A2="","",IF(COUNTIF(A$2:A2,A2)=1,ROUNDDOWN(MAX(C$1:C1),-3)+1001,INDEX(C$1:C1,MATCH(A2,A:A,0))+COUNTIF(A$2:A2,A2)-1)) そこでお求めの表を例えばE列から右側のセルに表示させるとしたら、E1セルには次のs気を入力して右横方向にオートフィルドラッグします。 =IF(ROUNDUP(COLUMN(A1)/3,0)*1000>MAX($C:$C),"",IF(MOD(COLUMN(A1),3)=1,"表 "&ROUNDUP(COLUMN(A1)/3,0),"")) E2セルには次の式を入力して右横方向にオートフィルドラッグしたのちに下方向にもオートフィルドラッグします。 =IF(OR(ROUNDUP(COLUMN(A1)/3,0)*1000>MAX($C:$C),COUNTIF($C:$C,ROUNDUP(COLUMN(A1)/3,0)*1000+ROW(A1))=0),"",IF(MOD(COLUMN(A1),3)=1,INDEX($A:$A,MATCH(ROUNDUP(COLUMN(A1)/3,0)*1000+ROW(A1),$C:$C,0)),IF(MOD(COLUMN(A1),3)=2,INDEX($B:$B,MATCH(ROUNDUP(COLUMN(A1)/3,0)*1000+ROW(A1),$C:$C,0)),""))) これにより、A列での新たな分類の追加に対してもまたB列でのデータが追加されてもすべての表示が自動で表示されます。

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.4

添付ファイルが漏れていたようですので 再度、失礼しておきます。

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.3

関数案ではありませんが 条件に合った データを抽出するというのであれば フィルター オプションの機能を使うのが便利です 以下にExcel2010の場合の画面を添付してきますが E1~E2に 抽出したいデータの項目と内容(ここでは α) E4~F4に 条件に合った表示したい項目 を入れておいて データ=>詳細設定 添付のファイルの設定をしてokします。 1列目が α のデータが抽出されて表示します。 頻繁に行う作業でば マクロの記録で マクロ化して E2セルの内容を書き換えた時に実行されるようにしておけば 大変便利です。

  • red_pana
  • ベストアンサー率28% (18/64)
回答No.1

ピボット使えばよいんじゃないでしょうか。

関連するQ&A

  • エクセルでデータ抽出

    エクセル初心者です。 エクセルでに次のような表を作っております。 (Sheet1) 担当 会社 郵便番号 住所 菊地 A社 0000000 ○○○○ 菊地 B社 0000000 ○○○○ 菊地 C社 0000000 ○○○○ 田中 D社 0000000 ○○○○ 田中 E社 0000000 ○○○○ 山本 F社 0000000 ○○○○ 山本 G社 0000000 ○○○○        ・        ・        ・ と800件くらいあるのですが、 これを 別シート(Sheet2)で名前を菊地と入力すると菊地のデータが一覧で出るようにしたいのですが、どうしたらよいでしょうか。 できれば、マクロを使わずに関数でやりたいです。 VLOOKUPかな?と思い、いろいろ調べたのですが、抽出したいデータが複数あるので、悩んでおります。 すみませんが、どなたかご指導お願い致します。

  • excelでの行列データの並び替え

    excelで表形式のデータの並び替えをおこないたいのですがいい方法が思いつきません。 どなたか教えて下さい。 具体的には 元のデータは以下の様なフォーマット a b c d e f g h i これを並び替えて a b c d e f g h i としたいということです。 元データの列数は決まっていますが 行数は任意です。

  • エクセルで別シートのデータを抽出

    ~シートA~   A B C D E F G  ┌─────────────┐ 1│ │10│20│30│40│50│60│  │ │───────────│ 2│ │11│21│31│41│51│61│  │4│───────────│ 3│月│12│22│32│42│52│62│  │ │───────────│ 4│ │13│23│33│43│53│63│  │ │───────────│ 5│ │14│24│34│44│54│64│  └─────────────┘ 6  ┌─────────────┐ 7│ │10│20│30│40│50│60│  │ │───────────│ 8│ │11│21│31│41│51│61│  │5│───────────│ 9│月│12│22│32│42│52│62│  │ │───────────│ 10│ │13│23│33│43│53│63│  │ │───────────│ 11│ │14│24│34│44│54│64│  └─────────────┘         ・         ・         ・ ~シートB~   A B C D E F G  ┌─────────────┐ 1│ ▽ │ │ │ │ │ │  │ │───────────│ 2│ │ │ │ │ │ │ │  │○│───────────│ 3│月│ │ │ │ │ │ │  │ │───────────│ 4│ │ │ │ │ │ │ │  │ │───────────│ 5│ │ │ │ │ │ │ │  └─────────────┘ ↑はリストボックスで1月~12月の値が入っている。 上記条件でシートBのリストボックスから選んだ月のデータをシートAの表から該当する月のデータを全て抽出したいのですが、どのようにすればよろしいでしょうか。

  • エクセル 重複のデーター

    Sheet1  A   B       2 A社 商品1      3 B社 商品2    4 A社 商品5   5 C社 商品4     6 F社 商品1  7 D社 商品3    8 E社 商品6    9 C社 商品2 Sheet2 A   B       1 A社       2 B社     3 C社    4 F社      5 G社   6 D社     7 E社     上記のようにSheet1の社名をSheet2に重複の無いように関数で抽出できないでしょうか? 尚、社名は5・6社のとこもあれば30社以上になることもあります 社名の順番は問いません  よろしくお願いします。    

  • 指定した3つのセルのデータを抽出し別表を作成する

    A表(A~F列、1~7行)のうちB、D、F列にデータが入力表示されたデータを抽出して別のB表(A,B,C列、1~7行)を作成するためのエクセル関数をご教授下さい。下図のとおり、F列は同じデータですのでVLOOK関数で表示できるのですが、B,D列にデータが入力されていない場合は、表示しないようにしたいのです。よろしくお願いします。 また、3つのうち一つでもデータがない場合は、表示させない方法でも結構ですよろしくお願いします。 [A表]    A    B    C    D    E   F 1  5    8     9    12    2   ○ 2  4                       ○ 3       7          10       ○   4                          ○ 5  3    4     10    5       ○ 6                          ○ 7                          × [B表]    A    B     C 1  8    12    ○ 2  7    10    ○ 3  4     5    ○ 4 5 6 7

  • 重複するデータの抽出について(エクセル)

    エクセル2003にて重複するデータの取り出しをしたいのですが、 わからないので教えてください。 例えば   A列   B列   C列    D列    E列・・・ 1  色  1回目  2回目  3回目   4回目 2  赤   あ    a      A       0 3  白   い    b      B       1 4  黄   う    c      C       2 5  黄   え    d      D       3 6  黒   お    e      E       4 7  赤   か    f      F       5 : このデータの中から、別のシートのA1に 赤と入力したら、B1にD列のA・Fを抽出 黄と入力したら、B1にD列のC・Dを抽出をしたいです。 VLOOKUP関数を使用してみたのですが、 赤と入力すると、D列のA(1番上のデータ)のみしか抽出出来ず、Fが抽出されません。 重複するデータがあるのはA列のみで、D列には重複するデータはありません。 わかりにくい文章ですみませんが、よろしくお願いします。

  • エクセルでデータの抽出する際に困っています

    エクセルで特定の行のデータを抽出する方法を教えてください。 抽出方法を以下に示します。     A   B   C   D   E   F   G   ---------------------------------- 1l  10   11   0   0   0   0   0 2l  12   13   0   0   0   0   0 3l  14   15   1   2   3   4   5 4l  16   17   0   0   0   0   0 5l  18   19   0   0   0   0   0 6l  20   21   6   7   8   9   10 7l  22   23   0   0   0   0   0 というような感じのエクセルデータに対して、     A   B   C   D   E   F   G    ---------------------------------- 1l  14   15   1   2   3   4   5 2l  20   21   6   7   8   9   10 というように、C~G列が0でない行のA~Gのデータを別シートに抽出したいのですが、 簡単な方法があれば教えていただきたいです。 よろしくお願いします。

  • Excel 重複データの番号を抽出

    Excel:Office2003 OS:WindowsXP excelのデータで A列 B列 1 A 2 B 3 A 4 C 5 D 6 A 7 A 8 B 9 B 10 C 以上のように並んでいるデータを以下の E列 F列 G列 H列 I列 A 1 3 6 7 B 2 8 9 C 4 10 D 5 ようにしたい場合はどのようにしたらいいのか教えてください。 マクロではなく関数で処理をしたいと思っています。 よろしくお願いします。

  • エクセルの関数をお教えください。

    エクセルの関数をお教えください。   1 2 3 あ A B C い D E F う G H I 上記のような、元表があり、 あ・1 → A う・3 → I  と、選ぶことが出来る関数を教えてください。 よろしくお願いいたします。

  • エクセルデータを取り出す

    エクセルで訪問予定を作成しようと思っています。 それで、下記のような表を作成しました。 訪問日を入力して、その訪問日にヒットする会社名とフロアのデータを表から取り出そうと考えています。 しかし、自分がいれた式ではエラーになってしまいます。どこが違うのか教えてください。 「D1」に検索したい訪問日をいれます。 会社名を出す式 =VLOOKUP(D8,A2:C100,1,FALSE) フロアを出す式 =VLOOKUP(D8,A2:C100,2,FALSE) <表>    A     B     C    1 会社名  フロア  訪問日 2  A社    2F   10/7 3  B社    3F   10/21 4  C社    5F   11/1 5  D社    6F   10/1 6  F社    2F   10/1 7  G社    5F   10/21

専門家に質問してみよう