データの集計・表示について

このQ&Aのポイント
  • データを集計・表示するための関数について教えてください。
  • エクセルやgoogleスプレッドシートで、特定のデータのみを別のシートに表示する方法が知りたいです。
  • 新しいデータが入力されるたびに、名前ごとにデータを別のシートに並べたいです。
回答を見る
  • ベストアンサー

データの集計・表示について

エクセルやgoogleスプレッドシートで、下記のようなデータが入力されていたとします。 【元データ(シート)】         A B C D E F 1行目・・・ 山田 国語 英語  理科  社会  音楽 2行目・・・ 鈴木 理科 社会  英語  数学  国語 3行目・・・ 山田 数学 国語  英語  音楽  社会 4行目・・・ 山田 社会 英語  音楽  理科  数学 上記のデータが入力されているシートから、山田さんのデータのみを別のシートへ下記のように 集計?表示?するような関数ってありますでしょうか? 【作りたいデータ(シート)】 山田のデータのみのシート        A B C D E 1行目・・・国語 英語  理科  社会  音楽 2行目・・・数学 国語  英語  音楽  社会 3行目・・・社会 英語  音楽  理科  数学 希望としては、元データシートに5行・6行とどんどんデータを入力をしていく度に、 元データシートA列の名前で判断をし個人別で別シートにデータを1行目から順に並べたいです。 このような事は可能でしょうか? いろいろと調べてみましたがうまく調べられずわからなかったので、 質問させていただきました。 わかる方いらっしゃいましたら、回答をお願いいたします。

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

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

毎日だいたい1つか2つは同系統のご相談が寄せられるFAQですが,ご質問者さんによって, ・理解できなくてもコピーすれば出来るムズカシイ式に飛びつく人 ・作業列を幾つか使って簡単な式だけで出来る方法がいいと思う人 に分かれます。前者の方が8割ぐらいで多いと思いますが。 【前者】 山田シートのA1: =index(Sheet1!a:a,small(if(sheet1!$A$1:$A$999="山田",row($A$1:$A$999),9999),row(a1)))&"" をコントロールキーとシフトキーを押してEnterで入力,右にコピー,下にコピー 【後者】 元のシートのA列: A1: =B1&COUNTIF($B$1:B1,B1) B1以下B列 山田etc C列以降 国語算数理科社会etc 山田シートのA1: =IF(ROW(A1)>COUNTIF(Sheet1!B:B,"山田"),"",ROW(A1)) 以下コピー 山田シートのB1: =IF($A1="","",VLOOKUP("山田"&$A1,Sheet1!$A:$G,COLUMN(C1),FALSE)) 右にコピー,下にコピー 元のシートのA列を他の用途に使うのは絶対に許せない場合は,端っこの邪魔にならないM列とかに「山田1,2,3」を作成してINDEX(MATCH())関数で左側を取ってくることでも出来ます。

kuropon123
質問者

お礼

同じような質問がたくさんあったのが、分からず質問してしまってすみませんでした。 自分自身、よくわかっていない状態でしたので、助かりました。 他の片が回答して下さったものも含め、参考にさせていただきたいと思います。 ありがとうございました。

その他の回答 (2)

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

条件をつけて抜き出し問題で、週に数回この質問コーナーに現れるFAQだ。 それも関数でやりたいという(それしか知らない)質問者からだから困る。 表計算の関数では、抜き出し問題は式(その背後にある考え方)が複雑になって、初心者には難しいものになる。 Googleででも「imogasi方式」で照会し、数個の質問の回答を読めば、1つの式で出来る式は、INDEX、SMALL、MATCHなど組み合わせた式や配列数式を使ったものなどが出てくる。これらは関数の組み合わせた意味さえ初心者、中級者には理解が難しい。全セル複雑な式で埋まる(全式が再計算される可能性あり)。 興味あれば勉強してみて。 ーー それよりフィルタなどの操作による解決や ピボットによる解決を勧める。 ーー 上記imogasi方式では、該当の(山田の)行に上から連続番号を関数で振る。その作業列を1列使ってしまうが。 そして(同一シートか)別シートなりに、第1行目は、元シートの連番の1をMATCH関数で探して、第2行目には連番の2 をMATCH関数で探して、・・・、1セルずつデータを新シートなどに持ってくる。 セルの式は縦方向、横方向の2回の式の複写で出来る。 あと余分な行まで式を複写しておくためのエラーの表示を抑止するテクニックなどが必要。 これも全セル式で埋まる。

kuropon123
質問者

お礼

同じような質問がたくさんあったのが、分からず質問してしまってすみませんでした。 自分自身、よくわかっていない状態でしたので、助かりました。 他の片が回答して下さったものも含め、参考にさせていただきたいと思います。 ありがとうございました。

kuropon123
質問者

補足

今回は一番初めに回答を下さった方をベストアンサーとさせていただきます。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.2

 山田のデータのみのシートのデザインですが、      A列  B列  C列  D列    E列 1行目  国語 英語 理科 社会 音楽 2行目  数学 国語 英語  音楽 社会 3行目  社会 英語 音楽 理科 数学 という形式では、誰のデーターなのか分かりませんから、以下の様にされては如何でしょうか。      A列  B列  C列  D列    E列 1行目  山田 2行目  国語 英語 理科 社会 音楽 3行目  数学 国語 英語  音楽 社会 4行目  社会 英語 音楽 理科 数学  尚、A1セルに入力した「山田」という文字列は、関数処理の判定でも使用しますから、元データーのA列に入力した名前と同じ文字列にして下さい。(「山田のデーター」等の様に、余計なものは付け加えない様にして下さい)  そして、今仮に、元データーが存在するシートのシート名がSheet1であるものとした場合、山田のデータのみのシートのA2セルには、次の数式を入力して下さい。 =IF(ROWS($2:2)>COUNTIF(Sheet1!$A:$A,$A$1),"",INDEX(Sheet1!B:B,SUMPRODUCT(ROW(Sheet1!$A$1:INDEX(Sheet1!$A:$A,MATCH("゛",Sheet1!$A:$A,-1)))*(Sheet1!$A$1:INDEX(Sheet1!$A:$A,MATCH("゛",Sheet1!$A:$A,-1))=$A$1)*(COUNTIF(OFFSET(Sheet1!$A$1,,,ROW(Sheet1!$A$1:INDEX(Sheet1!$A:$A,MATCH("゛",Sheet1!$A:$A,-1)))-ROW(Sheet1!$A$1)+1),$A$1)=ROWS($2:2)))))  次に、山田のデータのみのシートのA2セルをコピーして、B2~E2の範囲に貼り付けて下さい。  次に、山田のデータのみのシートのA2~E2の範囲をコピーして、同じ列の3行目以下に貼り付けて下さい。  後は、山田のデータのみのシートのA1セルに 山田 と入力するだけで、抽出結果が表示されます。

kuropon123
質問者

お礼

詳しい説明ありがとうございました。 自分自身、よくわかっていない状態でしたので、助かりました。 他の片が回答して下さったものも含め、参考にさせていただきたいと思います。 ありがとうございました。

kuropon123
質問者

補足

今回は一番初めに回答を下さった方をベストアンサーとさせていただきます。

関連するQ&A

  • Excel 二つの表を用いたデータ整理

    かなり困っています。 (1)二つのエクセル表が存在 (2)ファイル1には↓のようにデータが並んでいます    A列  B列  C列  D列    生徒A 生徒B 生徒C 生徒D 行1 国語27 国語34 国語54 算数34 行2 数学36 家庭25 算数23 理科23 行3 理科55 理科44 理科21 英語44 行4 社会87 社会33 社会32 行5 英語54  (3)ファイル2は以下のようになっています    A列  B列  C列  D列  E列        国語  算数  理科  社会 行1 生徒A 27   36   55   87 行2 生徒B  (4)要するに、ファイル1のデータから必要な数値を抽出して ファイル2のデータに移し変えたいのですが、ファイルAの中の名称とデータ数が異なる場合があることもあり、整理はコピペしかないのかと半ばあきらめています。 とはいえデータの数は4000…正直なきたいです…何かいい方法はありませんか?

  • Accessの集計、0件のデータを表示させるには?

    Accessで選択クエリの集計を作りたいのですが…。 例えば、誰が何の質問を受けたか、というような、以下のようなテーブルがあるとします。 【A:データテーブル】 Aさん 数学 Aさん 理科 Bさん 社会 Aさん 理科 Bさん 理科 【B:教科マスター】 1 数学 2 社会 3 理科 AとBはリレーションでむすんで?あります。 で、Aテーブルを元に集計を使って以下のようにしたいのです。 Aさん 理科 2件 Aさん 数学 1件 Aさん 社会 0件 Aさんだけを抽出するのは、「抽出条件」で絞ればいいと思います。 教科のそれぞれの件数を出すには、「集計」で教科ごとにグループ化して教科をカウントすればいいと思うのですが、どうしても0(ゼロ)件のデータが出てきません。(上記の例で言うと、「Aさん 社会 0件」が出ない) 0を表示させるにはどこに何を書いたらいいのでしょうか?

  • Excelでデータを取り出したいとき

    初めて質問させてもらいます。     A君   B君 国語  85   社会      87  数学  90  95 理科      83 英語  97 このような感じで、点数80点を超えた場合のみ点数を入力していくとした場合に、別のシートにA君・B君が取った点数を、教科などを気にせずに80点以上の点数を表にまとめるという形で抽出することは可能でしょうか? また、これと同じような表が複数個ある時に、それらすべてをまとめて表にする、ということもできるのでしょうか?? VLOOKUPなどでやってみたのですがどうしても空欄ができてしまい、表がどうしても見にくくなってしまいます。どなたがご助力お願いします。

  • VBAでソートして、貼り付けのやり方

    (条件及び操作) 1 シートが2つあります。(元データ と 名簿シート)という名前。 2 名簿シートのH2に数字を入力する。元データのシートの1行目にある、番号と一致する列を操作する。 3 元データの対象の列で、まずD列(組ごと)に、1組・2組をソートする 4 次に、対象の列(科目:国語や理科など)事に、○をソートする 5 ソート後に、番号、名前、出身と○をコピーする。 6 その後、名簿シート(1組でソートしたものは、B2、2組でソートしたものはE2)に貼り付ける 7 対象の列の科目名(国語なら国語を)をA1に貼り付ける 8 元データのソートを解除する (備考) 番号も科目も100ぐらいあります。 これらの(条件及び操作)を元に、名簿シートのH2に任意の数字を入力して、元データの対象の列を上記(1~8)の操作を行いたいと思います。 《シート名:元データ》 A列   B列   C列   D列   E列   F列   G列   H列   I列   ・・・                       1    2     3     4    5   ・・・   番号  名前   出身  組    国語  理科   英語   数学  社会  ・・・ 001 Aさん  東京    1     ○                ○   ○  002 Bさん  沖縄   1     ○                 ○   ○  003 Cさん  鹿児島  1     ○                     ○  004 Dさん  青森    1     ○                     ○  005 Eさん  北海道  2     ○          ○  006 Fさん  京都   2     ○          ○     ○ ・ ・ ・ 《シート名:名簿シート》      A列   B列   C列   D列   E列   F列   G列   H列    国語     1組              2組     番号   名前   出身  番号   名前   出身  番号入力      お忙しい中、大変申し訳ございませんが、どうぞよろしくお願いします。 また、質問の内容などがわかりづらいなどの事がありましたら、ご指摘ください。

  • データを集計したいのですがどのように数式を作れば?

    初めて質問箱に投稿させていただきます。よろしくご指導下さい。 ※ シート(1)にデータ、シート(2)に結果を求める。 ※ シート(1)のA列に大分類(8項目)、B列に中分類(35項目)、C列に小分類(15項目)、D列に金額   を入力します。  これを2行から99行に色々な組み合わせのデ-タを入力したシートを基にして    ※ シート(2)のB列2行~D列2行に、シート(1)のA列~C列のデータの中で組み合わせの1番多い組   み合わせを表示し、シート(2)のE列2行にその組み合わせの金額の合計額を表示する。 ※ シート(2)のB列3行~E列3行以降の行に、シート(1)の組み合わせの2番目以降の順に表示する   という具合に、すべての組み合わせとその計金額を表示する。 ※ このような求め方をするためには、どのような数式をつくればよいのでしょうか。ご指導ください。                                                               シート(1)の例       A列      B列      C列     D列 1行  大分類    中分類    小分類    金 額 2行    3       B       あ      1,000 3行    2       C       あ        500 4行    3       B       い        500 5行    1       A       う       1,500 6行    2       C       あ      1,000 7行    3       A       う       1,500 8行    3       B       あ        800 9行    2       C       あ        600 10行   1       A       う         700 11行   3       A       あ         200 12行   3       B       あ       1,000 13行   5       A       い         100 14行   2       C       あ         200 15行   3       A       う         700 ~ 99行 計                      10,300   シート(2)の例  (上記シート(1)の例の集計結果をシート(2)の例のように表示したい)       A列   B列    C列     D列      E列 1行   回 数  大分類  中分類   小分類   金  額   2行    4    2      C      あ     2,300 3行    3    3      B      あ     2,800    4行    2    1      A      う      2,200 5行    2    3      A      う      2,200 6行    1    3      B      い       500 7行    1    3      A      あ       200 8行    1    5      A      い       100 9行 10行 ~ 30行   計                       10,300      

  • Excel 並べ替え フォームから実行 VBA

    フォームに、重複しないデータを入力し、 それを並び替えしたいと思っています。 Excel上に図の左側ようなデータを入力してあります。 名前 科目 点数 木村 英語 50 小林 英語 40 瀬戸 英語 5 岡村 英語 70 木村 国語 80 小林 国語 20 瀬戸 国語 40 岡村 国語 10 ・ ・ ・ 重複しないデータをフォームのリストボックス上に書き出します。 例 木村   英語 小林   国語 瀬戸   数学 岡村   社会       音楽       理科 ・ ・ ・ リストボックスの行を選択し、 上や下などを押したら、Excel上のデータが右図のように 並び替えられて欲しいのです。 何か良い方法はありますか? 説明不足の点があるとはおもいますが、 回答よろしくお願い致します。

  • ACCESSでクロス集計風に表示したい

    以下の様なテーブルを 科目 テスト 得点 ------------------ 国語 1中間 50 国語 1期末 60 国語 2中間 55 国語 2期末 65 国語 3期末 70 英語 ・   ・  ・  ・   ・  ・  ・   ・ 数学 1中間 70 数学 1期末 80 数学 3中間 75 数学 2期末 70 数学 3期末 85 以下のような表形式で表示したいと考えてます。    1中間 1期末 ・ ・ 2期末 3期末 国語  60  55  ・ ・  65  70 英語   ・   ・   ・ ・  ・   ・ 数学  70  80  ・ ・  70  85 クロス集計クエリで見た目は上記の表形式になったのですが、 表示されるデータシート?で値の編集が出来ませんでした。 (集計結果なので当然?) 科目及びテストは今後追加される可能性が高いので テーブルまたはフォームを固定で持つことは出来ません。 何か良い方法はないでしょうか?

  • エクセルの質問です。

    エクセル2003を使用しています。 元データには   A   B(国語点数) C(算数点数) D(社会点数) E(理科点数 F(英語点) G(合計) 1 名前(1)   90        85        70       100      20    365 2 名前(2)   85        20        40       70       50    265    3 名前(3)   50        90        60       70       80    350 というデータを     A    B    C 1 名前(1)  国語  90 2        算数  85 3        社会  70 4        理科  100 5        英語  20 6        合計  365 7 名前(2)  国語  85 8        算数  20 9        社会  40 10       理科  70 11       英語  50 12       合計  265       ・       ・       ・ となるように表示していきたいのですが… ただのセルのコピーでは人が連続してコピーできませんでした。 何かいい方法があるかたはご教授ねがいます。 よろしくお願いします。   

  • 文字検索&比較するマクロ

    10年前と現在の生徒の成績を比較する作業をしています。 作業内容は、 シート1(10年前) 学年 国語 数学 理科 社会 英語 音楽 1-1-1 90 85 65 78 89 合格 1-1-2 65 54 43 43 92  不可   ・   ・   ・ 3-10-40 シート2(現在) 学年 国語 数学 理科 社会 英語 音楽 1-2-3 94 65 75 78 89 合格 2-1-4 75 64 43 43 92  不可   ・   ・   ・ 3-8-42 上記のようなデータがそれぞれsheet1,2に入っています。 私がやろうとしているのは、 1.シート1の学年をシート2に参照させて一致すればシート1と2の各項目を比較させる。 2.シート1とシート2の各項目の点数が同じなら次の項目を比較し、違った時点でシート2の該当項目セルの色を変える。 3.シート1の学年がシート2にない場合はシート3にピックアップする。 ことを試みています。 学年の並びは変えたくないのでこのままで比較を行っていきます。 プログラムを作ってみたのですが、うまくいきません。 どなたかヒントだけでも構いませんのでご教授ください。 本当ならここに私が作成したプログラムを記載するべきなのですが、データを学校に置いてきてしまったため記載できません。申し訳ありませんがよろしくお願いします。

  • エクセルで別のシートのデータを5行おきに参照して集計したい

    エクセルで別のシートのデータを5行おきに参照して集計したい 別のシート(sheet1)のデータを5行おき(C5・C10・C15~)を参照して、別のシート(sheet2)の表(D1・E1・F1~)に順番に書き込たいのです。どなたか教えてください。宣しくお願い致します。 投稿日時 - 2006-02-21 13:11:45 通報する エクセルで別のシートのデータを5行おきに参照して集計したい 別のシート(sheet1)のデータを5行おき

専門家に質問してみよう