各工場で製造したデータを本社工場にエクセルデータで報告しています。
本社では、報告受けて一覧表に取りまとめる作業を行いますが、現在、手作業で一覧表を作成しています。事務の省力化を図りたく、関数等を屈指して自動で一覧表を作成することができないものでしょうか。
現在のエクセルの様式は、シート区分で左側から「一覧シート」、そして各工場からの報告データを「A工場」、「B工場」、「C工場」と順次張り付けています。
また、一覧表は10行ですので、工場の項目数によっては次の列へと自動で繰り下がって欲しいことと、数量が30以上の場合はC工場の様に数量60となっている場合は一覧に30の倍数分の行を追加する必要があります。
これらの条件で一覧シートと自動作成する方法を教えてください。
No.2ベストアンサー
- 回答日時:
工場ごとのシートを、手作業で一覧表にコピペしてるんですね。
これは辛い…非効率…私には無理。
一覧自体も、なんで複数工場を、10行刻みで、合計も交えてたり…管理しにくそう。
でも、決まってる書式ならあわせるしかないですよね…。
関数でやろうとすると、ちょっと面倒くさいです。
マクロ作っちゃうと3秒もかからず終わる作業です。
ザクッと作ってみたので興味があればどうぞ。
(使ってるバージョン知らないけど・・・)
まず、開発タブの表示
開発タブの表示 | Office2010 | 初心者のためのOffice講座
https://hamachan.info/win7/Office/kaihatu.html
マクロ無効なら設定変える
【マクロの設定】画面の表示方法 | Office2010 | 初心者のためのOffice講座
https://hamachan.info/win7/Office/macros.html
開発タブの左の「Visual Basic」をクリック
「挿入」→「標準モジュール」
で開いた窓に、下のごちゃごちゃ書いてるのを貼り付け。
表に戻って、開発タブの「マクロ」から「sample」を実行。
質問用に作ったファイルなら、これでそれっぽく動作すると思います。
(シート名が "一覧" "A工場" "B工場" "C工場" なら。)
動かなかったら、一度保存(マクロ有効ブック)して、開き直してからお試しを。
実際に運用してるファイルに適用する場合は、
上の方の " " で囲った部分をシート名に書き換えてね。
"作業用"はいじらなくていいです。
↓作ってみたやつ
-------------------
Sub sample()
Dim sh(2) As String
Dim NewWorkSheet As Worksheet
matome = "一覧"
sh(0) = "A工場"
sh(1) = "B工場"
sh(2) = "C工場"
Set NewWorkSheet = Worksheets.Add()
NewWorkSheet.Name = "作業用"
gyou = 1
For i = 0 To 2
With Sheets(sh(i))
matubi = .Cells(Rows.Count, 2).End(xlUp).Row
.Range(.Cells(1, 1), .Cells(matubi, 4)).Copy
Cells(gyou, 1).Select
ActiveSheet.Paste
Cells(gyou + matubi, 1) = "合計"
Cells(gyou + matubi, 1).HorizontalAlignment = xlCenter
Cells(gyou + matubi, 4) = WorksheetFunction.Sum(.Range("D1:D100"))
Rows(gyou + 1).Delete
End With
gyou = gyou + matubi
Next
matubi = gyou - 1
For i = gyou To 2 Step -1
If Cells(i, 4) > 30 And Cells(i, 1) <> "合計" Then _
Rows(i + 1 & ":" & i + Int((Cells(i, 4) - 1) / 30)).Insert
Next
matubi = Cells(Rows.Count, 1).End(xlUp).Row
Sheets(matome).Select
retu = 1
For i = 1 To Int((matubi + 9) / 10)
If i > 1 Then Range("A2:D2").Copy Cells(2, (i - 1) * 4 + 1)
With Sheets("作業用")
.Range(.Cells((i - 1) * 10 + 1, 1), .Cells(i * 10, 4)).Copy
Cells(3, (i - 1) * 4 + 1).Select
ActiveSheet.Paste
With Range(Cells(2, (i - 1) * 4 + 1), Cells(12, i * 4))
.Borders(xlEdgeLeft).Weight = xlMedium
If i = 1 Then .Borders(xlEdgeLeft).Weight = xlThin
.Borders(xlEdgeTop).Weight = xlThin
.Borders(xlEdgeBottom).Weight = xlThin
.Borders(xlEdgeRight).Weight = xlThin
.Borders(xlInsideVertical).Weight = xlThin
.Borders(xlInsideHorizontal).Weight = xlThin
End With
End With
Next
Application.DisplayAlerts = False
Sheets("作業用").Delete
Application.DisplayAlerts = True
End Sub
ご丁寧に時間を割いてマクロまで作っていただき、実際に取り込む前のお礼となっております。
実際のエクセルに取り込んでみて所期の目的通りとなれば助かります。
ありがとうございます。
No.4
- 回答日時:
>事務の省力化を図りたく、関数等を屈指して自動で一覧表を作成することができないものでしょうか。
現在の書式を使い続ける限り、その目的は達成できないと思います。
紙の帳票時代の負の遺産をなくして、PCで処理するのに適した書式に変更するべきです。
加えて言うと、紙の帳票で見たとしても現在の書式は見やすいものとはいえません。
ざっくりですが、以下のような感じにすれば、工場名以外はコピペでいけるでしょう。(コピペで作れる書式にするべき)
こうしておけば集計やグラフ化も簡単にできますし、フィルタ機能を使って特定の品名だけの集計などもできます。
工場ごとの合計もデータの途中にいれるのではなく、データ最下行の下に入れるか、見出し行の上にいれるかにします。当然ながら数式でやります。
工場名 No. 品名 規格 数量
A 1 aa 5
A 2 ab 3
B 1 ac 2
B 2 aa 2
C 1 aa 5
C 2 ab 3
A 合計 8(数式で算出)
B 合計 4(数式で算出)
C 合計 8(数式で算出)
全 合計 20(数式で算出)
No.3
- 回答日時:
No.1です。
仮に書式の見直しが行なわれるようなら、再度質問なさってみて下さい。
今回の件では回答は出てますし、多分私が提示しても解読困難かもですよ。癖がありますので。
でもこの管理方法が仮に『U(I?)SO9000』とかに絡んだ記録だったとしたら、元内部監査員としては見逃せないでしょうね。
『今まで使ってきた決まっている書式だから』に対し『分かりやすい書式になぜ変えない』ってね。
だからまともに内部監査の監査員をやらせてもらえなかったんだろうなぁ~。
No.1
- 回答日時:
画像がよく見えないので、
>数量が30以上の場合はC工場の様に数量60となっている場合は一覧に30の倍数分の行を追加する必要があります。
数量が30以上で且つ実際の数が60であれば行の追加(ずらす)を必要とするが、59ならそのまま『59』と入れるのでしょうか?
あと表が10行ずつであると言うのは置いておくにしても、何故『工場名』がそこに含まれるのか?と思ってしまいます。
これって見易いですか?
あと工場の順番は毎月同じであるとしてもやはり工場毎に表を分けた方が見易い感じはするのですが?
個人的には質問の通りにやるとしても『合計』を出すなどの処理と、送られてきた元データの管理と合わせ、関数(数式)では難しくないですかね。
経験豊富な方ならやり遂げてしまうかもですけど。
でもデータ数や個々の数量が規定以上とかだと右方向に表がズラズラ伸びていくんですよね?
『工場』毎に縦にした方がまだ見易く思うけどなぁ。
貴重なアドバイスありがとうございます。
内部だけで見ていましたが、今回、ご意見をいただくことにより見方が変わってきました。ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) Excelで総数量を変動させたい 2 2022/11/04 23:49
- Excel(エクセル) VBAで、シート間の転記するコードを教えてください。 4 2023/03/26 10:43
- Visual Basic(VBA) エクセルについて教えてください。 3 2023/06/28 09:11
- Excel(エクセル) 【エクセル」 特定のセルで条件抽出した列を、別シートに上から詰めて表示したい。 8 2022/04/08 16:00
- Visual Basic(VBA) VBAで、1つのエクセルで、2つのシートからもう1つのシートに条件のある転記コードを教えてください。 1 2023/03/16 18:07
- 建設業・製造業 日立製作所の工場一覧表ってありますか? 研究所は出てきますが工場一覧が出てきません 三菱電機なら三菱 2 2023/08/22 21:26
- Excel(エクセル) ExcelVBAでリストの項目に必要数と同じ手配数を分配していくマクロを作りたいです。 1 2022/07/29 18:36
- Excel(エクセル) 指定した条件でTRANSPOSE関数を使う 5 2023/08/18 19:45
- 政治 日本で訴訟件数が少ないのは、自民党とビッグモーターが詐欺組織だからですか? 2 2023/07/27 11:30
- Excel(エクセル) Excelでデータを抽出するに良い方法 9 2023/02/06 12:42
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
会社なら弊社、工場なら?
-
一流大学院卒でもメーカー就職...
-
ビジネス文書(文中で「様」を...
-
三相200Vから単相200V...
-
CHEMICAL SECRET...
-
隣の工場の騒音についての悩み
-
工場勤務って危険じゃないですか?
-
理系院卒でも大半が工場勤務っ...
-
見積書の件名に「貴 ○○工場・・...
-
物価の安い国で工場を建設して...
-
鋳造と鍛造の仕事は過酷なので...
-
クリーニングの工場で働いた事...
-
工場の施設警備員について 工場...
-
皆さん、おはようございます♪ ...
-
めっき工場 危険
-
韓国のサムスン財閥のサムスン...
-
愛知を日本のシリコンバレーに
-
樹脂顔料の飛散防止について
-
「検品工場」を英語で言うと?
-
『QCサークル(QC活動)、改善活...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CHEMICAL SECRET...
-
会社なら弊社、工場なら?
-
理系院卒でも大半が工場勤務っ...
-
一流大学院卒でもメーカー就職...
-
隣の工場の騒音についての悩み
-
ビジネス文書(文中で「様」を...
-
三相200Vから単相200V...
-
見積書の件名に「貴 ○○工場・・...
-
めっき工場 危険
-
物価の安い国で工場を建設して...
-
裾直しにかかる時間
-
木工所とか、鉄工所ってどうい...
-
クリーニングの工場で働いた事...
-
皆さん、おはようございます♪ ...
-
工場の施設警備員について 工場...
-
ご安全に! この挨拶、英語で...
-
明日、会社(工場)で1分の安全...
-
工場勤務初心者ですが、夏場は...
-
トロイの木馬 PC初期化について
-
韓国のサムスン財閥のサムスン...
おすすめ情報