LoginSignup
3
3

More than 1 year has passed since last update.

EXECL関数のみで、データバー的なものを表現する

Last updated at Posted at 2021-06-01

image.png

REPT関数を使用して、データバーを再現しました。自身以外の数値でも計算できるので、使い道はあるかと思います。
拡大率を変更すると見た目が変わってしまうので注意。

1[AB:AC]

image.png

=REPT("|" , 対象のセル )

これで数値分の"|"(ヴァーティカルバー:Shit+¥(Backspaceの隣))が表示されます。

■や環境依存文字なども使用できます。

書体を$"HG正楷書体-PRO"$や$"教科書体"$などにしてフォントサイズを小さくすると"|"の間隔がほとんどなくなりデータバー風になります。
文字サイズを変更することでも見た目が変わります。

<サンプル> 文字数、文字サイズ、文字色はすべて同じです
image.png
フォントサイズを11=>6に変更
image.png


2[AE:AG]

image.png

2列使用して80を超えると赤く表示します。

1列目: =if( 対象セル <=80 , REPT("|", 対象のセル ) , REPT("|",80))

2列目: =if( 対象セル <=80 , ""                    , REPT("|", 対象のセル - 80))

としています。あとは1列目の幅を調整して、2列目の文字色を赤くしてやれば完成です。
(数値を赤くしたり背景を塗るのは条件付き書式で)


3[AI:AJ]

image.png

3つ目では、現在までの経過日数を出していますが、1日="|" にしてしまうと長くなってしまうので、15で割って約半月="|"にしています。

=REPT("|" , ( NOW()- 対象のセル )/15 )

例えばを最大値を決めたければ

=REPT( "|" , 対象のセル / 最大値 * 表示させる最大文字数 )

ex1.) =REPT( "|" , 対象のセル / 100 * 10 )
    '最大値100を10個の"|"で表示する

ex2.) =REPT( "|" , 対象のセル / MAX( すべての対象のセル範囲 ) * 100 )
    'すべての対象のセル範囲中で最大のものを100個の"|"で表示する = パーセント(%)表示

とすることで決められます。


4[AL:AP]

image.png

一番右の表では合計の欄に

="  " & SUM( 対象範囲 ) & REPT( " " , 5 - LEN( SUM( 対象範囲 ))) & REPT( "|"  ,SUM( 対象範囲 ) / 10 )

1.                            "  "   '最初の余白'
2.                   SUM( 対象範囲 )  '合計'
3. REPT(" ",5-LEN(SUM( 対象範囲 )))   '5文字になるように" "を追加'
4.      REPT("|",SUM( 対象範囲 )/10)  '数値の数/10だけ"|"を表示'

と入力しています。
image.png

書体によっては、数字とスペースの幅が異なるので、バーの開始位置が合いません。
幅が同一の$"SimSun"$などの書体に変更します。

(バーと合計の表示順を逆にすればいいだけでは?)
image.png


色も付きます
image.png

追記

文字の方向を回転させればグラフも作成できます
image.png

REPT関数に小数点を含む数値を指定した時と、切り上げ/切り捨て/四捨五入
image.png



以上

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3