会計ソフトに預金データの入力をする際には、インターネットバンキングのデータを加工して会計ソフトへインポートすると入力時間の短縮や入力ミスを減らすことができるので便利です。
インターネットバンキングのデータは各銀行によってCSVなどに出力した時のデータ形式?項目?がバラバラだったりすることがあります。
例えば、A銀行はCSVなどへデータを出力すると
「日付」→「入金欄」→「出金欄」→「摘要」
の順にデータが出力されるのに対して、
B銀行の場合は
「日付」→「摘要」→「入金」→「出金」
の順にデータが出力されるといった具合に。
最近、CSVに出力した際に「摘要」データが独立した項目として出力されずに、「入金」欄や「出金」欄に記載されるインターネットバンキングのデータをに加工する機会があったので自分への備忘記録として残しておきます。
インターネットバンキングのデータが入出金欄に取引金額と摘要が記載されているデータだった時に、Excel関数で「金額」と「摘要」に分ける方法。
文章だとわかりにくいかもしれないので、どんな状況かを画像で示すと下記のような感じのインターネットバンキングのデータです。
まず、A列の「日付」欄については別に問題ないです。
B列については「摘要」となっていますが、入金なのか、支払いなのか、などのざっくりした摘要になっているので、このまま会計ソフトへ入力するには物足りません。
実際に会計ソフトへデータ入力する際にはC列の「お支払金額(円)」欄やD列の「お預かり金額(円)」に記載された取引先名などを使用すると思います。
で、このままのデータの並びだと会計ソフトへインポートするときに面倒なので、データの並びかたを下記のようにしたいと思います。
上の画像のようなデータの並び方にすると会計ソフトへのインポートがやりやすくなりますし、データも見やすくなります。(個人的に)
並び変える前の状態のデータを見てみると、パターンが3つあることが判明しました。
まず、1つめのパターンは
D列の「お預り金額(円)」欄に取引金額が記載されている場合には、その左横のC列の「お支払金額(円)」欄に具体的な摘要が記載される。
2つ目のパターンは
C列の「お支払金額(円)」欄に取引金額が記載されている場合にはその右横のD列の「お預り金額(円)」欄に具体的な摘要が記載される。
3つめのパターンは
C列の「お支払金額(円)」欄にもD列の「お預り金額(円)」欄にも具体的な摘要が記載されない。 これはATMで現金を預け入れたり、現金を引き出したりした場合などにはこのようなパターンになるようです。
今回のインターネットバンキングのデータの場合にはこの3つのパターンをExcelの「IFS関数」と「ISTEXT関数」を使って分類することでデータの並び替えができるようになりました。
ISTEXT関数で摘要(文字列)かどうかを判定する。
ネットで調べたところ、ExcelにはISTEXT関数というものがあるそうで、この関数はセルのデータを判定し、セルのデータが文字列であればTRUEを返す関数のようです。
ということはこのISTEXT関数をつかうことで下記のインターネットバンキングのデータのC列とD列のセルのデータが文字列かどうかを調べることができます。
さらにIF関数と組み合わせることで、文字列だった場合とそうでなかった場合に処理をわけることができます。
例えば今回の場合、
I列に
「=IF(ISTEXT(C2),C2,””)」
と入力することで、C2セルが文字列なら、C2セルを表示する。もしC2セルが文字列ではなければ空白にすることができます。
これで、1つ目のパターンの
D列の「お預り金額(円)」欄に取引金額が記載されている場合には、その左横のC列の「お支払金額(円)」欄に具体的な摘要が記載されるデータについて「摘要」部分だけを引っこ抜くことができました。
この要領で2つ目のパターンの
C列の「お支払金額(円)」欄に取引金額が記載されている場合にはその右横のD列の「お預り金額(円)」欄に具体的な摘要が記載されるデータと
3つめのパターンの
C列の「お支払金額(円)」欄にもD列の「お預り金額(円)」欄にも具体的な摘要が記載されないデータ
についても「摘要」部分だけを引っこ抜いていきます。
IFS関数で複数の条件がある場合の処理を設定する。
2つめのパターンと3つめのパターンを考慮するためにIF関数ではなくてIFS関数を使っていきます。(同じ処理はIF関数でもできると思いますが、個人的にIFS関数の方がわかりやすかったので。)
具体的にはI列のセルに
=IFS(ISTEXT(C2),C2,ISTEXT(D2),D2,ISTEXT(B2),B2,TRUE,””)
と数式を入力すると2つめのパターンと3つめのパターンを考慮して「摘要」部分だけを引っこ抜くことができました。
=IFS(ISTEXT(C2),C2,ISTEXT(D2),D2,ISTEXT(B2),B2,TRUE,””) の数式のうち、
=IFS(ISTEXT(C2),C2,ISTEXT(D2),D2,ISTEXT(B2),B2,TRUE,””)
この赤字の部分の記述で、C列が文字列ならC列を入力することの処理ができ、
=IFS(ISTEXT(C2),C2,ISTEXT(D2),D2,ISTEXT(B2),B2,TRUE,””)
この青字の部分の記述で、(C列が文字列ではなかった場合に)D列が文字列ならD列を入力することの処理ができ、
=IFS(ISTEXT(C2),C2,ISTEXT(D2),D2,ISTEXT(B2),B2,TRUE,””)
この緑字の部分の記述で、(C列もD列も文字列ではなかった場合に)B列が文字列ならB列を入力することの処理ができ、
=IFS(ISTEXT(C2),C2,ISTEXT(D2),D2,ISTEXT(B2),B2,TRUE,””)
このオレンジ文字の部分の記述でC列、D列、B列すべて文字列でない場合には空白にする処理ができます。(今回の場合、Cの16セルのみ空白になっています。)
まとめ
文字列かどうかをExcelの関数を使って判定させることで、「摘要」部分だけ引っこ抜いてインターネットバンキングのデータを加工しました。
加工してしまえば、あとはそれぞれの会計ソフトのインポート形式にデータを整えるだけなので難しくはないかと。
ちなみに、G列の日付欄はA列のデータをDATEVALUE関数で加工して、H列の取引金額欄はMAX関数を使ってC列かD列の金額を引っ張ってきています。
他にもやり方はたくさんあると思いますが、何か参考になれば幸いです。
【本日の近況報告】
最近ノートパソコンが安くなっていて気になっています。
特にHpのノートパソコンでENVYってやつの木目調のデザインのやつが気になっています。そういえば昔、携帯(ガラケー)も木目調の携帯使ってたような。
メモリ16GB、SSD512GBで10万を少し超えるくらいなので自分にはこれで十分ですね。
【本日の1曲】
Beastie Boys – Body Movin’ (Fatboy Slim Remix)
当記事を作成中にラジオから流れてきた一曲。
ラジオから流れたのはオリジナルの方でしたが、ファットボーイRemixは大学生のころDJやってた先輩が良くかけていたので個人的に思い入れがあるせいか、しっくりきますね。
たしかこの曲とRunDMCのWalk this wayと繋げてたような・・
あと確か、Franz Ferdinandのtake me outとこの曲のマッシュアップもあったはず。