• ベストアンサー

Excelで集計

Excelで請求書を作っています。 この請求書の集計表を自動的に別シートもしくは別ブックに作成されるようにしたいのですが、可能でしょうか? 具体的には以下のような具合です。 1.請求書の雛型があり、金額、各項目を入力し「名前をつけて保存」で保存していく 2.金額、各項目を別シートもしくは別ブックに自動的に作成されていく 私のレベルでは例えば「sheet1」のセルA1に何らかの文字列が入るとsheet2のセルA1に同じものが作成されるが、もし、sheet2のセルA1に何らかの文字列が存在する場合、次の行(sheet2のセルA2)に作成され、さらにsheet2のセルA2にも何らかの文字列が存在したらさらに次の行…、といった感じなのですが、何か良い方法はないでしょうか? ちなみにマクロやAccessはさっぱり分かりません。Excelで関数を駆使して出来る範囲でお願いします。 分かりにくい点があるかもしれません。その際はどしどし補足要求してください。

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

  • ベストアンサー
  • kito2002
  • ベストアンサー率29% (32/107)
回答No.1

あの~ 今、ちょっと脳ミソがフル回転しない状態なのですが、できる範囲でアドバイスします。 なんか凄く難しそうなことしていますが、発想を逆にしてみませんか? つまり、入力シートを「集計票」にします。 「集計票」から“=”とかの計算式を使って、個別の請求書に数字を飛ばします。 その方が遥かに楽そうなんですが… (請求書は同一シートに作成します。請求書の数が限られているのなら、最初に雛形を作ってしまえば楽なんですが…) すみません、見当違いだったらゴメンなさい。

Youyou
質問者

お礼

ありがとうございます。 「発想を逆に」…、これいただきです。 集計表を先に作れば、手間は相当かかりそうですが、何とか理想に限りなく近いものが作れそうです。 本当にありがとうございました。

その他の回答 (2)

  • snoopy64
  • ベストアンサー率42% (337/793)
回答No.3

僕も#1、#2の方に賛成です。 質問内容は、伝票入力処理ならOKでしょう。 画面から入力したものをデータベースに1件書き込むイメージです。 今回はその書き込まれたデータベースからデータを1件拾い上げて請求書のレイアウトにするのですから、発想を逆にしてください。 請求書のレイアウトに入力するのではなく、1件1行のデータベースとしてEXCELで入力し、WORDの差し込み印刷を使うのが一番簡単(シンプル)だと思います。 EXCELだけでやるのでしたら、例えば右上あたりに請求番号を入力し、これをキーにして別シートにあるデータベースからVLOOKUP関数を使って値を取得する関数を書く方法です。 蛇足ですが、EXCELの関数は(乱暴な言い方をすれば)数学の関数と同義で、xの値が決まるとyの値がただ1つ決まるものです。答えの値を1つ返してくれる だけであって、答えを返してくれる場所(セル)は人間が指示してやらなければなりません。 セルの位置を操作したりするのはマクロではできます。 関数の高級版という認識は間違いで、役割が違うのです。 以上、発想の転換の手助けになれば幸いです。 頑張ってくださいヽ(^。^)ノ

Youyou
質問者

お礼

ありがとうございます。 「発想の転換の手助け」 やはり聞いてみるものです。 思い込みすぎてましたね。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

私も#1の方のおっしゃていることに大賛成です。 いまさら思いこんだ方法を変えるのは苦痛でしょうが、エクセルの(特に関数式で出来ることの(質問者のことではなく、関数そのものに内在する制約のこと)、得手・不得手を考えると、難しい道を目指しています。 (1)請求書(月間でも当然多数枚ありますよね)   これを1枚のシート(雛型)に入れて、別シートに   行を下にずらして、各請求書1枚1枚の内容を記録し  て行くのは関数では難しく、マクロを使っても難しい  タイプの問題です (2)請求書    これを1枚1枚別シートに作成・記録して行く方法   はあり得るのだが、あまりシート数が増えると問題   があるかもしれない。経験者の方どうですか。    エクセルの基本は1シート内の処理であり、別シー   ト間では、集計や検索・並べ替えなどいずれも事に   当たってどうすれば良いか勉強せねばならないでし   ょう。苦労します。出来ないことも多い予想。    一覧性もありません。 (3)今までの私の発想    シートの1行に請求書1枚、または販売物品1種を    記録する。    請求書発行時(全得意先同一日締めきり?)に請求   先でソートして、販売先ごとに一塊にシート上でま   とめ、請求書(雛型)にデータを移して印刷する。 (4)その際マクロ(VBA)を使います。    使わないなら差しこみ印刷を使う手です。ワードと   の連携になります。 >「マクロやAccessはさっぱり分かりません。」ということで、御意に反してますが、私の持論は、一覧表的な社内文書作成の範囲を越えると、VBAなくして ビジネス(の小システム)にエクセルを使うのは不可能に近かろうと思います。 関数でやるととてつもない、思いつきの必要な、式の長い 他人にはすぐ理解不可能なものを工夫しないといけません。関数だから易しいと言うことではありません。 ●請求書発行のシステムをエクセルを使ってやる、アドインソフトやフリーやシェアウエアソフトを探されるのが良いのでは。基本は現代では、ソフトは作るより使う時代です。 ●ワードの差しこみ印刷との連携も研究課題です。 ●先日http://okweb.jp/kotaeru.php3?q=916454 で私が答えたのも、根本は似ています。 ●上記(3)なら、得意先ごとに請求書1シートにVLOOKUP関数などで、データシートから明細を取ってくることが出来そうです。 (雛型の請求内訳を越える明細がある時などどうするか などふと思いますが) >sheet2のセルA1に何らかの文字列が存在する場合、次の行(sheet2のセルA2)に作成 関数のもっとも不得意のことを書かれてます。 式はSheet2のA2セルの側で、データを採ってくる セルを決めて関数を書かなければならないのです。しかしそのセルが決まらないのです。自分自身のセルが空白かどうか関数で聞けません。場合によっては様々な工夫でやっと乗り越えた回答を上げたことがありますが、不可能に近いです。

Youyou
質問者

お礼

ありがとうございます。 imogasiさんの過去のご回答とその前後の回答も大変参考になりました。 ご教示どおりのやり方が100%あてはまる訳ではありませんが、色々な方向から考える、という考え方が出来たことだけでも大きな収穫です。

関連するQ&A

専門家に質問してみよう