はじめに
Twitterの診断メーカーにてチャート関数 CHART()というグラフを表示する関数が公開されました。(診断メーカー お知らせブログ:2016年8月17日)
グラフの表示について条件分岐しようとしたところ、ちょっと手間取ったため備忘録として残しておきます。
ポイント
- CHART関数の引数にIF関数を用いることで条件分岐可能
- IF関数の引数としてCHART関数は使用不可
- リスト内 (RESULT) にIF関数を記述して、CHART関数に渡しても動作することを確認
実装例
以下にグラフの種類と描写内容を条件分岐する実装例を示す。
学力試験をテーマとし、コース名・科目名・点数を表示、合計点・偏差値を算出、最後にグラフを表示する。
診断結果テキスト
[USER]さんの試験結果 //名前を表示
//コース名と対応する必須科目名を表示
区 分: =IF( [RESULT1] = 1 , 文系コース
国 語 , =IF( [RESULT1] = 2 , 理系コース
数 学 , 総合コース
外国語 ) ):[RESULT8]点
//IF関数中で改行をすると表示結果にも改行が反映される
//各コースに対応する科目名と点数を表示
[RESULT2][RESULT4][RESULT6]:[RESULT9]点
[RESULT3][RESULT5][RESULT7]:[RESULT10]点
//リスト2,4,6を並べているが、リスト内にIF関数を記述してあるため、最終的には対応する科目名のみ表示
//合計点と偏差値をCALC関数で算出
合計点:=CALC( [RESULT8] + [RESULT9] + [RESULT10] )点
偏差値:=CALC( 10 * (=CALC( [RESULT8] + [RESULT9] + [RESULT10] ) - 150) / 60 + 50 , 1 )
//CHART関数でグラフを描写
=CHART(
//グラフの種類を指定するTYPEを、リスト1の結果から条件分岐
=IF( [RESULT1] <= 2 , TYPE:RADAR , TYPE:BAR ),
DATA:[
//DATAに直接IF関数を記述して条件分岐
=IF( [RESULT1] = 1 , 国 語 , =IF( [RESULT1] = 2 , 数 学 , 国語 ) ):[RESULT8],
//リスト内にIF関数を記述しても条件分岐可能
[RESULT2][RESULT4][RESULT6]:[RESULT9],
[RESULT3][RESULT5][RESULT7]:[RESULT10],
],
MAX:100 //グラフの最大値
)
リスト1
//各コースのフラグ
1 //文系
2 //理系
3 //総合
リスト2,3
//文系の科目リスト
=IF( [RESULT1] = 1 , 世界史 , )
=IF( [RESULT1] = 1 , 日本史 , )
=IF( [RESULT1] = 1 , 地 理 , )
=IF( [RESULT1] = 1 , 現 社 , )
=IF( [RESULT1] = 1 , 倫 理 , )
=IF( [RESULT1] = 1 , 政 経 , )
=IF( [RESULT1] = 1 , 英 語 , )
リスト4,5
//理系の科目リスト
=IF( [RESULT1] = 2 , 物 理, )
=IF( [RESULT1] = 2 , 化 学, )
=IF( [RESULT1] = 2 , 生 物, )
=IF( [RESULT1] = 2 , 地 学, )
=IF( [RESULT1] = 2 , 情 報, )
=IF( [RESULT1] = 2 , 英 語, )
リスト6,7
//総合の科目リスト
=IF( [RESULT1] = 3 , 音 楽, )
=IF( [RESULT1] = 3 , 美 術, )
=IF( [RESULT1] = 3 , 家 庭, )
=IF( [RESULT1] = 3 , 体 育, )
=IF( [RESULT1] = 3 , 保 健, )
=IF( [RESULT1] = 3 , 工 芸, )
=IF( [RESULT1] = 3 , 書 道, )
※本来、リストに文字を入力すると「最大文字数」を自動的に算出するが、IF関数を記述した場合は1文字として扱われるため、140字の制限にかからないように注意が必要
リスト8,9,10
//試験の点数(0 ~ 100)
0
1
...
99
100
オプション
日替わり:はい
同じリストを複数使う時:同じ値を表示する(デフォルト)
重複させない:はい
縦書き変換:いいえ
診断結果例
文系コース | 理系コース | 総合コース |
---|---|---|
![]() |
![]() |
![]() |