エクセル初心者必見!【基データ】から重複するIDと氏名をまとめ、作業内容を列ごとに並べる表を作成する方法とは?

このQ&Aのポイント
  • エクセル初心者の方におすすめ!【基データ】から重複するIDと氏名をひとつにまとめ、作業内容を列ごとに並べる表を作成する方法をご紹介します。
  • エクセル2010を使用して、膨大なデータを扱う際に便利な方法を提案します。【基データ】の中から重複するIDと氏名を一つにまとめ、作業内容を列ごとに並べる表を作成する手順を詳しく解説します。
  • エクセル2010の使い方を初めて学ぶ方におすすめ!【基データ】から重複するIDと氏名をひとつにまとめ、作業内容を列ごとに並べる表を作成する方法を丁寧に解説します。効率的なデータ整理が可能なため、膨大なデータの処理に困っている方には特にオススメです。
回答を見る
  • ベストアンサー

エクセル2010 表の作成について

エクセル初心者です。 作成したい表の作り方で、方法がありましたら教えていただきたく質問させて頂きました。 【基データ】は、 ・個人のID ・氏名 ・作業内容(A~F) ・上記作業の完了日 という一覧となっております。 とあるデータベースから抽出したもので、 抽出段階でこの配列を変更することはできません。 この【基データ】をもとに、 重複するIDと氏名をひとつにまとめて、 作業内容を列ごとに並べ、 該当するセルに完了日を表示させる という表を作成したいのですが、 なにか方法はありますでしょうか? 【基データ】には膨大な量のデータがあるので、 良い方法があると助かります。 簡単な図を添付します。 説明がわかりづらく申し訳ございませんが 宜しくお願い致します。

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

  • ベストアンサー
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

ご希望の集計をするにはピボットテーブルを利用するのが簡単です。 元データのリストを選択し、挿入タブのピボットテーブルで行フィールドにIDと氏名、列フィールドに作業、Σ値に完了日をドラッグしてピボットテーブルを作成します。 ピボットテーブルのデータフィールドで右クリックし「その他のオプション」で「値の集計方法」を「最大値」にし、「表示形式」でご希望の日付形式を選択します。 もう一度右クリックして「ピボットテーブルオプション」からレイアウトと書式タブの「更新時に列幅を自動調整する」のチェックを外し、集計とフィルタタブで「列の総計」と「行の総計」のチェックを外します。 さらに表示タブで「従来のピボットテーブルのレイアウトを使用する」のチェックを入れ、「展開折りたたみボタンを表示する」のチェックを外します。 ちなみに、データの追加に合わせて自動的にピボットテーブルの範囲を拡大するには、元のリストをホームタブの「テーブルとして書式設定」からテーブルとして設定しておいてからピボットテーブルを作成してください。

ameryutaro
質問者

お礼

MackyNo1様 教えていただいた通りの設定で表を作成することができました。 「ピボットテーブル」自体を知らなかったので、勉強になりました。 大変助かりました。 有難うございました。

ameryutaro
質問者

補足

早速のご回答ありがとうございます。 教えて頂いた通りに作成しましたらできました! 但し、各個人の集計が表示されており、 個人の集計は不要ですのでこれを表示させない方法はありますでしょうか? (例) 田中     2014/4/25 田中 集計  2014/4/25 度々の質問で申し訳ございませんが、 教えていただけますと幸いです。 宜しくお願い致します。

その他の回答 (6)

  • coldblade
  • ベストアンサー率20% (2/10)
回答No.7

ピボートで簡単です。

ameryutaro
質問者

お礼

coldblade様 ご回答いただきまして有難うございました。 今回は、MackyNo1様に教えていただいた設定で表を作成することができました。 画像を添付していただきとてもわかりやいです。 有難うございました。

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.6

>エクセル初心者です。 >この【基データ】をもとに、重複するIDと氏名をひとつにまとめて、作業内容を列ごとに並べ、該当するセルに完了日を表示せるという表を作成したいのですが、なにか方法はありますでしょうか? 丸投げ状態ですが初心者には数式の解読が無理でしょう。 入門書を手元に置いて簡単な処理から手掛けるようにしてください。 幾つかの関数を組み合わせて数式を組めば目的通りの処理は可能です。 Excel 2013で検証した結果を添付しますので、各数式の動作を確認してみると良いでしょう。 F2=IF(COUNTA(A:A)>SUMPRODUCT(MAX(($A$2:$A$20=$F1)*($B$2:$B$20=$G1)*ROW($A$2:$A$20))),INDEX(A$2:A$20,SUMPRODUCT(MAX(($A$2:$A$20=$F1)*($B$2:$B$20=$G1)*ROW($A$2:$A$20)))+1,1),"") F2セルをG2セルへコピーします。 H2=IF(SUMPRODUCT(MAX(($A$1:$A$20=$F2)*($C$1:$C$20=H$1)*ROW(H$1:H$20)))>0,INDEX($D$1:$D$20,SUMPRODUCT(MAX(($A$1:$A$20=$F2)*($C$1:$C$20=H$1)*ROW(H$1:H$20))),1),"") H2セルをI2からM2セルまでコピーします。 F2からM2セルを下へ必要数だけコピーします。 但し、検証した元データの最大行番号は20になっていますので実際のデータでは最大の行番号に変更してください。 数式の説明が必要のときは不明な点を補足してください。

ameryutaro
質問者

お礼

bunjii様 ご回答有難うございました。 私自身でもとても少ないのですが知っている限りの関数(IFやVLOOKUP等)で試してみましたが、 とても手間がかかり断念しました。 なにかもっと効率の良い方法があるはずと思い質問させていただきました。 今回はピボットテーブルを使って表を作成することができましたが、 関数でのやり方もあると教えていただき勉強になります。 詳しくご丁寧に教えていただき有難うございました。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.5

>個人の集計は不要ですのでこれを表示させない方法はありますでしょうか? 行フィールドで右クリックし「~の小計」をクリックして、そのチェックを外してください。

  • yosifuji20
  • ベストアンサー率43% (2675/6115)
回答No.4

>>エリアごとに一枚ずつシートを作っていった方が 私の趣旨はそういうことでなく、最後の料金表は一つとするということです。 つまり 距離ランク*100+サイズランクという式を設定すると(ランクが二けたなので*100とします。)料金の表は Key   料金 0101   200 0102   300 0103   400 0201   250 0202   350 .. .. .. 1912  2000 この表のkeyは上2桁は距離のランク、下2桁はサイズです。 ここに0202というのは 距離ランクが2でサイズランクは2の場合の料金という意味です。 このkeyは前の答えの通り、元データの行ごとに式で求めます。 もちろんIndexやMatch関数でも可能ですが、これらの関数は初心者にはなかなかわかりにくく、万が一トラブルになった時に修正が難しいように思います。 ちょっと複雑でもよりやさしい関数を使う方がメンテが容易かなと思います。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんにちは! VBAになってしまいますが一例です。 元データはSheet1にあり、Sheet2に表示するとします。 尚、Sheet3を作業用のSheetとして使用していますので、 Sheet3は全く使用していない状態にしておいてください。 Alt+F11キー → メニュー → 挿入 → 標準モジュール → VBE画面のカーソルが点滅しているところに ↓のコードをコピー&ペースト → Excel画面に戻りマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub Sample1() 'この行から Dim i As Long, lastRow As Long, c As Range, r As Range Dim wS2 As Worksheet, wS3 As Worksheet Set wS2 = Worksheets("Sheet2") Set wS3 = Worksheets("Sheet3") Application.ScreenUpdating = False With Worksheets("Sheet1") .Range("A:A").AdvancedFilter Action:=xlFilterInPlace, unique:=True .Range("A:B").Copy wS2.Range("A1") .ShowAllData .Range("C:C").AdvancedFilter Action:=xlFilterInPlace, unique:=True .Range("C:C").Copy wS3.Range("A1") .ShowAllData wS3.Range("A1").Sort key1:=wS3.Range("A1"), order1:=xlAscending, Header:=xlYes lastRow = wS3.Cells(Rows.Count, "A").End(xlUp).Row Range(wS3.Cells(2, "A"), wS3.Cells(lastRow, "A")).Copy wS2.Activate ActiveSheet.Range("C1").Select Selection.PasteSpecial Paste:=xlPasteAll, Transpose:=True .AutoFilterMode = False For i = 2 To .Cells(Rows.Count, "A").End(xlUp).Row Set c = wS2.Range("A:A").Find(what:=.Cells(i, "A"), LookIn:=xlValues, lookat:=xlWhole) Set r = wS2.Rows(1).Find(what:=.Cells(i, "C"), LookIn:=xlValues, lookat:=xlWhole) .Cells(i, "D").Copy wS2.Cells(c.Row, r.Column) Next i wS3.Cells.Clear End With Application.ScreenUpdating = True MsgBox "処理完了" End Sub 'この行まで ※ >【基データ】には膨大な量のデータがあるので というコトですので若干時間を要するかと思います。m(_ _)m

ameryutaro
質問者

お礼

tom04様 ご回答いただきまして有難うございました。 今回は、MackyNo1様に教えていただいた設定で表を作成することができました。 とても詳しく丁寧に教えていただき恐縮です。 マクロの存在は知っておりましたが、どうしようするのかわからなかったので 勉強になります。 有難うございました。

  • yosifuji20
  • ベストアンサー率43% (2675/6115)
回答No.1

考え方としては まず元のデータの左に =ID&作業内容という式を作ります IDがB列、作業内容がD列ならば  A2=B2&D2 という感じです。これをデータの行数だけセットします。 次に  ID、作業内容、完了日 に昇順で並べ替えをします。 そのあとで、データ(D)の集計機能でA列をKeyにして集計をします。 その時に集計項目は完了日の最大値と指定します。 これで目的のデータができます。 表示を変えれば明細データを隠して答え行だけを表示することができます。 細かな使い方はヘルプでお調べください。

ameryutaro
質問者

お礼

yosifuji20様 ご回答いただきまして有難うございました。 今回は、MackyNo1様に教えていただいた設定で表を作成することができました。 いろいろな方法があるのですね。 勉強になります。

関連するQ&A

  • Excelで作成した表の中から重複している数値を知りたい

    仕事でExcelで作成した表について教えていただきたいことがあります。 項目がたくさんある表なのですが、そのなかのひとつの項目で、重複する番号がたくさんある項目があるのですが、どれが重複した番号かを知りたいのです。500行くらいになる表なので、作業が大変なのですが・・・。現在はいったん、その項目を番号順にデータの並べ替えをしてから、データの集計を行い、番号の重複している行を色分けして、またデータの並べ替えで元の行番号順に戻し、色がついている行が重複しているんだなと思いながら作業をしています。 かなりの行数なのでその作業がすごく大変です。 関数などよくわからないのですが、何か簡単にできる方法がないかなといつも考えています。 例えば、並び替えなどをせず、作成している表の横に、その項目の重複している番号を表示する、とか、そういったことができないものでしょうか? 分かりにくい書き方で申し訳ありません・・・。

  • Excelの表作成について

    はじめまして。 上司に頼まれまして営業所と従業員についての管理表をExcelで作っております。 そこで是非ご教示いただきたいのが、添付ファイルのA型の表をB型の表に効率的に変換する方法です。 最初は手作業でやっておりましたが、データが膨大で、この調子だと期日までに間に合いません。 何とぞよろしくお願いいたします。

  • エクセルの表から重複した内容を抽出したい

    エクセルのデータから、重複した内容を抽出するには、何か良い方法がありませんか?

  • Excelで、表を作成したいのですが…

    データの整理を、各フォルダに 個人・団体名と、会員番号をつけて登録月日の順で表を作っていました しかし、先日 HDが壊れたため Excelのシートが消えてしまいました データの入ったドライブは無事だったので、  [フォルダ名をコピー]⇒[セルに貼付け] を繰り返せば同じシートが作成できます この作業を簡単なマクロで自動化する方法はないでしょうか 約1000件分なので時間を掛ければ何とかなるとは思いますが、他にも消失したデータがあり困っています どうか、よろしくお願いします//

  • IDの大きい方を抽出

    Access2019 重複クエリで作成して、表示迄出来ました。 重複クエリを基に、クエリでIDの大きい方を抽出しようと出来ないものかと。。 重複クエリ表示例 日付 識別番号 名称 ID 2023/12/23 1234 りんご1 123 2023/12/23 1234 りんご1 150 → 抽出データ 2023/12/23 5678 みかん2 234 2023/12/23 5678 みかん2 300 → 抽出データ 2023/12/23 5678 みかん2 350 → 抽出データ ご教授頂ければ幸いです。 以上、宜しくお願い致します。

  • 関数を使って重複するデータを抽出するには?

    今各年度の重複データの抽出の方法がわからなくて困っています。 H20年度         平成21年度 ID   氏名   住所  ID   氏名   住所 102 山田太郎  東京  505 山田次郎  福岡 205 山田花子  京都  603 山田五郎  滋賀 505 山田次郎  福岡  205 山田花子  京都 のような表があって H20と21で重複する人を別表に抽出したり、逆に重複しない人を抽出するにはどのような関数を使えばいいのでしょうか? よろしくお願いします

  •  エクセルを使った作業分担表の作成の仕方

     エクセルを使った作業分担表の作成の仕方 画像添付にあるシフト表から下記の作業分担表を 作成するの効率のよいやり方をご存じの方いらっしゃらないでしょうか エクセルを使えばできると思うのですが、どうでしょうか    9  10  11  12  13 14  15 16 17 氏名 木崎 ←一一一一一一一→ 宮元 ←ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー→ 尾崎 ←---------------------------------------→ 大田 時間だけは元から入力されていますが、出退勤を示す矢印と氏名は毎日 変わるため、いつも手書きです。  それをシフト表から自動転記できるにしたいのです。

  • Excelで表を作成する・・・

    お世話になります 今まで疑問に感じずに作業していましたが??????? 色々な構成の表を作る場合、とにかく細かな列、行を寄せ集めて コツコツ手直しを繰り返して思い通りの表などを作成していましたが この手法は一般的なのですか? とにかく面倒で一部は広く、一部は狭くと場面ごとに複雑なので 最初から膨大な列を幅を狭く集約して実行していますが そもそも、そのやり方が正しいのでしょうか??? ちなみに周りの仲間も同じ事をゴクゴク自然にやっている感じですが? Excelに詳しい方、また、別なやり方をしている方 なんでもアドバイスください!

  • EXCELでの月別 日別の勤務表同時作成について

    現在、EXCEL2007にて、シート1には月別のシフト表を年と月を変えると自動でその月の日にち、曜日も変わるように作成しております。縦軸には氏名、横軸には日にち、曜日を並べており、縦に各人の出勤、退社を記入させるように作成しております。このシート1をもとに、別シートで日にちを選ぶと、その日に入っている氏名と勤務時間をガントチャート形式(時間帯別)で、自動的に表示作成できるようにしたいのですが、関数がわからず、現在、苦戦しております。 どなたか、月別勤務表から、その月のある日にひ分だけを抽出し、その日に入っている者のシフト時間を表示できるようにするための方法を教えていただけないでしょうか? シート1のサンプル  ××××年××月          1日 2日 3日 4日・・・・          月  火  水  木・・・・・    A君 出勤  9:00     退社 12:00 B君 出勤  10:00     退社  19:00 上記のような表で、たとえば、1日(月)にシフトに入っている者だけを抽出し、別シートで 日別のガントチャートを作成したいです

  • 集計表、グラフの作成について

    いつもお世話になっております。 AccessのDBからの集計表、グラフの作成につてお聞きしたいです。 AccessでEXCELのような集計表を作る場合、クロス集計クエリかピボットテーブルを使用するかと思うのですが、こういった表の体裁は変更がききませんよね? 例えば会議で使うグラフや表の資料を作成する場合、AccessのDBのほうから必要なデータ(ある程度集計抽出したデータ)をエクスポートしてEXCELのピボットテーブルで表を作成し、このデータを別シートにコピーして表の体裁の変更やグラフの作成をしています。 内容によっては結構時間がかかるので、表を作成するのに何か効率の良い方法はないでしょうか?

専門家に質問してみよう