
いつもお世話になります。今回もよろしくお願いします。
現在1つのシートに
表A:
ロット 日付 処理数 板数…
ab 1/4 1000 2
ab 1/5 2800 2
表B:
日付 良品 不良1 不良2 使用機…
1/5 1000 10 15 4
1/5 900 8 5 2,3
1/6 2500 20 13 2
というようなデータが、1月~現在まで、機種ごとに数シートにわたって入力されています。(表AとBは、横並びになっています。)このデータを別シートに必要な箇所のみ日付ごとに集計し、下記のようにAとBを一つの表にまとめたいのです
日付 機種 板数 良品 不良1 不良2 使用機
1/4 101 2
1/5 101 4 1900 18 20 2,3,4
1/5 102 12 …
1/5 103 20 …
1つネックなのが、各機種で稼働日が統一でない点です。ある機種は完全週休2日、他は日曜も稼動したりしています。
自分で考えたやり方としては、各機種ごとに集計シートを作り、表Aで一度、データ→集計(日付ごと)にして、コピーしておき、表Bで同様に集計し、コピーする。その後別シートに日付作成しておき、日付を基準としてVLOOKUPでもってこないといけないのかな?と思っています。
ですが、この時面倒なのが、使用機が同日付内に数機使った場合、重複しないように書き出したいので、結局は全てのデータを目で確認しないといけません。しかも、10機種以上あるので、今後全ての機種を毎月この作業をするのは手間がかかりすぎてしまいます。
これをなんとか簡単に、できればVBAで持っていける方法はないものでしょうか。
わかりにくいと思いますので、不明な点は補足させていただきます。お手数がよろしくお願い致します。
No.1ベストアンサー
- 回答日時:
こんにちは(^^)
少し整理させてください。まず、データベースは、機種別シートの中に表Aと表Bがある状態ですね。たとえば、Accessなどのデータベース管理ソフトでこれを作成する場合は、表Aと表Bは別テーブルで、あるフィールド(列)をキーとして、関連づけさせることになります。集計を行う場合、まず、複数のテーブル(表)の中からキーとするフィールドを決めて、集計に必要なフィールドを集め、統合した新たなテーブルやフォームを作ることになりますが、この作業はクエリーという機能を使って進めると便利でしょう。
まず、データを統合してから、ピボットテーブルで集計されるとスムーズに行くように思われます。ただ、統合がややこしいかもしれません。
新しいシートを立ち上げ、[データ]>[外部データ取り込み]>[新しいデータベースクエリ]とします。データベースタブのExcel Filesを選択>[OK]>データベース名で、ファイルを選択>[OK]
ここで、ファイル内の各Sheetがエクスプローラスタイルで表示されますので、統合するテーブル選択します。表示されない場合は表の作り方に問題がありますので、元のファイルの表を少し変更する必要があるかもしれません。ふつう、フィールド名が先頭行にきていれば認識してくれます。また、表A,Bは同一シート内にあるので、同一テーブルと見なされますね。できれば、どちらかをいったん別シートにコピーするなりして、そのシートを参照したほうがいいでしょう。
フィールド名がすべて表示されますので、統合・集計に必要なものはすべて選択して[>]>[OK]、おそらくクエリーを使って編集する旨のメッセージが出ますので、[はい]または[OK]とすると、MicrosoftQuelyが立ち上がります。(もしかするとMicrosoftQuelyは標準インストールでインストールされなかったかもしれないので、入っていなければ、追加削除で追加しておいてください。)リレーションシップウインドウに、それぞれのテーブルのフィールド名が表示されていますので、日付をキーとする場合は、”日付”をドラッグして、一方のウインドウの"日付"から他方ウインドウの"日付"に重ねてください。これで、MicrosoftQuelyを閉じると、日付をキーとする新しいテーブルができます。このテーブルを、ピボットテーブル集計にしたら良いと思われます。また、この操作はマクロに記録できます。
普段使い慣れていない機能を使うことになると思われます。他の回答でもっと良いものが出るかもしれませんが、チャレンジしてみてはいかがでしょう。説明は長文ですけど、各操作の詳細はヘルプで調べてみてください。
TTakさん、いつもありがとうございます。
そか、VBAにこだわる必要はないんですね!ピボットテーブルは初めて使うので時間かかるかもしれませんが、頑張ります!
わからなければ、またお願いします。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 複数セルデータを別シートの単一セルにコピーしたい。(詳細をご参照ください) 1 2022/12/14 15:08
- 中途・キャリア 契約社員で在職中ですが、正社員目指して転職活動中です。 20代半ばの男です。 2社から内定を頂きまし 5 2022/04/29 13:39
- Excel(エクセル) VBA ふたつの同じ様式シートのセルをコピーしたい 2 2023/03/08 15:28
- Excel(エクセル) シート参照を含む数式を連続コピー 3 2022/12/10 11:42
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Excel(エクセル) Excel、同じフォルダ内のExcelファイルの特定シートのみを1つのファイルに集約したい 8 2022/09/07 15:12
- その他(Microsoft Office) 従業員増減対応で当番種類の増減対応な当番表 21 2022/07/19 07:30
- Excel(エクセル) 【マクロ】同じフォルダ内にある複数ブックから1つのブック内の1シートにデータを集めたい 6 2022/09/28 18:16
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- Excel(エクセル) vba 同じブック内での転記について 4 2023/01/15 14:42
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Microsoft 365 Basic サブスク...
-
Accessのクエリの結果を、既存...
-
access2021 強制終了してしまう
-
access2021 VBA メソッドまたは...
-
Access Error3061 パラメータが...
-
Access VBA [リモートサーバー...
-
アクセスの更新クエリでカレン...
-
ACCESS VBA でのエラー解決の根...
-
AccessVBAで任意の複数リンクテ...
-
Microsoft365にAccessってあり...
-
Accessのクエリで、replace関数...
-
Excelを開く時と閉じる時に一度...
-
列が255以上のCSVファイルをAcc...
-
Accessのフォーム上のテキスト...
-
エクセルのVBAについて教えてく...
-
Access で半角スペースと全角ス...
-
MS.Access でサブフォーム付の...
-
Accessのレポートについて
-
access2019の起動が遅い
-
access2021 メッセージボックス...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Microsoft 365 Basic サブスク...
-
Accessのクエリで、replace関数...
-
access2021 強制終了してしまう
-
ACCESS VBA でのエラー解決の根...
-
Access VBA [リモートサーバー...
-
Accessのスプレッドシートエク...
-
Accessのレポートについて
-
access2021 VBA メソッドまたは...
-
Access Error3061 パラメータが...
-
access2019 チェックボックスと...
-
Accessのクエリの結果を、既存...
-
accessでlaccdbファイルが削除...
-
Access VBA を利用して、フォル...
-
accessデータを指定したExcel、...
-
Accessのリンクテーブルのパス...
-
列が255以上のCSVファイルをAcc...
-
Accessのクエリの印刷設定
-
Accessでレポートを印刷する時...
-
Accessフォームの配色テーマを...
-
Accessデータベースに含まれる...
おすすめ情報