プロが教えるわが家の防犯対策術!

エクセルで複数のデータシートを1つの条件をもとに一つにまとめたシートを作りたいのですが、どの関数を使ってどんな条件を入れればいいのかわかりません。
表は月別でシート別になっており、その内容は品名・繰越数量・生産数量・払出数量・残数になっています。ここまでは他の方が質問されているものと似ているのですが、私が作っているデータは品名が増加してしていくので、月ごとに行数がバラバラでセル指定の関数ではうまくいかないのです。どのような関数を使って作表すればよいか教えてください。

質問者からの補足コメント

  • うーん・・・

    会社のデータなので資料を添付することが出来ないのでうまく説明することが出来なくてすみません。
    月別でシートを作っており、シート内は品名・繰越数量・生産数量・払出数量・残数と列分けしていて、この『残数』を各月別シートから合計シートに飛ばしたいのです。が、行が揃っていれば何ら問題なくいくのですが、月を追うごとに行が増加していって、品名と行数が横並びにならないのです。つまり品名を固定して残数を集計したいのです。何かいい方法がありますでしょうか?

      補足日時:2016/09/30 09:40

A 回答 (4件)

=SUM(B:B)


これで行数に関係なくB列の合計を求められる。

この指定は同様にSUMIF関数でも使える。
SUMIF関数を使えば、合計する値の条件に「品名」を指定可能だ。
A列に「品名」、B列に「数量」が入力されているなら
=SUMIF(A:A,"=りんご",B:B)
これでA列に「りんご」と入力されている行のB列の値の合計を求めることができる。
残数を求めるなら、「入荷量-出荷量」の計算で求められる。各項目ごとの入荷量と出荷量の合計をSUMIF関数で求めよう。


さらに手を抜きたいのであれば、
このSUMIF関数を各シートの目立たない同じ行列(例えばAX1セルからAX200セルの範囲)にシート単位の集計を作成し、
「合計シート」に「串刺し計算」(※後述)で項目ごとの合計を表示させることができる。

・・・
繰り返すが、
データを入力した行の下に合計を求める行を作成しなければ、行数なんて気にしなくて良いのだ。
(1行目や2行目に合計を作っても良い)
だから、行数が増えようが関係ない。


※串刺し計算
例:
 =SUM(Sheet1:Sheet5!D1)
これでSheet1からSheet5まで「連続したシート」のD1セルの合計を求められる。
シートを重ねて上から串でブスリと突き刺して穴の開いたセルの合計を求めるという意味で「串刺し計算」です。

・・・余談・・・
業務で使うもので分からないなら手を出さない。
あるいは社内の分かる人に教えてもらう。
「りんご」や「みかん」に置き換えてすら例を示すことができないのであればそうすべき。
    • good
    • 0
この回答へのお礼

ありがとう

ありがとうございました。やってみます。

お礼日時:2016/09/30 12:32

こんばんは!



直接の回答ではないのですが・・・
各月のSheetの配置がどのようになっていて、まとめたいSheetの配置をどのようにしたいのかが判りませんが、
単純に「合計」だけであれば串刺し計算という方法があります。
ただし、
>1つの条件をもとに・・・
とは
SUMIFとかSUMIFS関数のような感じでまとめたい!という意味であれば
無理なような気がします。

まとめたいSheetの具体的な配置が判ればVBAで可能だとは思いますが、
ここで中途半端な形でコードを記載しても無意味だと思います。

各月のSheetのレイアウトがどのようになっていて
どのような配置でそれをまとめたいのか?が判れば
具体的なアドバイスができるかもしれません。

回答でなくてごめんなさい。m(_ _)m
    • good
    • 0
この回答へのお礼

ありがとう

ありがとうございました。

お礼日時:2016/09/30 12:32

各シートのデーターの先頭に年月日(必要ならば時間も)を追加して、一つのシートにまとめるだけで良いと思います。


逆に、記録する段階でそのようにすれば、月別に分類する必要さえありません。
統計する場合には、逆にこのほうが便利です。

excelで計算式を使っていなければ、各シートの先頭に年月日を追加した後、全シートをCSV(テキストファイル)に変換して、コマンドからそれを結合すればよいと思います。
    • good
    • 0
この回答へのお礼

ありがとう

ありがとうございました。

お礼日時:2016/09/30 12:34

行数が変わるのであれば、列全体を検索対象にすればよい。


 A1:B100
のように範囲を指定しているのであれば、行を示す数字部分を省略することで列全体を指定したことになります。
 A:B
これでOK。
    • good
    • 0
この回答へのお礼

ありがとう

ありがとうございました。

お礼日時:2016/09/30 12:34

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