[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『月ごとにシートで分けていたデータを1枚のシートに』(COCO)
2003,XP
お世話になります。 過去ログ見たのですがよくわからなくて。質問させていただきます。
毎月送られてくる納品書を元に 各シート(2010年01、2010年02、2010年03、2010年04)に データを入力していました。 各月でB列に入る品番は違います。
これをひとつのシート (シート名:一覧)のようにE列以降2列使用して 数量・金額を各月ごとに纏めていこうと思います。
シート名:2010年04 B列 C列 D列 E列 F列 品番 品名 単価 数量 金額 [3]1133194311 ボルトA 11.25 100 1,125 [4]1131129826 ワッシャフラット 5.00 2,000 10,000 [5]1119190826 ナット HEX M10 11.34 600 6,804 [6]1119190156 ナット HEX M12 14.00 252 3,528 [7]1119190906 ナット HEX M5 1.80 13 23 [8]1119190816 ナット HEX M8 4.80 300 1,440 [9] ....
シート名:一覧 B列 C列 D列 E列 F列 G列 H列 2010年4月 2010年3月 品番 品名 単価 当月数量 金額 当月数量 金額 [3]1133194311 ボルトA 11.25 100 1,125 [4]1131129826 ワッシャフラット 5.00 2,000 10,000 [5]1119190826 ナット HEX M10 11.34 600 6,804 [6]1119190156 ナット HEX M12 14.00 252 3,528 [7]1119190906 ナット HEX M5 1.80 13 23 [8]1119190816 ナット HEX M8 4.80 300 1,440 [9] ....
E3にこのような式を入れてみました。 =IF(ISERROR(VLOOKUP(B5,'2010年04'!$B$3:$E$32,4,FALSE)),"",VLOOKUP(B5,'2010年 04'!$B$3:$E$32,4,FALSE)) ですがこれですとシート名:一覧にない品番の当月数量が出ないですよね・・・
2010年5月以降は完成したシート名:一覧に納品書を見ながら入力をしていくつもり なのでこの4か月分をなんとかして1つのシートに纏めたいです。
よろしくお願いいたします。
こんにちは。 > この4か月分をなんとかして1つのシートに纏めたいです。 今回1回だけの処理ということですね。 であれば数式にこだわらず、なるべく簡単な操作でまとめる方向で考えましょうか。
一覧シートの品番が、 ・2010年01〜2010年04の4シートの品番を全て含んでいて、 ・かつ重複していない ようになっていればよいのですよね。
まず思いつくのは、ピボットテーブルです。 こちらのサイトで、複数のワークシート範囲からピボットテーブルを作る操作を説明されていますので、 それを使えば4シートの品番を1列にまとめられると思います。 http://www11.plala.or.jp/koma_Excel/contents6/mame6040/mame604001.html (コタ)
返信遅くなりすみませんでした。 そしてコタさんいつもありがとうございます。
お勧めのサイトを見てピボットテーブルやってみました。
>それを使えば4シートの品番を1列にまとめられると思います。
これは出来ました。(こういう使い方もあるのですね。勉強になります)
私の説明不足ですが品番と品名は=なのですがピボットでまとめると 品名が表示できません。 操作の仕方では表示する事ができるのでしょうか?
>>それを使えば4シートの品番を1列にまとめられると思います。 >これは出来ました。 これができたのでしたら、最初にCOCOさんが書かれているように、VLOOKUPで抽出すればいいのです。
ただし、4シート全て検索しないといけないので、IFのネストになると思いますが。 例 =IF(ISNUMBER(MATCH(B5,'2010年01'!$B$3:$E$32,0)),VLOOKUP(B5,'2010年 01'!$B$3:$E$32,4,FALSE), IF(ISNUMBER(MATCH(B5,'2010年02'!$B$3:$E$32,0)),VLOOKUP(B5,'2010年 02'!$B$3:$E$32,4,FALSE), IF(ISNUMBER(MATCH(B5,'2010年03'!$B$3:$E$32,0)),VLOOKUP(B5,'2010年 03'!$B$3:$E$32,4,FALSE), IF(ISNUMBER(MATCH(B5,'2010年04'!$B$3:$E$32,0)),VLOOKUP(B5,'2010年 04'!$B$3:$E$32,4,FALSE),"")))) (コタ)
コタさんありがとうございます。
私の理解不足だと思いますが ピボットで「当月数量」は出ています。 コタさんが書いていただいた例の数式は数量を出すものですよね?
>品名が表示できません。
のように今度は品名を出したいので、例の数式のVLOOKUPの検索列を2に変えてみましたが うまくいきませんでした。 「値の更新」という表示が出てしまいます。
ちなみにネストとは何か特別な数式の入力方法とかがあるのですか? すみませんがよろしくお願いいたします。
ごめんなさい。上の数式で、1点訂正です。 もともと、COCOさんの書かれた =IF(ISERROR(VLOOKUP(B5,'2010年04'!$B$3:$E$32,4,FALSE)),"",VLOOKUP(B5,'2010年 04'!$B$3:$E$32,4,FALSE)) の数式を変更したのですが、 ISERROR(VLOOKUP(B5,'2010年04'!$B$3:$E$32,4,FALSE)) の部分をMATCH関数に変更する際、検索範囲を1列にすることを失念していました。 (なぜMATCHにしたかというと、B5の値がB列にあるかないかを判定するだけなので、 VLOOKUPで他列の値を返す必要がないからです。VLOOKUPのままでもOKですよ)
=IF(ISNUMBER(MATCH(B5,'2010年01'!$B$3:$B$32,0)),VLOOKUP(B5,'2010年 01'!$B$3:$E$32,4,FALSE), IF(ISNUMBER(MATCH(B5,'2010年02'!$B$3:$B$32,0)),VLOOKUP(B5,'2010年 02'!$B$3:$E$32,4,FALSE), IF(ISNUMBER(MATCH(B5,'2010年03'!$B$3:$B$32,0)),VLOOKUP(B5,'2010年 03'!$B$3:$E$32,4,FALSE), IF(ISNUMBER(MATCH(B5,'2010年04'!$B$3:$B$32,0)),VLOOKUP(B5,'2010年 04'!$B$3:$E$32,4,FALSE),"")))) ^ ←ここ
> コタさんが書いていただいた例の数式は数量を出すものですよね? そうですね。数式の例として書きましたので、どこを抽出するとかは気にしていなかったです。
>例の数式のVLOOKUPの検索列を2に変えてみましたが うまくいきませんでした。 品名はB列から数えて2番目なので、この対応で正しいと思います。 上で書いた箇所が問題だったのではないでしょうか。
> ネストとは何か特別な数式の入力方法 この場合は、関数の中に関数を入れたりすることを意味します(入れ子ともいいます)。 上の数式では、IF関数の中にIF関数を入れていますので、「IFのネスト」と表現しました。
=IF(〜,〜,IF(〜,〜,IF(〜,〜,IF(〜,〜,""))))
(コタ)
検索列を1列に直してみました。
それでも「値の更新 2010年01」・・・と出てしまいます。
存在しない参照先を入力しようとすると、「値の更新:〜」というダイアログが表示されます。 数式中のシート名が、実際のものと一致していないのではないでしょうか。 (スペースの有無とか、全角半角とか)
=IF(ISNUMBER(MATCH(B5,'2010年01'!$B$3:$B$32,0)),VLOOKUP(B5,'2010年 01'!$B$3:$E$32,4,FALSE), ^ ^ 手っ取り早いのは、実際のシート名を、数式にコピペしてくることです。 (コタ)
出来ましたぁぁ!!感動(泣)
原因は2つありました。 1つは数式を入れる列の書式が文字列になっていたこと。 2つ目は参照先の行が一列ずれていたこと。
自分のミスでした。お恥ずかしい・・・
お騒がせいたしました。 コタさん本当にありがとうございました。 またなにかありましたらよろしくお願いいたします。
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.