3/26/2020

Access。AccessでExcelの条件付き書式にあるデータバーのようなものを作りたい【Data bar】

Access。AccessでExcelの条件付き書式にあるデータバーのようなものを作りたい

<Access:String関数>

Excelには、データの大小をわかりやすく見せる機能が色々搭載されています。

例えば条件付き書式にある『データバー』。

セル内に横棒グラフを表示してデータの大小を比較することができます。

Accessには、なかなかグラフィカルな表現方法は用意されていないようですが、データ(数値)の大小を『データバー』のように視覚的に判断させてみたいと思います。

このようなテーブルを用意しました。

残念ながらAccessには条件付き書式のデータバーという機能はありませんので、クエリで次のような、「それっぽい」ことを目指します。

データバーというフィールドですが、フィールドの千の数値分、大きな星『★』を表示しています。

フィールドの百の数値分、「*」のアスタリスクで表示させています。

このようにすれば、データの大小を視覚的に判断することができるようになります。

そこでクエリの作り方。

演算フィールドの「千」は、
千: Int([売上高]/1000)
という演算フィールドを設定します。

Int関数は整数化する関数です。
1000で除算しますので、千の位だけが算出されます。
この値が大きな星『★』の数として算出されました。

演算フィールドの「百」は、
百: Int(([売上高]-[千]*1000)/100)
という演算フィールドを設定して作成します。

Excelだったら、MOD関数とか使えそうですが、Accessには、MOD関数がないので、売上高の千の位を除外することで、百の位を算出することが可能になります。

ここで算出された値は、「*」のアスタリスクの元の値として使用します。

演算フィールドの「データバー」について紹介していきます。
演算フィールドは、
データバー: String([千],"★") & String([百],"*")
として設定しました。

ここで使うAccessの関数は、『String関数
ExcelのREPT関数と似ていることができる関数です。

つまり、String関数は、指定した回数だけ文字を繰り返し表示することができる関数なのです。

そして、それぞれのString([千],"★")とString([百],"*")をお馴染みの「&」で文字列を結合させています。

それでは、実行してみましょう。

ご覧のように、「千の値」と「百の値」の回数だけ文字を表示していることが確認できます。

この方法をつかうことで、条件付き書式の「データバー」もどきをつくることが可能になります。

まぁ、データバーというよりも、ExcelのREPT関数をAccessでどうやるの?というのが正しいのかもしれませんが…

Excelでできることを、どうやってAccessで表現できるのか、考えてみると色々Access上で表現できるのかもしれませんね。