• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルで仕入帳を作成)

エクセルで仕入帳を作成する方法と注意点

このQ&Aのポイント
  • エクセルで仕入帳を作成する方法として、MS Office2007のexcelを使用しています。各シートごとに仕入先の商品のやりとりを管理し、平均単価も出しています。しかし、数式を変更する際に手作業が必要な点があります。まとめて変更する方法や、数式を変更するべきかについてご教示ください。
  • エクセルで仕入帳を作成する方法として、MS Office2007のexcelを使用しています。各シートごとに仕入先の商品のやりとりを出しており、平均単価も計算しています。しかし、数式の変更に手作業が必要な点があります。まとめて変更する方法や、数式自体を変更するべきかについてご教示いただけませんか。
  • エクセルで仕入帳を作成する方法についてお伺いします。現在、MS Office2007のexcelを使用しています。各シートごとに仕入先の商品のやりとりを管理し、平均単価も計算しています。しかし、数式を変更する際に手作業が必要な点があります。まとめて変更する方法や、数式の変更をお教えいただけないでしょうか?

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんばんは! 一例です。 B4セルに =SUMIF(INDIRECT(B$3&"!$C$5:$C$1000"),$A4,INDIRECT(B$3&"!$F$5:$F$1000"))/SUMIF(INDIRECT(B$3&"!$C$5:$C$1000"),$A4,INDIRECT(B$3&"!$D$5:$D$1000")) という数式を入れ、列方向と行方向にオートフィルでコピーではどうでしょうか? 余計なお世話かもしれませんが、エラー処理していませんので、各SheetにA列の「商品」がない場合は「0」で割ってしまうことになります。 その場合は #DIV/0! のようなエラーが表示されると思います。それを回避したい場合は IF関数を使って、かなり長くなりますが、 =IF(ISERROR(数式),"",数式) といった具合の数式にすればエラーの場合は空白になると思います。 長々と失礼しました。m(__)m

Passen
質問者

お礼

返事が遅くなりました、申し訳ございません。 思わず、手をたたいてしまいました(笑) これですと、このまま数式をコピーするだけで反映されますね。 いやらしい話、すごい簡単でした。 INDIRECTの数式も勉強になりました。 ただ、数式がおっしゃった通り、長くなりましたね・・・。 ISERRORの数式を使わせていただきました。 大変ありがとうございました。

その他の回答 (2)

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

月間平均のシートの, 3行目に,各シートの正確な名前を記入しておきます もしくは各シートの正確なシート名を,3行目の各記載内容と合わせておきます また式中で検索する品名は,A列の記載内容を利用します 元の数式: =SUMIF(A!$C5:$C1000,"1",A!$F5:$F1000)/SUMIF(A!$C5:$C1000,"1",A!$D5:$D1000) 品名を利用: B4: =SUMIF(A!$C5:$C1000,$A4,A!$F5:$F1000)/SUMIF(A!$C5:$C1000,$A4,A!$D5:$D1000) シート名(仕入れ先名)を利用: B4: =SUMIF(INDIRECT(B$3&"!$C:$C"),$A4,INDIRECT(B$3&"!$F:$F")) / SUMIF(INDIRECT(B$3&"!$C:$C"),$A4,INDIRECT(B$3&"!$D:$D")) 右にコピー,下にコピーしたときに,式中の$記号の有り無しによって参照セルが自動で追従する様子を実際に手を動かして確認し,$記号の使い方をマスターしてください。

Passen
質問者

お礼

返事が遅くなりました、申し訳ございません。 思わず、なるほどと思ってしまう数式でした。 $記号はマスターとまではいきませんが、大変勉強になりました。 ご回答、大変ありがとうございます。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

>数式のA!をB!にひとつずつ手入力で変更  ⇒シート名が文字列は難しいのでA1、A2と数字と組み合わせれば以下の様な感じで如何でしょうか。 =SUMIF(INDIRECT("A"&COLUMN(A1)&"!C5:C1000"),COLUMN(A1),INDIRECT("A"&COLUMN(A1)&"!F5:F1000"))/SUMIF(INDIRECT("A"&COLUMN(A1)&"!C5:C1000"),COLUMN(A1),INDIRECT("A"&COLUMN(A1)&"!D5:D1000"))

Passen
質問者

お礼

返事が遅くなりました、申し訳ございません。 エクセルは全くの初心者なので、数式が大変勉強になりました。 シート名は実際は仕入先を記載します。 私のやり方も下手なのですが、ちょっと適用しにくかったですね・・・。 ご回答、大変ありがとうございました。

関連するQ&A