[[20151124171347]] 『集計したデータの自動貼り付けについて』(あやこ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『集計したデータの自動貼り付けについて』(あやこ)

エクセルにて、各行に売上番号、商品名、売上数量、売上金額、原価金額、粗利金額、得意先名が入ったデータがあります。

それらのデータを集計しています。小計 → 売上番号をグループの基準とし、集計するフィールドは売上金額、原価金額、粗利金額にレ点をつけています。(Sheet1)

集計された行のみ(売上金額、原価金額、粗利金額の合計が出ている一行)Sheet2に自動的に張り付けたいのですが、どのようにすればよろしいでしょうか?

拙い説明ですが、ご存知の方よろしくお願い致します。

< 使用 Excel:Excel2007、使用 OS:unknown >


 エクセル上のコピペ操作でということですか?
 あるいは関数で?
 あるいは VBAでもOK?

(β) 2015/11/24(火) 20:31


β様

お返事ありがとうございます。

今は、Sheet1の集計データの各数字を一つ一つSheet2にある表へコピペしています。

理想としては、集計すれば自動的にSheet2の表へ売上番号や売上金額に数字が入っていればいいなと思っています。

素人なので、関数の方がありがたいです。

すみません!こんな回答で大丈夫だったでしょうか…。
(あーこ) 2015/11/24(火) 22:51


 >>素人なので、関数の方がありがたいです。 

 と思いました。
 βは関数超苦手ですので、専門家さんからの回答をお待ちください。
 (VBA ならお手伝いできるんですが)

(β) 2015/11/24(火) 23:08


Sheet2の表の形式にもよりますが
集計は使わずに、統合を使うのが簡単そうです。
形式にこだわりがなければ、ピボットテーブルでも。

(マナ) 2015/11/24(火) 23:18


 Sheet2のレイアウトもSheet1と同じだとして。

 Sheet2のA2セルに
 =IFERROR(INDEX(Sheet1!A$1:A$100,SMALL(IF(RIGHT(Sheet1!A$1:A$100,2)="集計",ROW($1:$100),""),ROW(A1))),"")
 と入力してShiftキーとCtrlキーを押しながらEnterキーで式を確定(確定後、式が{}で囲まれればOK)、その後下へフィルコピー。

 B2セルに
 =IF(IFERROR(VLOOKUP($A2,Sheet1!$A$1:$G$100,COLUMN(B2),FALSE),"")="","",VLOOKUP($A2,Sheet1!$A$1:$G$100,COLUMN(B2),FALSE))
 と入力(こちらは通常通りEnterで確定)その後右と下へフィルコピー。

 なお、Sheet1のデータが最大100行目でとしている。
 もっと行がある場合は式中の「$100」部分をすべて同じ値で大きくしてくれ。
(ねむねむ) 2015/11/25(水) 09:30

β様
他の方のアドバイスに挑戦してみます!
どうも、ありがとうございます!
(あやこ) 2015/11/25(水) 16:13

マナ様
アドバイスありがとうございます。
統合をしてみました。確かに集計よりラクですね!
しかし、元データ(Sheet1)には、売上日付もあり、統合すると日付も合計したような数字が出て困っています。
得意先名のところも反映されず、試行錯誤の段階です…。
(あやこ) 2015/11/25(水) 18:16

ねむねむ様

詳しい数式をありがとうございます。
入れてみたのですが、反映されませんでした。
レイアウトは特になく、Sheet1は数字が入っているデータだけで、
Sheet2でも罫線を引いただけの表にする予定です。
条件が悪かったのでしょうか…?
(あやこ) 2015/11/25(水) 18:30


 実際のレイアウトと入力した式を示してみてくれないか。
(ねむねむ) 2015/11/26(木) 09:21

ねむねむ様

何度もすみません。

Sheet1のA列には
売上番号 売上日付 得意先コード 得意先名 メーカ品番 商品名 売上数量  売上単価 売上金額 原価単価 原価金額 粗利金額 定価 売上伝票備考

B列以降は
12345 2015/11/25 15000 ○○会社 13A △△ 1 100 100 60 60 40 120 11月分 
12345 2015/11/25 15000 ○○会社 18B ■■ 1 300 300 230 230 70 320 11月分
23456 2015/11/26 21000 ■■会社 23R □□ 1 120 120 70 70 50 100 11/20ご注文分
 :
と続きます。
これらのデータを小計し、

Sheet2に教えて頂いた数式を入れると、
A列には
12345 集計
23456 集計
 :
と表示され、反映されています。
{=IFERROR(INDEX(Sheet1!A$1:A$1000,SMALL(IF(RIGHT(Sheet1!A$1:A$1000,2)="集計",ROW($1:$1000),""),ROW(A1))),"")}

しかし、
B列の右や下は空欄になっている状態です。
=IF(IFERROR(VLOOKUP($A2,Sheet1!$A$1:$G$1000,COLUMN(B2),FALSE),"")="","",VLOOKUP($A2,Sheet1!$A$1:$G$1000,COLUMN(B2),FALSE))
(あやこ) 2015/11/26(木) 15:29


 最初に書かれていた
 売上番号、商品名、売上数量、売上金額、原価金額、粗利金額、得意先名
 で式を立てていたため表示されていなかった。

 売上番号 売上日付 得意先コード 得意先名 メーカ品番 商品名 売上数量  売上単価 売上金額 原価単価 原価金額 粗利金額 定価 売上伝票備考 
 であるならば
 =IF(IFERROR(VLOOKUP($A2,Sheet1!$A$1:$L$1000,COLUMN(B2),FALSE),"")="","",VLOOKUP($A2,Sheet1!$A$1:$L$1000,COLUMN(B2),FALSE))
 として見てくれ。

 追記
 =IF(IFERROR(VLOOKUP($A2,Sheet1!$A$1:B$1000,COLUMN(B2),FALSE),"")="","",VLOOKUP($A2,Sheet1!$A$1:B$1000,COLUMN(B2),FALSE))
 のほうが今回のように列数が変化した場合にも対応しやすいか。
(ねむねむ) 2015/11/26(木) 15:50

ねむねむ様

反映されました!
追記も大変助かります。
素早い回答をありがとうございました。
これでかなりの時間短縮になりそうです!
(あやこ) 2015/11/26(木) 16:49


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.