![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
No.9ベストアンサー
- 回答日時:
No.8です。
>表に空欄があっても問題ないのでしょうか?
もちろん空白があっても問題ないはずです。
前回の画像の配置で、行方向・列方向にはいくらデータがあっても対応できます。
ただ投稿後思ったのですが、
D列「PART」のデータが各「UNIT」にすべて存在すれば問題ないのですが、
D列データが「UNIT」の中に存在しない!というコトはないですよね?
そうであれば前回のコードで大丈夫なのですが、万一「UNIT」にない場合のエラー処理のために
↓のコードに変更してみてください。
Sub Sample2() '//この行から//
Dim i As Long, k As Long, lastRow As Long
Dim c As Range, r As Range
lastRow = Cells(Rows.Count, "D").End(xlUp).Row
If lastRow > 2 Then
Range(Cells(3, "E"), Cells(lastRow, "E")).ClearContents
End If
For i = 3 To Cells(Rows.Count, "A").End(xlUp).Row
Set c = Rows(2).Find(what:=Cells(i, "A"), LookIn:=xlValues, lookat:=xlWhole)
For k = 3 To Cells(Rows.Count, "D").End(xlUp).Row
Set r = Columns(c.Column).Find(what:=Cells(k, "D"), LookIn:=xlValues, lookat:=xlWhole)
If Not r Is Nothing Then '//←追加★//
With Cells(k, "E")
.Value = .Value + r.Offset(, 1) * Cells(i, "B")
End With
End If '//←追加★//
Next k
Next i
End Sub '//この行まで//
※ 「★」の行を追加しただけです。
「UNIT」にD列データがない場合の処理を追加しました。m(_ _)m
回答ありがとうございます。
構成上はpartsがunitの中にかならずあるべきなのですが、現状システムの吐き出したデータを人間が加工してunitの表を作るしかないのでヒューマンエラーへの対応は必要と思います。
作っていただいたコードはこれから試すのでどう動くかまだ理解できていませんが、上記のようにunitの中にpartsが無い=表の作り間違い
なので検出されたらエラーで止まってしまうコードでも問題ないと思います。
まずは作っていただいたコードを試してみます。
毎日の仕事ではないので少し時間が空いてしまうかもしれません。
No.8
- 回答日時:
こんばんは!
横からお邪魔します。
>実際は数千~数万の部品から構成されている・・・
というコトなので、↓の画像のような配置にし、行方向に関してはいくらデータがあっても対応できるようにしてみました。
「UNIT」数がたくさんある場合、数式で処理するのは大変ですので、
VBAでの一例です。
今回は↓の画像のような感じで、右へ「UNIT」が増えても対応できるような配置にしています。
画面左下の操作したいシート見出し上で右クリック → コードの表示 → VBE画面のカーソルが点滅しているところに
↓のコードをコピー&ペースト → Excel画面に戻り(VBE画面を閉じて)マクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)
Sub Sample1() '//この行から//
Dim i As Long, k As Long, lastRow As Long
Dim c As Range, r As Range
lastRow = Cells(Rows.Count, "D").End(xlUp).Row
If lastRow > 2 Then
Range(Cells(3, "E"), Cells(lastRow, "E")).ClearContents
End If
For i = 3 To Cells(Rows.Count, "A").End(xlUp).Row
Set c = Rows(2).Find(what:=Cells(i, "A"), LookIn:=xlValues, lookat:=xlWhole)
For k = 3 To Cells(Rows.Count, "D").End(xlUp).Row
Set r = Columns(c.Column).Find(what:=Cells(k, "D"), LookIn:=xlValues, lookat:=xlWhole)
With Cells(k, "E")
.Value = .Value + r.Offset(, 1) * Cells(i, "B")
End With
Next k
Next i
End Sub '//この行まで//
※ 関数でないので、データ変更があるたびに
マクロを実行する必要があります。
※ あくまでアップした画像の配置でのコードです。
1行、1列でも違う場合はとんでもない結果になります。
お望みの方法でない場合は無視してください。m(_ _)m
![「EXCELで複数の表からの集計」の回答画像8](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/2/667667_596a248b06824/M.jpg)
回答遅くなりもうしわけありません。
これは表に空欄があっても問題ないのでしょうか?
というのも、部品数は数千から数万、unitも数十
から数百あるのですが、ここまではいかないだろうと
いう数の目途はつくので、たとえば部品数が10万、
unit数が1000という余裕のある表を作ってそ
れに合わせたマクロを組んでおけばデータを表に張り付
けて(後ろのほうは空白セル)マクロを走らせるだけな
らそれ手間はかからないかと思ったもので。
No.6
- 回答日時:
スマートでは無いですが、無理矢理
B20:==SUMIF($A$11:$A$15,A20,$B$11:$B$15)*SUMIF($A$3:$A$7,"A",$B$3:$B$7)+SUMIF($D$11:$D$15,A20,$E$11:$E$15)*SUMIF($A$3:$A$7,"B",$B$3:$B$7)+SUMIF($G$11:$G$15,A20,$H$11:$H$15)*SUMIF($A$3:$A$7,"C",$B$3:$B$7)
これで#5のママチャリさんと同じになりますが。
モットスマートな方法はあると思います。
![「EXCELで複数の表からの集計」の回答画像6](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/7/247984_596a175430106/M.jpg)
No.5
- 回答日時:
計算式(関数)だけで作るのであれば、こんな感じでしょうか。
部品表は画像のような構成にすると集計が簡単です。
【D3セル】=SUMIFS($L:$L,$J:$J,$A3,$K:$K,D$2)*$B3
【B10セル】=SUM(D:D)
![「EXCELで複数の表からの集計」の回答画像5](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/5/542293914_59697fc1d5514/M.png)
ありがとうございます。
やはり一度unit内での部品数の集計を挟まなければならないのでしょうか。
実際は部品の種類が数千あり、unit内での部品集計表と、最終結果としての製品内での部品集計表を作ると
大きな表が二つになってしまい扱いが悪いのでやらないで済めばと思ったのですが・・・。
No.4
- 回答日時:
補足説明してください。
(1)#3の方の質問と同じですが、製品αの表のUNITにAとBが2回でてくるのはなぜか。ABCDEのつもりではないのか。
(2)UNIT_AからCの3つの表にでてくる「あ」や「い」はみな同じものと考えていいのか。
(3)例としての作りたい表の「あ」の数は「7」「い」の数は「5」「う」の数は「13」と単純に足していいのか。
No.3
- 回答日時:
素朴な疑問だけど…
最上段の製品αの表が
UNIT_数
A___6
B___6
C___3
でなく、A、B の数がそれぞれ 1と5、2と4 に分かれている理由は?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) データを製品別に集計 3 2022/09/11 21:17
- その他(IT・Webサービス) mayaの入れ方 1 2023/05/03 18:41
- Excel(エクセル) Excelで在庫表(クエリ、ピボット) 2 2022/04/11 17:11
- その他(ビジネススキル・経営ノウハウ) クラウドファウンディングによる新製品の販売支援要求。「あれ?この商品、もう完成品じゃね?」という疑問 2 2022/08/22 12:32
- その他(データベース) Microsoft Accessについて 1 2022/06/06 16:20
- Excel(エクセル) 生産日報と月間集計 3 2022/06/21 22:32
- Excel(エクセル) エクセルで重複データから重複を削除して指定の列に抽出したい 11 2022/05/11 11:26
- その他(データベース) accessでの請求管理について 2 2022/06/13 21:51
- その他(応用科学) 人工知能で電気回路作製。 人工知能で電気回路を作成することはできますか。 1 「おおまかな構成はこの 3 2023/04/12 20:35
- 日本語 製品構成という言葉の意味を教えてください 3 2022/08/04 21:46
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
IFとIFS関数
-
Excelを無料で使うには? パソ...
-
セルの数を求めたい
-
エクセルの数式バーのフォント...
-
Excelの表示についての質問
-
再質問です。マクロの修正箇所...
-
データチェックを行うエクセル...
-
Excelに詳しい方! B列が「日...
-
西暦や和暦の表示をyyyymmdd表...
-
Excelで50個のセルに同じ文字を...
-
Excelの数式について教えてくだ...
-
Excel VBAで全ての矢印を赤色に...
-
エクセル関数を使って
-
祝日と土曜、日曜の合計をカウ...
-
xlsxファイルを保存する際にPDF...
-
Excelについて
-
エクセルVBA、別ブックへ転記す...
-
エクセルで「ページレイアウト...
-
2列に入っているデータを1列...
-
【ExcelVBA】名前を付けて保存→...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
半角カタカナをヘボン式ローマ...
-
(マクロ)vlookupの元データを同...
-
エクセルで上位バイトのセルと...
-
exselの質問です
-
Excel 大小比較演算子による「...
-
Excel VBについての質問です。
-
エクセルの問題です。絶対値の...
-
非表示列の再表示に失敗
-
職場の人から聞かれており、こ...
-
Excel関数-文字列で自動作成さ...
-
Excelデータをコピペして、ペー...
-
ユーザー定義関数をアドイン登...
-
【マクロ】for next構文について
-
エクセルの日付を編集する
-
【マクロ】VLOOKUPにて参照元に...
-
exselで最小数で並び替える関数
-
libre 表計算ソフトの計算がう...
-
エクセルで表
-
エクセルの表で1年間の曜日を...
-
西暦和暦
おすすめ情報
実際の表はもっと大きいので数えるのは大変です。
計算式で埋める方法を知りたいです。
補足します。
(1)実際は数千~数万の部品から構成されている自社製品の整理をしたいのですが、一つの製品に複数同じunitが使われいていると、部品リストとしては複数回でてきてしまうからです。
(同じ部位であれば数が2とか3になりますが、部位が違うと今回の例のようになる。)
これを集計するという手はありますが、一手間かかるので処理しなくて良い回答があればと思いこのような質問にしました。
(2)同じです。
(3)はい。