- 締切済み
エクセルで簡単にデータを入力していく方法
初めての質問させていただきます。不慣れな説明になると思いますが、ご容赦ください。 入金管理で使用しているのですが、エクセルシートが3つあり、 仮にA・B・Cとして、それぞれにデータ(会社名)が 500件ずつくらい入力しています。 (フォームは3つとも同じで、会社名に重複はありません。) A1がNo. B1が会社名 C1が日付 D1が金額です。 入金を確認したら、A・B・Cのシートから会社名で検索して 日付と金額を入力している状態です。 それを1500回くらい繰り返してます。 毎月のことですので、何とか簡単に入力できたらと思うのですが・・・ できたら、別シートに会社名・日付・金額を入力したら、 自動的に3つのシートのどこかにある対象の場所に入力される。 というのが理想です。 これはVBA(マクロ)でしか作成できないと思うのですが、 初心者なのでどのようにやればよい分かりません。 どうか教えていただけないでしょうか。 よろしくお願いします。
- みんなの回答 (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)
新年早々厳しいことは言いたくないのですが >初めての質問させていただきます。不慣れな説明になると思いますが、ご容赦ください。 利用規約、特に禁止事項をよく読んでください 項目に丸投げ・依頼と言うものがあります >どうか教えていただけないでしょうか。 とは成っていますが、丸投げですよね >初心者なのでどのようにやればよい分かりません。 回答者には関係ありません >これはVBA(マクロ)でしか作成できないと思うのですが と思うのであれば、VBAを勉強するのが先なのでは 例えここで回答を得ても、自分の環境、エラー処理は自分でコードを追加、変更しないと 特に仕事では信頼性の無い無駄なものになってしまいますよ ここからはアドバイス なぜ、シートを3つに分けているのか? 1500件ぐらいであればシートは1枚で十分なのでは そうすれば、オートフィルタで抽出すれば1回で終わります マクロの場合も処理が簡単になり有利です 参考までに
- web2525
- ベストアンサー率42% (1219/2850)
ちと修正 日付セルに =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)
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各シートに自動入力されます。