【Excel VBA】データの比較方法について

このQ&Aのポイント
  • Excel VBAを使用してデータの比較を行っていますが、借方と貸方が混在している場合にデータが表示されない問題が発生しています。
  • 特に借方の行数が貸方の行数よりも少ない場合に問題が起きます。
  • この問題を解消する方法についてアドバイスを頂きたいです。
回答を見る
  • ベストアンサー

【Excel VBA】データの比較

Excel2003を使用しています。 職場のシステムに入力した仕訳をCSVデータで出力→マクロで処理したデータを集計し、科目ごとの金額確認用として使用しています。 このCSVデータは伝票番号順に上から表示されていますが、借方と貸方が混在していて、金額も借方と貸方で2列で表示されていたので、一旦、借方データと貸方データに分けて(それぞれシートを用意して該当する必要データをコピペ)借方データの伝票番号&伝票行番号が貸方データの伝票番号&伝票行番号と一致したら、同行に表示するようにしました。 ただ、借方データを基準に比較しているため、借方の行数が貸方の行数より少ない仕訳の場合は貸方のデータが表示されません。私はこのケース(借方行数<貸方行数)の仕訳はありませんが、よその支店で月に2回ほどあるようで、これを解消できないか尋ねられています。 下記は、ある飲食店へ代金\15,000振込、振込手数料\420は差し引く(飲食店持ち)という場合の仕訳だそうです。 交際費15,000/普通預金14,580          /雑費     420 私自身、この仕訳にちょっと違和感を感じるのですが、この場合だと、貸方の雑費\420が表示されません。 何か良い解決方法があれば、教えていただきたくよろしくお願いします。

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

  • ベストアンサー
  • FEX2053
  • ベストアンサー率37% (7987/21355)
回答No.3

昼休みにちょこっとやってみました。 A1~D8にある表を、E1~G10に番号別に出力したいと言う場合の プログラムです。ちゃんとやってるヒマが無かったので、このまま だとうまく終了しませんが、その辺は適当に直してください。 とりあえず、番号は必ず昇順になってるという前提です。 Sub Macro1() i1 = 1: i2 = 1: i3 = 1 Do c1 = Range("A" & CStr(i1)).Value c2 = Range("C" & CStr(i2)).Value D1 = Range("B" & CStr(i1)).Value D2 = Range("D" & CStr(i2)).Value Select Case c1 - c2 Case 0 Range("E" & CStr(i3)).Value = c1 Range("F" & CStr(i3)).Value = D1 Range("G" & CStr(i3)).Value = D2 i3 = i3 + 1 i2 = i2 + 1 i1 = i1 + 1 Case Is > 0 Range("E" & CStr(i3)).Value = c2 Range("G" & CStr(i3)).Value = D2 i3 = i3 + 1 i2 = i2 + 1 Case Is < 0 Range("E" & CStr(i3)).Value = c1 Range("F" & CStr(i3)).Value = D1 i3 = i3 + 1 i1 = i1 + 1 End Select Loop End Sub 要は、貸方用、借方用、出力用とカウンターが3つ必要だという ことです。

KOH3193
質問者

お礼

お忙しい中、一例を示していただき、ありがとうございます。 勉強になります。 今回は当初の処理が済んだ後に、貸方のみの行データがあれば抽出し、処理済みのデータに続けて転記後、日付順に並べ替えるという方法で、どうにか解消できました。

その他の回答 (2)

  • FEX2053
  • ベストアンサー率37% (7987/21355)
回答No.2

いや、だから「伝票番号が一致したデータの中での、借り方側の 行数をカウントしているか」という話です。 私がよくやるのは、「貸方側科目名&借り方側科目名」というデータを 作って、この長さがゼロになるまでループを回す、って方法ですが。

  • FEX2053
  • ベストアンサー率37% (7987/21355)
回答No.1

コードがないと何とも言えませんが、単純に「仕分けるときに 貸方、借方の最大行数をチェックする」ロジックを入れれば 済む話では? つか、こういう処理をするとき、初めから「先頭列だけでコント ロールする」ような処理をする方が問題だと思いますけど。

KOH3193
質問者

補足

書き込みありがとうございます。 質問文が分かりづらかったようで、申し訳ありません。 借方と貸方の最大行数(これはループ時に取得しています)ではなく、“各仕訳の中での”借方の行数と貸方の行数で、借方の行数が少ない場合の質問です。 データの比較は、質問文にも書かせていただいていますが、仕訳伝票の“伝票番号と伝票行番号が一致する”という条件で比較しているので、先頭列だけでコントロールするような処理はしていません…。

関連するQ&A

  • エクセルVBA 日付で抽出、並び替え

    こういう場で初めて質問させていただきます。 どうぞよろしくお願いします。 エクセルVBAで日付(月毎)でデータを抽出し、並び替えを行いたいのですが, B列に日付が入りC~F列には帳簿の仕訳が入ります。 ここで B2 に日付が入って、C2~F2とC3~D3にデータが入った場合に オートフィルタをかけたら、3行目は日付の欄が空白なので うまく抽出できません。 なお、2行目と3行目は1つの仕訳なのでばらばらになるのも困ります。   仕訳は最低1行から最大で6行になります。 このように日付欄は1行だけど、その日付に対応する内容が数行に渡って入るような場合に日付から月毎にデータ抽出するには どのようなコードを書けばいいのでしょうか? A B    C      D     E    F  日付 借方科目 金額 貸方科目 金額  10/10 消耗品  300    現金   500        雑費   200   10/9   交際費  500    現金   500   10/8    雑費   200     現金   200 汚い表ですが、上記のような場合です。 10/10の分は2行で1つになりますので、このような場合です。 どうかよろしくご指導お願いします。 

  • 簿記の5伝票制

    取引にもとづいて作成されたものです。これらの伝票からその取引の仕分けをしなさい。 5伝票制の起票している。 1、 売上伝票 科目    金額 売掛金  50000 (答案) 借方科目   金額      貸方科目   金額   ?      ?         ?      ? 2、 仕入伝票             出金伝票 科目   金額          科目   金額 買掛金 150000        買掛金 60000 (答案) 借方科目   金額      貸方科目   金額   ?      ?         ?      ? (2行回答) ?の部分に答えをお願いいたします。

  • 簿記の質問

    取引にもとづいて作成されたものです。これらの伝票からその取引の仕分けをしなさい。 5伝票制の起票している。 1、 売上伝票 科目    金額 売掛金  50000 (答案) 借方科目   金額      貸方科目   金額   ?      ?         ?      ? 2、 仕入伝票             出金伝票 科目   金額          科目   金額 買掛金 150000        買掛金 60000 (答案) 借方科目   金額      貸方科目   金額   ?      ?         ?      ? (2行回答) ?の部分に答えをお願いいたします。         

  • 簿記の基本

    3伝票制により起票している。 1、次の伝票はある取引にもとづいて作成されたものである。これらの伝票からその取引を推定して、その仕分けを示しなさい。 出金伝票            振替伝票 科目  金額       借方科目  金額      貸方科目  金額 仕入  120000      仕入    80000      買掛金   80000 答案用紙 1、  借方科目  金額    貸方科目  金額   ?      ?       ?     ? (2行回答) 2、次の取引について起票された入金伝票にもとづいて、振伝を完成させなさい。 (取引) 中国商店に商品350000を売上、代金のうち160000は現金で受け取り、残りは掛けとした 入金伝票 科目    金額 売掛金  160000 答案用紙 2、            振替伝票  借方科目  金額    貸方科目  金額   ?      ?       ?     ? (1行回答) ?に答えをお願いいたします。

  • 簿記の質問

    3伝票制により起票している。 1、次の伝票はある取引にもとづいて作成されたものである。これらの伝票からその取引を推定して、その仕分けを示しなさい。 出金伝票            振替伝票 科目  金額       借方科目  金額      貸方科目  金額 仕入  120000      仕入    80000      買掛金   80000 2、次の取引について起票された入金伝票にもとづいて、振伝を完成させなさい。 (取引) 中国商店に商品350000を売上、代金のうち160000は現金で受け取り、残りは掛けとした 入金伝票 科目    金額 売掛金  160000 答案用紙 1、  借方科目  金額    貸方科目  金額   ?      ?       ?     ? (2行回答) 2、            振替伝票  借方科目  金額    貸方科目  金額   ?      ?       ?     ? ?に答えをお願いいたします。

  • 固定資産(パソコン)除却の伝票について教えてください。

    固定資産(パソコン)除却の伝票について教えてください。 当方、6月決算です。 パソコン2台を除却することになりました。 1台目 借方 減価償却累計額 222,965円 固定資産除却損 11,735円   貸方   器具備品 234,700円 2台目 借方 減価償却累計額 216,217円 固定資産除却損 11,783円   貸方   器具備品 228,000円 ここまでは出来ましたが、償却するにあたって以下の金額が発生しました。 データ消去料 5,250円(2台分) 運送料 2,919円(2台分) 買取金額 210円(2台分) そこで、教えてください。 1)データ消去料と運送料は「雑費」で大丈夫でしょうか?  決算仕訳で未払費用になるのはわかるのですが、相手方がわかりません。 借方 雑費5,250円 雑費2,919円   貸方   未払費用8,169円 これで大丈夫ですか? 2)買取の210円をどのように処理すれば良いのかわかりません。仕訳を教えてください。  ちなみに決算仕訳で未収金になるのはわかるのですが、相手方の科目は何になるのでしょうか。 お忙しいなか、お教えくだされば嬉しいです。よろしくお願いします。

  • 立替金の振替伝票の書き方

    出金・入金伝票で管理している現金の出し入れを振替伝票に書き換えないといけないらしく・・・ どのようにしたらいいのか、教えてください。 4/1にA社のお茶代を2000円立て替えていて、6/1にそのお金をもらいました。出金・入金伝票のように 金額 借方科目   摘要     貸方科目 金額 2000 雑費   お茶代(立替)  現金   2000  4/1の伝票 2000 現金   お茶代      雑費   2000  6/1の伝票 これでもOKなものなのでしょうか? 貸方科目等に 「立替金」と書く方がいいのでしょうか? 宜しくお願いいたします。   

  • 簿記の5伝票制の質問です

    取引にもとづいて作成されたものです。これらの伝票からその取引の仕分けをしなさい。 5伝票制の起票している。 1、 売上伝票 科目    金額 売掛金  50000 (答案) 借方科目   金額      貸方科目   金額  売掛金   50000     売上     50000 2、  仕入伝票             出金伝票 科目   金額          科目   金額 買掛金 150000        買掛金 60000 (答案) 借方科目   金額      貸方科目   金額   ?      ?         ?      ? 2の?の部分がわからないのでおしえてください。

  • 外注費の仕訳

    お世話になります。 外注費の仕分けについてお尋ねします。 作業を外注さんにしていただき、 \100,000銀行振り込みにて支払います。 そこで振込み手数料は外注さんで持ってもらう (振込み手数料\525)とした場合です。 私より外注さんの銀行へ振込むときに 振り込み手数料を含めた金額で振込みます。 源泉徴収税10%預かり金とします。 借方金額:\100,000 借方科目:外注費 貸方科目:○○銀行 貸方金額:\89,475 摘要:作業支払 貸方科目:預かり金 貸方金額:\10,000 摘要:源泉徴収税 貸方科目:支払手数料 貸方金額:\525 上記の仕訳で良いのでしょうか? \100,000が作業報酬ですので、 それに対して源泉徴収税10%の\10,000を預かり金。 外注さん持ちの振込み手数料\525を貸方へ。 お手数ですがご回答よろしくお願いします。

  • Excel◆CSV形式のデータを一括で整頓さたい

    とある管理ソフトからCSV形式でデータを取り出し、エクセルにインポートをしているのですが、 その際、どうしてもデータがずれてしまいデータ整理が途方もない作業になってしまいます。 やりたいことは、各部門別に「借方金額」「貸方金額」「差引残高」を月・年毎に 合計したものを出したいので、データを並び替え出来れば一番いいのですが、 隙間が開いているのと、部門の行に金額が配置されていないので、出来ない状況です。 各部門が1行づつずれているというわけでもなく、添付画像の5月8日のように、 2行ずれている場合もあります。 何かいい方法はありませんでしょうか? ちなみに元システムの改変はできないので、エクセルシート上で、もしくはデータを そのままメモ帳なので開いた状態で解決できる方法を探しています。 よろしくおねがいします。 画像は 左/元データをメモ帳で開いた状態 中央/通常のデータ取り込みでエクセルシートに入れた状態 右/できればこうなって欲しいという希望です・・・

専門家に質問してみよう