こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

他のシートから引用した数値を並べて表示したい

お世話になります。
以下のような累計を作りたいと思い、お知恵をお借りします。

ブック名:街のお弁当屋さん
シート1:山田さんの注文
シート2:佐藤さんの注文
シート3:鈴木さんの注文
シート4:合計

A行:のり弁
B行:シャケ弁
C行:焼きそば

A列:個数
B列:グラム
C列:ケース

もし以下のような注文を承ったとします。
山田:のり5、シャケ2
佐藤:のり3、焼きそば500g
鈴木:シャケ1ケース

これらをそれぞれの客名シートに入力したら、
A行:のり 5個、3個
B行:シャケ 2個、1ケース
C行:焼きそば 500g

という感じでシート4に並べて表示したいと思います。
その際、注文者の名前はいらないです。(数だけ必要)

このように作る場合、どうしたらいいでしょうか。
SUMIF関数だと合計になってしまい悩んでいます。
ヒントを頂けましたら幸いです。

投稿日時 - 2018-07-08 22:45:50

QNo.9516482

暇なときに回答ください

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

エクセルで、「A行」なんて紛らわしい表現をしているところを見ると、エクセルの初心者で、この問題を、データ入力段階から、適切に設計できるかどうか疑わしい。商品の単位についての説明はあいまいにしたままなのも、それをうかがわせる。
また関数しかできない状況でもあるだろうが、関数でも、回答丸写ししかできず、難しいと思う。
エクセルのシートの表の組み換えは、関数ではむつかしいのだ。
それもあって、下記はVBAでやってみた。
ーー
本件についての、
私の考えを、下記に参考に述べる。考える気があれば読んでください。
商品を、個で売るもの、重量計り売り,ケース売りなど、単位の違うものは、商品を別に分けないと、扱いがむつかしいと思う。
システムに詳しいひとが、周りにいれば聞いてみたら。
こういうことこそ、正解が1つではない惧れもあり、本当の難しさで、関数の組み合わせ技巧ではない。
後から加工の段階で、関数がむつかしくなって、質問するよりも、シート項目の設計や入力の前によく考えることだ。どうすれば簡単になるかは、経験を積むしかない。
分類は下記のように考えた。
山田シートで
商品個数(A列とB列データ)数字が個数
のり弁6
シャケ弁個売8
シャケ弁ケース売り11
やきそば個数売り500g2
やきそば個数売り800g4
ーー
佐藤シートで
商品個数(A列とB列データ)数字が個数
商品 個数
のり弁1
シャケ弁個売2
シャケ弁ケース売り3
やきそば個数売り500g1
やきそば個数売り800g2
鈴木シート
商品個数
のり弁1
シャケ弁個売1
シャケ弁ケース売り2
やきそば個数売り500g
やきそば個数売り800g1
という設計にする。
ーー
そしてVBAだが、標準モジュールに
Sub test02()
Set sh2 = Worksheets("集計")
sh2.Range("A2:H10000").Clear
k = 2
For Each sh In Worksheets
If sh.Name <> "集計" Then '集計の名のシートは対象外
MsgBox sh.Name
lr = sh.Range("A10000").End(xlUp).Row
For i = 2 To lr
x = sh.Cells(i, "A") 'shシートのA列商品名
Set fc = sh2.Range("A2:A10000").Find(x) '集計シートA列でxの存在行を見つける
If fc Is Nothing Then
'新規
sh2.Cells(k, "A") = x '商品名
'c = sh2.Cells(k, 10000).End(xlToLeft).Column
sh2.Cells(k, "B") = sh.Cells(i, "B") '個数
k = k + 1
Else
'既存で見つかった
c = sh2.Cells(fc.Row, 10000).End(xlToLeft).Column
sh2.Cells(fc.Row, "B") = sh2.Cells(fc.Row, "B") + sh.Cells(i, "B") '件数足しこみ
End If
Next i
End If
Next
End Sub
ーー
結果
集計シートは
商品個数
のり弁6
シャケ弁個売8
シャケ弁ケース売り11
やきそば個数売り500g2
やきそば個数売り800g4
上記プログラムを変えれば、商品ごとで1行、販売先ごとの多列表にも、簡単に変えられる。

投稿日時 - 2018-07-09 15:42:40

ANo.7

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(7)

ANo.6

貼付画像を見てください。
集計結果は手作業で作成してあります。
上下どちらの表を作成したいのですか?

投稿日時 - 2018-07-09 10:53:46

ANo.5

合計!B2: =山田さんの注文!B2+佐藤さんの注文!B2+鈴木さんの注文!B2

投稿日時 - 2018-07-09 08:00:27

ANo.4

マルチポストです。
どちらかは、締切ましょう。

参考URL:https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14192887024

投稿日時 - 2018-07-09 05:25:11

ANo.3

多分こういうことだと思います
タイトルを付けたので、変わります。
2行:のり弁
3行:シャケ弁
4行:焼きそば
B列:個数
C列:グラム
D列:ケース
https://box.yahoo.co.jp/guest/viewer?sid=box-l-bahport3hkq3a2qccdcvb63m3e-1001&uniqid=649868ad-ed20-4aaf-927d-871a9a291f19&viewtype=detail
もし、3人でなく、人がどんどん増えてゆくなら、マクロが必要になります。

投稿日時 - 2018-07-09 00:36:44

ANo.2

添付のようにまとめて良いなら、表をシート間で串刺しに計算したいいと思います。
合計!B2にSUM(山田!B2,佐藤!B2,鈴木!B2)と入れ、表全体にコピーすれば添付のようになります。

投稿日時 - 2018-07-09 00:08:54

ANo.1

用語を正しく使わないと状況が分かりません。
「A行:のり弁、B行:シャケ弁、C行:焼きそば」等のA、B、Cは列記号なのでA行、B行、C行はありません。
各シートの名前やデータの配置の状況が分かりません。
従って、回答が困難です。

投稿日時 - 2018-07-08 23:44:31