• 締切済み

エクセルで簡単にデータを入力していく方法

初めての質問させていただきます。不慣れな説明になると思いますが、ご容赦ください。 入金管理で使用しているのですが、エクセルシートが3つあり、 仮にA・B・Cとして、それぞれにデータ(会社名)が 500件ずつくらい入力しています。 (フォームは3つとも同じで、会社名に重複はありません。) A1がNo. B1が会社名 C1が日付 D1が金額です。 入金を確認したら、A・B・Cのシートから会社名で検索して 日付と金額を入力している状態です。 それを1500回くらい繰り返してます。 毎月のことですので、何とか簡単に入力できたらと思うのですが・・・ できたら、別シートに会社名・日付・金額を入力したら、 自動的に3つのシートのどこかにある対象の場所に入力される。 というのが理想です。 これはVBA(マクロ)でしか作成できないと思うのですが、 初心者なのでどのようにやればよい分かりません。 どうか教えていただけないでしょうか。 よろしくお願いします。

みんなの回答

noname#99913
noname#99913
回答No.4

 シート1~3の1行目は項目名で、会社名は入力済み、シート4の、A列に会社名、B列に日付、C列に金額を入力すると仮定します。シート1~3に次の式を入力し、下へ必要なだけコピーしてください。 B2(日付):=VLOOKUP($B2,Sheet4!$A:$C,2,FALSE) C2(金額):=VLOOKUP($B2,Sheet4!$A:$C,3,FALSE)  B列には日付の書式設定をしてください。  入力されていない会社のところはエラー表示が出ます。いやな場合は、条件付き書式でエラー表示を消してください。やり方はヘルプにあります。

  • hige_082
  • ベストアンサー率50% (379/747)
回答No.3

新年早々厳しいことは言いたくないのですが >初めての質問させていただきます。不慣れな説明になると思いますが、ご容赦ください。 利用規約、特に禁止事項をよく読んでください 項目に丸投げ・依頼と言うものがあります >どうか教えていただけないでしょうか。 とは成っていますが、丸投げですよね >初心者なのでどのようにやればよい分かりません。 回答者には関係ありません >これはVBA(マクロ)でしか作成できないと思うのですが と思うのであれば、VBAを勉強するのが先なのでは 例えここで回答を得ても、自分の環境、エラー処理は自分でコードを追加、変更しないと 特に仕事では信頼性の無い無駄なものになってしまいますよ ここからはアドバイス なぜ、シートを3つに分けているのか? 1500件ぐらいであればシートは1枚で十分なのでは そうすれば、オートフィルタで抽出すれば1回で終わります マクロの場合も処理が簡単になり有利です 参考までに

  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.2

ちと修正 日付セルに =IF(ISERROR(VLOOKUP(A2,Sheet4!$A$2:OFFSET(Sheet4!$A$1,COUNTA(Sheet4!A:A),2),2,0))," 未入金",VLOOKUP(A2,Sheet4!$A$2:OFFSET(Sheet4!$A$1,COUNTA(Sheet4!A:A),2),2,0)) 金額セルに =IF(B2="未入金","",VLOOKUP(A2,Sheet4!$A$2:OFFSET(Sheet4!$A$1,COUNTA(Sheet4!A:A),2),3,0)) 一部修正しました。

  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.1

A B CのSheetには会社名は入力済みで、日付と金額のみを追加で入力する形式、同じ会社名での追加の入金が無い場合であればVlookup関数で対応は可能です。 新たに入金処理用のSheet4を作成 入金があった時点で会社名・日付・金額を入力 ABCそれぞれのSheetの日付セルに =IF(ISERROR(VLOOKUP(A2,Sheet4!$A$2:OFFSET(Sheet4!A1,COUNTA(Sheet4!A:A),2),2,0)),"未入金",VLOOKUP(A2,Sheet4!$A$2:OFFSET(Sheet4!A1,COUNTA(Sheet4!A:A),2),2,0)) 金額セルに =IF(B2="未入金","",VLOOKUP(A2,Sheet4!$A$2:OFFSET(Sheet4!A1,COUNTA(Sheet4!A:A),2),3,0)) を入力で下方向コピー Sheet4に入力すると、A B C各シートに自動入力されます。

関連するQ&A

  • エクセル2007 入力データを転記する方法

    初心者的な質問になりますが、宜しくお願い致します。 現在、部署で在庫管理を明確化するためにエクセルに在庫の部品名、個数、どこで保管されているかを表にして管理しています。そこに、検索できるように関数で検索表を作成しました。 ここまで問題なくできたのですが、ここからやりたいことをどのように作成すればいいのかアドバイスをお願いしたく質問させて頂きます。 やりたいことは、あるセルに日付、部品名、使用内容という3つの項目を入力したら、別シートに転記するというものです。 具体的に記述すると、 sheet1のA2に日付、B2に部品名、C2に使用内容を記述します。 その内容をsheet2のA2に日付、B2に部品名、C3に使用内容を転記するのですが、 単純に=Sheet1!A2とすれば、表示されます。が!!! やりたいことはSheet1のA2、B2、C2に入力された内容を転記したときに、Sheet2では下に追加する方向にしたいのです。 例として書いてみると sheet1に A2に2010/11/22 B2にA C2にA社保守部品として使用 と記述します。 その内容をsheet2のA2に日付、B2に部品名、C2に使用内容を転記します。 次の日にまた在庫から部品を使用したとします。 上記と同じように A2に2010/11/23 B2にB C2にB社保守部品として使用 と記述したときに sheet2のA3、B3、C3に記述していくようにしたいと考えています。 上記で記述したように=sheet1!A2であれば、sheet1に表記が残っていれば、sheet2にも同じように表記されています。 しかし、sheet1のA2、B2、C2を消去してしまうと、同様にsheet2も消えてしまいます。 sheet2は一度記述したら内容を保持しててほしいのと、 書き込み内容があるごとにsheet2は追記していくようにしたい ということです。 この場合、マクロやVBAで作成するほうがいいのか?それとも関数でできてしまうのか? というところで悩んでいます。 私個人としては簡単にできるほうがいいのですが、VBAがまだ未熟なので、できれば関数でできるようならベストです。 VBAを勉強してやればいいのでは?と回答されてしまうとそれまでなのですが、現在業務上、在庫管理システムがそこまでしっかりされていないので、部署的にできるだけ早くパソコン上で在庫確認ができて、個数をしっかり管理したい。 そして、使用内容を明確にし、無駄を省きたいということを実践していきたいということで、今回質問させていただきました。 ちなみに検索内容などはすべて関数で作成しております。 どうぞ、ご教授のほど宜しくお願い致します。

  • 入力するごとにセルを移動させる方法

    今、VBAを組んでいてどうしても分からないところがあるので教えてください。 シート1のA1に値を入力し、シート上に作ったコマンドボタンを押すと、シート2のB1に値が入力されるマクロを組んでいます。新たにシート1のA1に値を入力し、ボタンを押すと、今度はシート2のB2に値が入力される、もう一度同様の作業をするとシート2のB3に値が入力される、そんなVBAってありますか? もし、それがムリなら、日付をフラグとして上記のようなVBAを組む方法はありますか?

  • エクセルVBAで 指定のデーターを指定のシートへ書き込む方法

    入力する表が 下記の通りです 日付  氏名    内容 1   Aさん   12345 2   Bさん   23456 3   Cさん   34567 2   Aさん   56789 3   Bさん   98765 5   Aさん   34986 というような表です シート名は"Aさん"という名のシートと"Bさん"というシートと"Cさん"という名のシートがあります。 そのAさんという名のシートには 日付  内容 1    2    3 4 5 6 というような 表があります。これは"Bさん""Cさん"ともいっしょです この"Aさん""Bさん""Cさん"の名前を判別して、その"内容"をAさんならAさんのシートの同じ日付の"内容"に書き込みたいのです。 結果としては、 Aさんのシート 日付  内容 1   12345 2   56789 3 4 5 6   34986 としたいのです。  どなたかよい方法御座いましたら宜しくお願い致します。

  • 入力規則とフィルター

    エクセルで質問ですが、マクロ、VBAにて できるかどうか判らない状態での質問になりますが ご理解願います。 シート2の1行目には表題、2行目から 表題に準じたデータが入力されています。   A     B     C 1 顧客名   日付   取引内容     シート1にはA1、A2、C2に表題が入っております。   A     B     C     D 1 顧客名    2 日付         取引内容 シート1のB1を選んだ際に、シート2のA列を参照したデータから リスト選択できる様にしたいと考えています。 その際、シート1のB2にて顧客名を選択した時点で その顧客名を条件としたオートフィルタ―を シート2で掛けたいのですが、ご指導願います。

  • (エクセル)日付に相当するデータを入力する

    シート1に以下のように、A列には氏名、C列に日付がランダムに入力されています。   A   B   C 1 山田     4/4 3:00 2 佐藤     4/3 2:00 3 石井     4/4 3:00 4 加藤     4/3 2:00 5 田中     4/1 5:00 シート2に上から順位に並び替えたいです   A   B   C   D   E   F   G 1          4/1    4/2    4/3   4/4   4/5 2  1   田中 4/1 5:00 3  2   佐藤         4/3 2:00 4  3   加藤         4/3 2:00 5  4   山田             4/4 3:00 6  5   石井             4/4 3:00 1行目のC~Gには既に4/1~4/5が入力されています。 対応するところに日付を入力し、さらにB列には氏名を表示したいです。 C2には「=IF(AND(SMALL(Sheet1!$C$1:$C$5,$A2)<D$1,SMALL(Sheet1!$C$1:$C$5,$A2)>=C$1),SMALL(Sheet1!$C$1:$C$5,$A2),"")」としてうまくいきました(C1:F6も同様)。 問題はB列なのですが、B2に「=INDEX(Sheet1!$A$1:$A$5,MATCH(SUM(C2:G2),Sheet1!$C$1:$C$5,0))」や「=INDEX(Sheet1!$A$1:$A$5,MATCH(SMALL(Sheet1!$C$1:$C$5,A2),Sheet1!$C$1:$C$5,0))」としても同じ失敗結果になりました。 両方とも、上から順に 田中 佐藤 佐藤 ←失敗(加藤が正解) 山田 山田 ←失敗(石井が正解) となってしまい、重複する日付が失敗してしまいます。 B列にどのようにしたら良いか教えてください。 よろしくお願いします。

  • EXCELでデータの履歴を残したいんですが

    EXCELで顧客名簿を使用しているのですが、これから購入履歴を管理していきたいと考えています。 具体的にはユーザーフォームに顧客名、購入商品名、購入金額、購入日等の情報を入力すると下記のように値が返ってくるようなマクロを教えて頂きたいです。 直近の購入履歴が左から順に見れるようにしたいです。 1回目の購入の際(商品a) A B C D E F G 1顧客名  a  金額 日付 2 3 4 5 2回目の購入の際(商品b) ユーザーフォームに商品名、金額、日付を入力すると A B C D E F G 1顧客名  b 金額  日付  a  金額 日付 2 3 4 5 以上のようにしたいのですが何分EXCELが苦手ですのでお力おかしください。宜しくおねがいいたします。

  • シート間のデータのやりとり

    当方はエクセル2003 OSはXPです。 シート「記入」とシート「入金記入」の2つのシートがあります。 シート「記入」には  A1 月度 B1 日付 C1 ID・・・・・顧客番号管理です D1 売上金額 I1 入金確認  シート「入金記入」には A1 月度 B1 日付 C1 ID・・・・・顧客番号管理です D1 入金金額 というシートの内容です。 ※この場合のご相談ですが 例えば シート「記入」I1のリストから「入金済」を選択したときに シート「入金記入」の B1 日付    「入金済」を選択したを自動的に日付が記入される C1 ID     はシート「記入」の番号をそのまま D1 入金金額  はシート「記入」の売上金額をそのまま もしこのことが可能ならご指導いただけるとありがたいのですが。 現在はシート「入金記入」手動で入力しています。

  • いつもありがとうございます。エクセル2003でVBAのマクロを組もうと

    いつもありがとうございます。エクセル2003でVBAのマクロを組もうとしてしています。 今日の日付と入金予定日を参照して期限オーバーしている行を収集しようとしています。 Sheet1     A    B    C     D   (列) 1   売上日  顧客名  商品名  入金予定日 2 平成22年1月4日 A商店  ○○  平成22年2月10日 3 平成22年1月4日 B商店 ○○ 平成22年2月15日 ・ ・ ・ ・ Sheet2 任意のセル(D3)に =NOW()で表示させています。 オートフィルターで今日の日付を入力し収集すれば、いいところですがVBAでオートフィルターをコントロールをしたいと考えております。よろしくお願いします

  • エクセルマクロ 日付を検索し入力

    エクセル2003マクロを使用して以下の事を行いたいと思っていますが、どのようなマクロを組んだらよいか分かりません。よろしくお願いします。 シート上部にある以下のデータを    A      B     C      D      E     1  日付 商品A 商品B 商品C  商品D 2  5/26    5     6     1       3    ←その日のデータ(毎日変わる) 入力ボタンを作成し、それを押すことにより        ↓ 6   5/1 7    ・ 8    ・ 9   5/26   5     6     1     3 10    ・  ↑日付が予め入力された表 上記のような、同一シート上の日付欄に入力される表を作りたいのですが、方法が分かりません。 その日のデータは、別シートに入力用フォームを作成し、飛ばしています。何人かの人間が入力するので、マクロで簡単に、行えるようにしたいと思います。よろしくお願いします。

  • エクセル 入力フォームのデータを別シートに書き込む

    エクセル 入力フォームのデータを別シートに書き込む方法 1.シート1のA2に日付、B2に文字列、C2に金額、D2に個数、E2に合計金額を入力する。 2.内容確認後、入力ボタンを押すと、 Sheet2の集計表リンクさせ、尚且つシート2内で1か月分の集計を取ります。 つまりシート1は入力シートで、同じセルに値を入力します(次回はデータが上書きされる)が、シート2では、集計表の1列ずつ下に新しく記録され1か月分の入力がされていく。 このような入力フォーム(マクロ)を作りたいと思っています。 初めて投稿するので、質問がよく分からないかもしれませんが、 よろしくお願いします。

専門家に質問してみよう