RStudio要約
install.packages("devtools")
library(devtools)
# エクセル入出力パッケージ
install.packages( "openxlsx" )
library( openxlsx )
# eTax入出力パッケージ
install_github("nt1969m/office",force=T)
library(office)
# 留意事項等
"https://www.e-tax.nta.go.jp/hojin/gimuka/csv_jyoho1/2/all2.pdf" |>
browseURL()
# 入力・標準フォーム
i01 <-
"https://www.e-tax.nta.go.jp/hojin/gimuka/csv_jyoho3/1/HOT010_3.0_BS_10.xlsx" |>
read.xlsx(startRow = 2)
View(i01)
# 残高等を編集
# 出力・標準フォーム
getwd() # setwd() # ^⇧H
i01 |>
Write_eTax("HOI010_4.0.csv")
i01 <-
file.choose() |> Read_eTax("",f=_,"")
colnames(i01) <-
"https://www.e-tax.nta.go.jp/hojin/gimuka/csv_jyoho2/2/HOI010_4.0_.xlsx" |>
read.xlsx(startRow = 2) |> # 入力・標準フォーム
colnames()
View(i01)
i01 <- # 合計行が無い場合のみ
i01 |>
rbind(c(1,1,"","","","",0,""))
i <- which(i01[,2]==1) # 合計行
i01[i,7] <-
i01[-i,7] |> sum()
# 【e-Taxソフト】財務諸表(CSV)を作成する
"https://qiita.com/nt1969m/items/7edac99942a8c11fe32c" |>
browseURL()
b <- which(bs[,1]=="現金及び預金")
bs[b,]
bs[b,2] <- i01[i,7]
# 試算表(Trial balance(トライアル バランス)の略、以下「tb」という。)
# ※作成方法は後述
# から財務諸表に転記する。
#(代表例)
b <- which(bs[,1]=="法人税等還付税額")
b <- which(bs[,1]=="受取利息")
b <- which(bs[,1]=="法人税、住民税及び事業税") # 税額控除所得税 別表6(1)
b <- which(bs[,1]=="未払法人税等") # 本決算にて計上、仮決算では無視(どうせゼロになる)
以下、ファイル名の数字4桁は金融機関コードです。
例えば三井住友銀行なら、
0009(金融機関コード)SMBC JP JT(SWIFTコード)です。
PayPay銀行
B_0033 <-
file.choose() |>
Read_MS("",f=_,"")
View(B_0033)
i01[1,7] # 転記先の確認
i01[1,]$期末現在高 <-
tail( B_0033$残高 ,n=1 )
# 試算表 1_摘要ごとに、出入(2_出と3_入)を集計する。
# 1_摘要が「勘定科目」となるはず。
tb_0033 <-
aggregate(B_0033[,10:9],by = list(substr(B_0033[,8],1,6)),FUN=sum)
View(tb_0033)
# 利息の源泉徴収額 後tb
i <- grep("決算お利息",B_0033[,8])
Risoku <- B_0033[i,]
Risoku$お支払金額 <-
(Risoku$お預り金額 * 15.315 / (100 - 15.315) ) |>
trunc()
View(Risoku)
tb_0033 <-
c("国税",Risoku$お支払金額 |> sum() ,NA) |>
rbind(tb_0033)
tb_0033 <-
c("受取利息",NA,Risoku$お支払金額 |> sum() ) |>
rbind(tb_0033)
View(tb_0033)
ゆうちょ銀行
B_9900 <-
file.choose() |>
Read_MS("",f=_,"",n=7)
View(B_9900)
i01[2,]$期末現在高 <-
tail( B_9900[,7],n=1 )
tb_9900 <-
aggregate(B_9900[,4:3], # 出入ではなく入出金なので。。
by = list( paste(B_9900[,5],B_9900[,6]) ),
FUN=sum)
View(tb_9900)
住信SBIネット銀行
# 普通預金
B_0038_1 <-
file.choose() |>
Read_MS("",f=_,"")
B_0038_1[,5] <- gsub(",","",B_0038_1[,5]) |> as.numeric()
i01[3,]$期末現在高 <- B_0038_1[1,]$残高.円.
# SBIハイブリッド預金
B_0038_2 <-
file.choose() |>
Read_MS("",f=_,"")
B_0038_2[,5] <- gsub(",","",B_0038_2[,5]) |> as.numeric()
i01[4,]$期末現在高 <- B_0038_2[1,]$残高.円.
# 試算表
B_0038 <- B_0038_1 |> rbind(B_0038_2)
B_0038[,3] <- gsub(",","",B_0038[,3]) |> as.numeric()
B_0038[,4] <- gsub(",","",B_0038[,4]) |> as.numeric()
tb_0038 <-
B_0038[,3:4] |>
aggregate(by = list(B_0038[,2]),FUN=sum, na.rm = TRUE)
View(tb_0038)
以下、過去の挫折。。
反省文
反省の概要#eTaxで勘定科目内訳明細書を印刷できなくなった。
(2020年からCSV閲覧不可)
→ 紙やPDFの代替物として、エクセルを確保せざるを得ないかと。。
国税庁 | 当初案 (廃案) |
第2案 | |
---|---|---|---|
会計データ作成 | 言及なし | R言語 (無料) |
R言語 (無料) |
税務データ作成 (エクセル) |
Office2013(買い切り) | 使わない | Office Online(無料) |
CSV作成 (eTax型式) |
エクセル手作業 | R言語 (無料) |
R言語 (無料) |
#エクセルをCSV(eTax型式)に変換する、
Rのパッケージを作成しました。
勘定科目内訳書にも対応したつもりなので、
下記記事を参照してください。
【e-Taxソフト】財務諸表(CSV)を作成する
https://qiita.com/nt1969m/items/7edac99942a8c11fe32c
#以下廃案(2020-11-04)
#
はじめに
この記事は「法人税」のお話です。
e-Taxソフトで提出できるデータ形式として、
「CSV形式が認められた!」
のは、2019年5月だったと思う。
これをきっかけに、経理作業を見直しました。
この記事ではMacにインストールしたR言語を使っています。
##
<Before>
「経費精算」(省略)
「預金残高を確認する」
銀行のCSVデータを会計ソフトに取り込む。
「利息計上する」
手書き伝票を会計ソフトに取り込む。
「①預貯金等の内訳書を作成する」
試算表(会計ソフトの帳票)をe-Taxソフトに手入力する。
##
<After>
「経費精算」(省略)
「預金残高を確認する」(従来通り)
「利息計上する」
R言語でCSVデータを作成し、会計ソフトに取り込む。
注.この記事では省略
普通預金もだが、特に定期預金の扱いには、知恵がいる。
「①預貯金等の内訳書を作成する」
R言語でCSVデータを作成し、e-Taxソフトに取り込む。
#
銀行の出入明細をR言語に取り込む
この記事では「入出金明細」のことを「出入明細」と表記します。
↓この関数でどの銀行にも対応できる、と思う。
Read_Bank <- function( f ,e=".csv" ,n=0 )
# f:ファイル名(除く、拡張子)
# e:拡張子(extension)
# n:skipの引数
read.csv(
paste0( f ,e )
,skip=n
,fileEncoding="CP932"
,stringsAsFactors=F
)
以下、ファイル名の数字4桁は金融機関コードです。
例えば三井住友銀行なら、
0009(金融機関コード)SMBC JP JT(SWIFTコード)です。
##
ジャパンネット銀行
f <- file.path( FY ,"B_0033_JNB" ,"JNB_2020-08-31" )
# FY:会計年度(Fiscal Year)のディレクトリー
# ジャパンネット銀行のディレクトリー
# 出入明細のファイル名(除く.csv)
jnb <- Read_Bank( f )
jnb.bal <- tail( jnb$残高 ,n=1 )
##
ゆうちょ銀行
jp <- Read_Bank( f ,n=7 )
# n=7:サンプルcsv参照
jp.bal <- tail(jp$現在.貸付.高,n=1)
1:お客さま口座情報
2:現在高:,"1",円,
3:出力日時:令和 02 年 09 月 04 日 18 時 20 分
4:お客さま口座番号:10180-12345678
5:照会対象:期間指定
6:日付指定:令和 01 年 09 月 01 日 〜 令和 02 年 08 月 31 日
7:明細件数:17
8:取引日,入出金明細ID,受入金額(円),払出金額(円),詳細1,詳細2,現在(貸付)高,
9:20190919,201909190000001,1060000,,振込,タカハシ ナオヒト,1069117,
(以下、個人情報につき削除)
##
住信SBIネット銀行
# 普通預金
sbi1 <-Read_Bank( f )
sbi1.bal <- sbi1[1,]$残高.円.
# SBIハイブリッド預金
sbi2 <-Read_Bank( f )
sbi2.bal <- sbi2[1,]$残高.円.
#
eTaxソフト①預貯金等の内訳書
setwd( paste0( FY ,"/eTax" ) ) # 出力先のディレクトリー
getwd() # 目検(目視にて検証する)
# ①に限らず、↓この関数で対応できるはず。。
Write_etax <- function( df ,s )
# df:入力データフレーム型(行列型でも動くと思う)
# ↓
# s:出力シート名(MSエクセルのあれが必須です。。)
write.table(
df ,paste0( s ,".csv" )
,quote=F
,sep=","
,row.names=F
,col.names=F
,eol="\r\n"
,fileEncoding="CP932"
)
#(命名規約)バージョン番号(_4.0_)までは必須
s <- "HOI010_4.0_預貯金等"
i01 <- data.frame( matrix( NA ,0 ,8 ) )
#(任意)↓列名、なくても大丈夫(あくまでも説明のため)
colnames( i01 ) <- c( "フォーマット区分=1" ,"行区分=" ,"金融機関名=" ,"支店名=" ,"種類=" ,"口座番号=" ,"期末現在高=" ,"摘要=" )
i01[1,] <- c(1,0,"みずほ","渋谷","普通","210-1234567" ,"82332","")
i01[2,] <- c(1,0,"ジャパンネット","本店営業部","普通","001-1234567" , jnb.bal , "")
i01[3,] <- c(1,0,"","","定期","" ,"0" ,"")
i01[4,] <- c(1,0,"ゆうちょ","018","普通","018-1234567",jp.bal,"")
i01[5,] <- c(1,0,"住信SBI","法人第一","普通","106-1234567",sbi1.bal,"")
i01[6,] <- c(1,0,"","","ハイブリッド","" ,sbi2.bal,"")
i01[7,] <- c(1,0,"","","定期","" ,"0","")
#カンマ削除
i01$"期末現在高=" <- gsub( "," ,"" ,i01$"期末現在高=" )
Write_etax( i01 , s )
#
eTaxソフト、csv形式に関する情報
CSV形式で提出可能
勘定科目内訳明細書及び法人税申告書別表等(明細記載を要する部分)のCSV形式データの作成方法
https://www.e-tax.nta.go.jp/hojin/gimuka/csv_jyoho2.htm
勘定科目内訳明細書の標準フォーム等(平成31年4月1日以後終了事業年度分)
https://www.e-tax.nta.go.jp/hojin/gimuka/csv_jyoho2_meisai_31.htm
財務諸表のCSV形式データの作成方法
https://www.e-tax.nta.go.jp/hojin/gimuka/csv_jyoho4.htm
#
参考文献
清文社:STEP式 法人税申告書と決算書の作成手順