CSVファイルをADOで扱う連載の10回目です。前回の記事はこちらになります。
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行目は左つめとなっています。書式はそれぞれ以下の機能を持っています。
記号 | 機能 |
---|---|
@ | 文字の場所を確定します。"@"のある場所で文字がある場合、その文字が表示されます。文字がない場合には、スペースが表示されます。文字の位置は右から左に順に決まります。 |
& | 文字の場所を確定します。"@"とほぼ動きは同じですが、文字がない場所では何も表示されません。 |
< | 小文字に変換します。 |
> | 大文字に変換します。 |
! | "@"や"&"で決まる文字の位置を左から右の順に変更します。 |
いかがですか?色々な変換ができるというこがわかったと思います。また、今までもお話ししましたが FORMAT はVBAのFORMAT関数とほぼ同じ動きをします。他にも色々な書式をサポートしていますので調べてみてください。
次回は日付と時間
今回は、 FORMAT の数値、文字の変換書式について説明しました。覚えておくと色々使えそうです。さらに FORMAT には日付や時間の表記形式を取り扱うこともできます。次回はこれを中心に日付や時間の扱い方をご紹介します。お楽しみに!!