FORMATの書式指定(CSVファイルをADOで扱う⑩)

CSVファイルをADOで扱う連載の10回目です。前回の記事はこちらになります。

hirocom777.hatenadiary.org

FORMATの使い方

 前回は、SQLを指定してCSVファイルを確認できるツール(CSV_ReaderSQL)で読込んだデータを編集してみました。これもかなり使えるテクニックです。

その中で FORMAT なるものが出てきましたが、これ、結構色々なことに使えるんですよ。今回は、 FORMAT の色々な使い方についてご紹介していきたいと思います。

今回もSQLを指定してCSVファイルを確認できるツール(CSV_ReaderSQL)を使います。 ツールは以下からダウンロードしてください。

CSV_ReaderSQL110.zip - Google ドライブ

色々な書式の設定

今回はCSVファイルに記述してある値を、これまたCSVファイルに記述してある書式を使って FORMAT で書式変更した結果を表示してみたいと思います。今までと同じようにCSV_ReaderSQLで'Test.csv'があるフォルダーを指定しておきましょう。ツールの、SQLコマンド欄に以下を入力してください。

SELECT 値,書式,FORMAT(値,書式) As 結果 FROM [Test.csv]

数値の変換書式

まずは数値の変換書式について見てみましょう。'Test.csv'が以下を以下の様に編集してください。

"値","書式"
"1","000"
"2","###"
"0.5","0%"
"1000","0,0"
"0.5","0%"

準備ができたら上記のSQLを実行してましょう。以下の結果となりました。

書式 結果
1 000 001
2 ### 2
0.5 0.00 0.50
1000 0,0 1,000
0.5 0% 50%

数値の表示形式を変更することができました。またご覧の通り、値のみならず書式の指定もファイル内で指定できます。書式はそれぞれ以下の機能を持っています。

記号 機能
0 数値の場所を確定します。"0"のある場所で1桁の数値がある場合、その数値が表示されます。数値がない場合には、0を表示します。小数点部分が"0"の位置以外にある場合は、"0"の位置にあわせて四捨五入されます。
# 数値の場所を確定します。"0"とほぼ動きは同じですが、数値がない場所では何も表示されません。
. 小数点の位置を指定します。
, 1000単位の区切り記号を挿入します。
% 数値を100倍してパーセント記号(%)を付与します。

文字の変換書式

続いては文字の変換書式について見てみましょう。'Test.csv'が以下を以下の様に編集してください。

"値","書式"
"ABC","@@ @@"
"ABC","&& &&"
"ABC","<"
"abc",">"
"ABC","!@@ @@"

実行してみると、以下の様になりました。

書式 結果
ABC @@ @@ A BC
ABC && && A BC
ABC < abc
abc > ABC
ABC !@@ @@ AB C

1行目と2行目の違いが解りずらくて申し訳ありません。1行目は先頭の1文字が空白となっていますが、2行目は左つめとなっています。書式はそれぞれ以下の機能を持っています。

記号 機能
@ 文字の場所を確定します。"@"のある場所で文字がある場合、その文字が表示されます。文字がない場合には、スペースが表示されます。文字の位置は右から左に順に決まります。
& 文字の場所を確定します。"@"とほぼ動きは同じですが、文字がない場所では何も表示されません。
< 小文字に変換します。
> 大文字に変換します。
! "@"や"&"で決まる文字の位置を左から右の順に変更します。

いかがですか?色々な変換ができるというこがわかったと思います。また、今までもお話ししましたが FORMATVBAのFORMAT関数とほぼ同じ動きをします。他にも色々な書式をサポートしていますので調べてみてください。

次回は日付と時間

 今回は、 FORMAT の数値、文字の変換書式について説明しました。覚えておくと色々使えそうです。さらに FORMAT には日付や時間の表記形式を取り扱うこともできます。次回はこれを中心に日付や時間の扱い方をご紹介します。お楽しみに!!

hirocom777.hatenadiary.org

CSVファイルをADOで扱う連載記事はコチラからどうぞ