• ベストアンサー

エクセルで△△と入力したらあそこへ・・・

予定表に入力したら請求書へ反映させたいのです。例えば10月○日のセルに001と入力したら△△の請求書へ、002と入力したら□□の請求書へ金額を反映させたいのですが、何か方法はありませんか?やり方はどんな方法でも構わないのですが、予定表に仕事先を入力したらその仕事先への請求書へ自動的に反映させたいのです。その日どこで仕事するかは決まっていないので、仕事先を入力したらその仕事先の請求書へ反映するということです。可能でしょうか?お願いたします。

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

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

●これはVBAでやる種類の問題です。それも1行入力したら、即、A社の請求書に反映するのではなく、バッチ処理と言うが、1ヶ月をまとめて請求書を作るというタイプから始めるものです。 ●しかしVBAも直ぐ習得できないだろうから、関数を使った例を上げてみます。 問題が3つあって (1)下記でやっていることの理解も難しいかも知れない。 (2)自社の実情・ニーズに合わせて、修正しなければ使えないが、下記でやっていることを理解しないと、修正はおぼつかないが、それが出来るかどうか。 (3)省略したことの1つに、各シートの#N/Aがでるのを防ぐ仕掛け(関数利用)がある。これ(下記に書いてない)が判ってもらえるかどうか。 では本題。 (例データ)推測して作った。質問では判らない点あり。 Sheet4のA1:E9 日付 氏名 就業場所 金額 ワーク列 2004/10/1 山田 1 10000 10001 2004/10/2 鈴木 2 9500 20001 2004/10/3 大山 1 7000 10002 2004/10/4 木村 2 5000 20002 2004/10/5 鈴木 1 12000 10003 2004/10/6 山下 1 6000 10004 2004/10/7 山野 3 12000 30001 2004/10/8 山田 2 10000 20003 (ワーク列) E2セルに=C2&TEXT(COUNTIF($C$2:$C2,C2),"0000")と入れてE9まで複写する。結果は上記の通り。 (Sheet5)就業場所1のシートとする A2セルに =INDEX(Sheet4!$A$2:$D$20,MATCH(1&TEXT(ROW()-1,"0000"),Sheet4!$E$2:$E$20,0),COLUMN())といれ、 D2まで複写し、更にA2:D2を範囲指定し、+ハンドルを出して、下へD5まで引っ張る。 (結果)Sheet5のA2:D5 2004/10/1 山田 1 10,000 2004/10/3 大山 1 7,000 2004/10/5 鈴木 1 12,000 2004/10/6 山下 1 6,000 A列、C列、D列の書式は、日付、数値、通貨にすること。 C列は不要なら、式を消す。 これで就業場所1の分だけ抜き出している。 ((Sheet6)就業場所2のシートとする A2セルに、Sheet5のA2セルを複写して =INDEX(Sheet4!$A$2:$D$20,MATCH(1&TEXT(ROW()-1,"0000"),Sheet4!$E$2:$E$20,0),COLUMN())となる。 そこで1&TEXTの1を2に変える。 D2まで複写し、更にA2:D2を範囲指定し、+ハンドルを出して、下へD4まで引っ張る。 (結果)Sheet6のA2:D4 2004/10/2 鈴木 2 9,500 2004/10/4 木村 2 5,000 2004/10/8 山田 2 10,000 A列、C列、D列の書式は、日付、数値、通貨にすること。 C列は不要なら、式を消す。 これで就業場所2の分だけ抜き出している。 3の分は同じなので、省略。 これで就業場所コードをA1にいれ、A2に派遣先社名 をいれ、D列を合計し、請求金額とすればよい。 派遣日・派遣されてきた人、支払い日給金額が出て、派遣先も判りやすいでしょう。 社内でこういうのを早く飲み込める人がいる場合があるので、その人とじっく、りどう修正したら良いか議論してください。

k-koko
質問者

お礼

とてもご親切にご回答くださってありがとうございます。 今回のご回答でVBAという言葉を始めて聞いた超初心者です。関数などまだまだ勉強しなければいけないようです。 とりあえず教えていただいた関数を使って試してみます。 勉強すればいろいろなことができるんだと驚きました。周りには誰も教えてくれる人がいないので自分でがんばってみます・・・本当にありがとうございました。感謝いたします。

その他の回答 (4)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.5

#1の補足 SUMIFについて SUMIFは、条件を指定して合計を求める関数です。 例えば、予定表から仕事先コードと一致する請求金額の合計を求めることができます。

k-koko
質問者

お礼

早々のご回答ありがとうございます。 SUMIFという言葉を聞いたのも初めてな初心者ですので改めてエクセルの奥深さを知りました。まだまだ勉強が必要のようですが、勉強すれば求めているものができるということがわかっただけでも感謝します。がんばってみます。

回答No.3

質問内容すべて可能ですが どのように作るかでその手法はまちまちです 自身それをどういう風にしたいのか整理できていなければそれらを作る事は不可能です 手法として一番自由度が高いのは VBAで作る事でしょう

k-koko
質問者

お礼

ご回答ありがとうございました。 VBAという言葉を始めて聞き、まずは勉強からということがわかりました。覚えれば求めているものが作れそうなのでがんばってみます。

  • kuma-ku
  • ベストアンサー率54% (1558/2845)
回答No.2

こんばんは ちょっとイメージが完全にできていないので、これぐらいしか思いつかなかったです。 一度以下のサイトをご覧ください

参考URL:
http://www.atmarkit.co.jp/fwin2k/win2ktips/317vlookup/vlookup.html
k-koko
質問者

お礼

ご回答ありがとうございました。 ご紹介いただいたサイト、とても参考になりました。 これを見ながら勉強したいと思います。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

実際にどういう感じの構成のシートになっているか(予定表と請求書が)わからないのでなんですが、 SUMIFを使えばいいのではないかと思います。

k-koko
質問者

補足

説明がうまく出来なくてすみません^^;数十名のスタッフがいます。それぞれ働く日と働く場所がそれぞれ違います。1人のスタッフが1ヶ月に10ヶ所で働けば10枚の請求書を作成しなくてはいけません。予定表には働いた場所(仮にA店)と金額を記入します。その時点で、A店の請求書に日付と金額を反映させたいわけです。例えばA店をコード化のようにして001と入力したら自動的にA店の請求書へ002と入力したらB店の請求書へと反映させたいわけです。説明がうまく出来なくて・・・お願いいたします。SUMIFとは・・・?初心者ですみませんm(__)m