メルカリには、経理するためのCSVファイルなどのデータが用意されていません。
ただ、なければなんとかしてつくればいい。私がやっている流れをまとめてみました。
経費にした本を売ったら経理が必要
個人間で簡単に売り買いできるメルカリ。
このメルカリの登場によって、個人情報もほとんど知られずに、かつ、キャッシュレスでかんたんに個人間での取引ができるようになりました。
そんなメルカリ、私も使うことがあります。
その取引のほとんどは、本を買って、読んだものを売るという流れです。
日用品なら、メルカリで売っても税金の話は関係ないんです。
ただ、事業に使うもの、つまり経費にしたものを売る場合には、収入として認識する必要があります。
ということは、メルカリでの取引も経理が必要なケースもあるわけですが、メルカリは経理用のデータをダウンロードできるような仕組みがありません。(2019年6月15日現在)
そこで、メルカリで本を売った場合の経理処理、データをつくり、クラウド会計にインポートするまでの流れをまとめてみました。
メルカリ残高を管理する?
メルカリのややこしいところは、メルペイを利用することでメルカリで本を買ったときの入金と、プライベートでモノを買った場合のサイフ(メルペイ残高)が同じになるということです。
それを残高までキッチリ合わせようと思うと、プライベートの出金まで事業主貸で入力する必要があるわけです。
これは結構大変で、かつ、壮大な話です。
ということで、私は本を買ったり、売ったりという税金計算に影響する取引だけを会計処理するようにしています。
メルカリで買った本をどうやって経理する? Excelマクロを使うのがいい | GO for IT 〜 税理士 植村 豪 Official Blog
税理士の方から「んないい加減な処理したら困るで」と怒られるかもしれませんけど…。
メルカリのデータ加工 Evernote→Excel
CSVファイルがあれば、まだいいのですが、メルカリはそれすらない。
ということで、まずは経理をするためのデータを準備しなくてはいけません。
- メルカリアプリから売却済み情報をコピーしてEvernoteへ
- Evernoteでデータ加工
- Excelに貼り付け
① メルカリの売却済み情報をコピーしてEvernoteへ
私は、スマホのメルカリのマイページから取引情報をコピーし、
FastEverというメモアプリに貼り付けます。(Evernoteや他のメモアプリでも大丈夫です。)
購入のときと違うのは、代金だけでなく、販売手数料や配送料の表示もある点です。
② Evernoteでデータ加工
このとき、この後Excelに貼り付けるときの前準備として、この4行にわたるデータを1行にまとめています。(1行にまとめても各項目と金額のスペースは触らずです。)
送料 送料込み(出品者負担)という1行は経理に不要な情報なので、削除しています。
③ Excelに貼り付け
データが複数ある場合には、Evernoteでマージして、1つにまとめて、
ExcelセルA2に貼り付けます。
Excelで必要なデータだけまとめる
ご覧のとおり情報が多すぎるので、まずは交通整理をします。
A列の情報のうち必要な部分だけ、抽出します。
ここで必要とするのは、タイトル、日付に収入、販売手数料、配送料の5つです。経費を相殺した後の手取り額は差額で計算しています。
必要な情報だけをいったん整理しています。このデータの抽出方法は、メルカリで買う場合のパターンと同様です。
詳しくは、こちらの記事に書いています。
メルカリで買った本をどうやって経理する? Excelマクロを使うのがいい | GO for IT 〜 税理士 植村 豪 Official Blog
例として、2行目の場合は次の式で抽出しています。
- タイトル → =LEFT(A2,FIND(“商品代金”,A2)-1)
- 日付 → =DATEVALUE(MID(A2,FIND(“時 “,A2)+1,6))
- メルカリ収入 → =VALUE(MID($A2,FIND(“代金 “,$A2)+4,FIND(“手数”,$A2)-2-FIND(“代金”,$A2)-4))
- 販売手数料 → =VALUE(+MID($A2,FIND(“手数”,$A2)+5,FIND(“配”,$A2)-FIND(“手数”,$A2)-5))
- 配送料 → =VALUE(MID($A2,FIND(“送料 “,$A2)+4,FIND(“配送”,$A2)-FIND(“送料”,$A2)+4))
かなりややこしい式ですが、文字列を抜くなら、私の場合だとこういった形になります。要は必要な情報を抽出できればいいので。
FIND関数の検索対象には、よくある文字では、うまく抽出できないことも想定され、本のタイトルにはあまりなさそうな、ヘンテコな文字にしています。
さらに文字を抽出しただけでは、やっぱり文字列のままなので、日付はDateValue、金額はValueを使って日付、数字扱いに修正しています。
販売手数料は10%と決まっているのですが、例外も想定して、データから抽出する処理をしています。
3つの取引仕訳を準備する
K列以降に会計仕訳のデータを反映させます。数式を使って、D列からH列のデータを利用しましょう。
収入の仕訳、販売手数料の仕訳、配送料の仕訳とそれぞれ準備します。
ここでは、次のようにしています。(本当は売上から入金までには、数日のタイムラグがありますが、ここでは考慮していません。)
- 収入の仕訳 メルペイ 1,800/ メルカリ収入 1,800
- 販売手数料の仕訳 メルカリ経費 180 / メルペイ 180
- 配送料の仕訳 メルカリ経費 195 / メルペイ 195
ひとまず、2行目のデータにさえ、数式を入れておけば、3行目以下はあとでコピーするので大丈夫です。
3つの取引をExcelマクロで1つに→CSVファイル作成
最後、3つの取引をインポートファイルを作成するために、1つにまとめます。
1つのシートにコピペするわけですが、この処理にはExcelマクロを使います。
これまでの情報はシート「mercari-sale」にあるのですが、前述の3つの取引仕訳をシート「data」に順番にコピーしていくという流れです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
Sub mercarisale() '1 シート「mercari-sale」のデータをカウントし、コピー Dim Max_row_sale As Long Max_row_sale = Worksheets("mercari-sale").Range("a" & Rows.Count).End(xlUp).Row '前回の履歴を削除して新規コピー Worksheets("mercari-sale").Range("K3", "AK" & Rows.Count).ClearContents Worksheets("mercari-sale").Range("K2", "AK2").Copy Worksheets("mercari-sale").Range("K3", "AK" & Max_row_sale) '2 シート「data」のデータをクリア Worksheets("data").Cells.ClearContents '3 売上データ1をコピーして、シート「data」の1行目に貼り付け Worksheets("mercari-sale").Range("K1").CurrentRegion.Copy Worksheets("data").Range("B1").PasteSpecial Paste:=xlPasteValues Worksheets("data").Rows(1).Delete '4 手数料データをコピーして、シート「data」の最終行+1に貼り付け Dim Max_row_data Max_row_data = Worksheets("data").Range("b" & Rows.Count).End(xlUp).Row Worksheets("mercari-sale").Range("R1").CurrentRegion.Copy Worksheets("data").Range("B" & Max_row_data + 1).PasteSpecial Paste:=xlPasteValues Worksheets("data").Rows(Max_row_data + 1).Delete '5 配送料データをコピーして、シート「data」の最終行+1に貼り付け Dim Max_row_data2 Max_row_data2 = Worksheets("data").Range("b" & Rows.Count).End(xlUp).Row Worksheets("mercari-sale").Range("Y1").CurrentRegion.Copy Worksheets("data").Range("B" & Max_row_data2 + 1).PasteSpecial Paste:=xlPasteValues Worksheets("data").Rows(Max_row_data2 + 1).Delete '6 配送料データをコピーして、シート「data」の最終行+1に貼り付け Dim Max_row_data3 Max_row_data3 = Worksheets("data").Range("b" & Rows.Count).End(xlUp).Row Worksheets("mercari-sale").Range("AF1").CurrentRegion.Copy Worksheets("data").Range("B" & Max_row_data3 + 1).PasteSpecial Paste:=xlPasteValues Worksheets("data").Rows(Max_row_data3 + 1).Delete '7 B列の書式を「yyyy/mm/dd」に Columns("B").NumberFormatLocal = "yyyy/mm/dd" '8 A列に連番を割り振る Dim i For i = 1 To Range("B" & Rows.Count).End(xlUp).Row Range("A" & i).Value = i Next '9 CSVデータを保存 Worksheets("data").Activate Application.DisplayAlerts = False ActiveWorkbook.SaveAs Filename:="import.csv", FileFormat:=xlCSV, Local:=True ActiveWorkbook.Save ActiveWorkbook.Close Application.DisplayAlerts = True End Sub |
このマクロのポイントだけ見ていきます。
シート「mercari-sale」の本の行(A列)数をカウントし、会計仕訳の数式を行数分コピーします。
そのあと、「ClearContents」でシート「data」をキレイに掃除しておきます。
はい、では次です。
この3つは収入、販売手数料、配送料の仕訳をシート「data」に貼り付ける記述。CurrentRegionというのは、特定のデータの上で、Ctrl+Aをタッチするイメージです。
そして、新しいデータを貼り付ける時に、毎回、一番下のデータ行数を数えるということをやっています。
そうしないと、上手くコピペができないので。1番上の項目行は、最後に削除しています。
なぜA列でなくB列にコピーしているか?A列には、番号を割り振るためです。
これは、マネーフォワードにインポートする場合、伝票番号の情報がないと、仕訳がすべて1つの番号で管理され、取引日を1番上の日付で認識します。(今回の場合はすべてが6月4日の取引になってしまう)
ということは、仕訳パターンに1つずつ日付を入れている意味がなくなるわけです。
これを解決するには、伝票番号を別々にすること。そうすると1つずつの仕訳にすることができます。(意外にこの辺りは融通が聞かない…)
そこでA列に連番を振っています。
シート「data」はこういった感じになります。
と、ここまでの流れを手間と感じるかどうかは、なんとも言えませんが、入力しないで既にあるデータを活かすということであれば、ちょっと強引ながらこれかなと。
データがなくてもつくれれば、後はなんとかなります。
最初の設定は大変ですが、それ以降はそこまで時間がかからない。というのがメリットです。
ひとまず売る側の経理インポート、1つのやり方として参考にしていただければ。
【編集後記】
昨日はクラウド会計のコンサルティング。ちょっと先ですが、8月にドラゴンクエストの映画を3人で見に行く約束をしました。といってもドラゴンクエスト、見たこともなければやったこともない2人ですが、映像がすごくてあれはすぐに気に入りそうです。聞いたら長男(4)はスライムだけはなぜか知っているようです。
【昨日の1日1新】
※「1日1新」→詳細はコチラ
からやま 大府店