アプリ版:「スタンプのみでお礼する」機能のリリースについて

各工場で製造したデータを本社工場にエクセルデータで報告しています。
本社では、報告受けて一覧表に取りまとめる作業を行いますが、現在、手作業で一覧表を作成しています。事務の省力化を図りたく、関数等を屈指して自動で一覧表を作成することができないものでしょうか。
現在のエクセルの様式は、シート区分で左側から「一覧シート」、そして各工場からの報告データを「A工場」、「B工場」、「C工場」と順次張り付けています。
また、一覧表は10行ですので、工場の項目数によっては次の列へと自動で繰り下がって欲しいことと、数量が30以上の場合はC工場の様に数量60となっている場合は一覧に30の倍数分の行を追加する必要があります。
これらの条件で一覧シートと自動作成する方法を教えてください。

「エクセルで複数の工場データを一覧表に取り」の質問画像

A 回答 (4件)

工場ごとのシートを、手作業で一覧表にコピペしてるんですね。


これは辛い…非効率…私には無理。
一覧自体も、なんで複数工場を、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
    • good
    • 0
この回答へのお礼

ご丁寧に時間を割いてマクロまで作っていただき、実際に取り込む前のお礼となっております。
実際のエクセルに取り込んでみて所期の目的通りとなれば助かります。
ありがとうございます。

お礼日時:2018/06/07 16:20

>事務の省力化を図りたく、関数等を屈指して自動で一覧表を作成することができないものでしょうか。



現在の書式を使い続ける限り、その目的は達成できないと思います。
紙の帳票時代の負の遺産をなくして、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(数式で算出)
    • good
    • 0
この回答へのお礼

皆さんからのご指摘のとおり、第三者からのご意見、ご助言に感謝しております。
ありがとうございます。

お礼日時:2018/06/12 10:33

No.1です。



仮に書式の見直しが行なわれるようなら、再度質問なさってみて下さい。
今回の件では回答は出てますし、多分私が提示しても解読困難かもですよ。癖がありますので。

でもこの管理方法が仮に『U(I?)SO9000』とかに絡んだ記録だったとしたら、元内部監査員としては見逃せないでしょうね。
『今まで使ってきた決まっている書式だから』に対し『分かりやすい書式になぜ変えない』ってね。
だからまともに内部監査の監査員をやらせてもらえなかったんだろうなぁ~。
    • good
    • 0
この回答へのお礼

重ね重ねのアドバイスありがとうございます。

お礼日時:2018/06/12 10:31

画像がよく見えないので、



>数量が30以上の場合はC工場の様に数量60となっている場合は一覧に30の倍数分の行を追加する必要があります。

数量が30以上で且つ実際の数が60であれば行の追加(ずらす)を必要とするが、59ならそのまま『59』と入れるのでしょうか?

あと表が10行ずつであると言うのは置いておくにしても、何故『工場名』がそこに含まれるのか?と思ってしまいます。
これって見易いですか?
あと工場の順番は毎月同じであるとしてもやはり工場毎に表を分けた方が見易い感じはするのですが?

個人的には質問の通りにやるとしても『合計』を出すなどの処理と、送られてきた元データの管理と合わせ、関数(数式)では難しくないですかね。
経験豊富な方ならやり遂げてしまうかもですけど。

でもデータ数や個々の数量が規定以上とかだと右方向に表がズラズラ伸びていくんですよね?
『工場』毎に縦にした方がまだ見易く思うけどなぁ。
    • good
    • 0
この回答へのお礼

貴重なアドバイスありがとうございます。
内部だけで見ていましたが、今回、ご意見をいただくことにより見方が変わってきました。ありがとうございます。

お礼日時:2018/06/07 16:12

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!