データを加工したり補ったり、カスタム項目はとても便利です。ただデータソースの種類によって書き方が変わるので、最初はとっつきにくいかと思います。
本記事ではよく使うデータソース別にカスタム項目の書き方をまとめました。CSV/Excel、Dr.Sum(データストレージ)、MotionBoard Viewに分けています。
関数は基本的なものを記載しています。これらを使えるようになると幅が広がります!
よくあるエラー
このページに辿り着いた皆さんの中には、カスタム項目のエラーでお困りの方もいるのではないでしょうか?下記がよくあるエラーです。
- データの取得でエラーが発生しました。指定された項目が存在しないか、参照権限がありません。エラー番号:E-COMMUNICATOR-04090
- Dr.Sumでエラーが発生しました。 (原因:SQL文解析エラー)エラー番号:E-COMMUNICATOR-00110
- データソース定義のカスタム項目の内容が不正です。
カスタム項目を使ってる場合、これらのエラーは書き方の誤りが原因のときが多々あります。
特にデータソースを切り替えたときに発生しやすいです。項目は同じなのに、怒涛のエラーが‥というのはあるあるです。参照元のデータソースに依存するので仕方ないとはいえ、つまづきやすいポイントです。
以下の書き方を参考にしてもエラーが解消できなかったり、複雑な計算式を作成したいときは、是非サポートへのお問い合わせをご利用くださいね。
カスタム項目の書き方
(2024.03.25追記)テキストエディタにコピペしやすくするため、テキストをコード仕様に修正しました。テーブル内のフォントだけ異なっておりますが何卒ご了承くださいませ。
直接入力で文字項目を作成
CSV/Excel |
データストレージ(Dr.Sum) |
MotionBoard View |
ウイングアーク |
'ウイングアーク' |
'ウイングアーク' |
文字列の連結
支店コードと支店名は基本項目とします。
作成例:100-六本木店
CSV/Excel |
データストレージ(Dr.Sum) |
MotionBoard View |
[支店コード]-[支店名] |
支店コード||'-'||支店名 |
支店コード||'-'||支店名 |
部分文字列取得 SUBSTRING
年月日は基本項目とします。
作成例:2020/01/23→01
CSV/Excel |
データストレージ(Dr.Sum) |
MotionBoard View |
SUBSTRING([年月日],"5","7") |
SUBSTRING(年月日,'6','2') |
SUBSTRING(年月日,'6','2') |
単体の文字列置換 REPLACE
製品は基本項目とします。
作成例:MB→MotionBoard
CSV/Excel |
データストレージ(Dr.Sum) |
MotionBoard View |
REPLACE([製品],"MB","MotionBoard") |
REPLACE(製品,'MB','MotionBoard') |
REPLACE(製品,'MB','MotionBoard') |
複数の文字列置換
性別は基本項目とします。
作成例:1なら男、2なら女
CSV/Excel |
データストレージ(Dr.Sum) |
MotionBoard View |
REPLACE([性別],"1|2","男|女") |
DECODE(性別,'1','男','2','女') |
CASE 性別 WHEN '1' THEN '男' WHEN '2' THEN '女' END |
If文、条件分岐
点数は基本項目とします。
作成例:点数が80以上なら◎、60以上なら〇、それ以外なら×
CSV/Excel |
データストレージ(Dr.Sum) |
MotionBoard View |
対応していません
回避策:MotionBoard ViewにしてCASEで対応*1 |
CASE WHEN 点数 > 80 THEN '◎' WHEN 点数 > 60 THEN '○' ELSE '×' END |
CASE WHEN 点数 > 80 THEN '◎' WHEN 点数 > 60 THEN '○' ELSE '×' END |
CASEはいきなり一行で書くとごちゃっとするので、改行を付けて作成してから一行に戻すのもおすすめです。
CASE
WHEN 点数 > 80 THEN '◎'
WHEN 点数 > 60 THEN '○'
ELSE '×'
END
条件分岐をしたいときはCASEが基本です。データストレージの場合はDECODEも使えます。
日付項目の足し算・引き算
年月日は日付型(YYYY/MM/DD形式)の基本項目とします。
作成例:2020/01/23の1年後を取得する
CSV/Excel |
データストレージ(Dr.Sum) |
MotionBoard View |
FORMAT([年月日], "YYYY/MM/DD","M=+12")
|
|
|
作成例は1年後ですが、1か月後や10日前など応用が利きます。詳細は本ページ下部にあるマニュアルにてご確認ください。関数部分(例:ADD_MONTHS)でマニュアル内を検索するのが早くて便利です。
日付項目同士の足し算・引き算
受注日、案件登録日は日付型(YYYY/MM/DD形式)の基本項目とします。
作成例:受注までの所要日数(受注日-案件登録日)を算出する
作成するカスタム項目のデータ型は数値型にしてください。
CSV/Excel |
データストレージ(Dr.Sum) |
MotionBoard View |
(GETTIME([受注日])-GETTIME([案件登録日]))/1000/60/60/24
|
DATEDIFF('DAY', 案件登録日,受注日)
または
TO_NUMERIC(TO_CHAR(受注日-案件登録日, 'DD'))
|
DATEDIFF('DAY', 案件登録日,受注日)
|
NULL変換
対象項目は基本項目とします。
作成例:NULLを0に変換する
CSV/Excel |
データストレージ(Dr.Sum) |
MotionBoard View |
対応していません
回避策:REPLACEで対応
|
NVL(対象項目,0) |
COALESCE(対象項目,0) |
型置換
対象項目は基本項目とします。
作成例:文字型を数値型にする
CSV/Excel |
データストレージ(Dr.Sum) |
MotionBoard View |
対応していません
回避策:MotionBoard ViewにしてCASTで対応*1
|
TO_NUMERIC(対象項目) |
CAST(対象項目 AS DOUBLE) |
カスタム項目の書き方 関連リンク
カスタム項目の書き方に関わるナレッジは、以下のURLからご確認いただけます。
以下のURLでは、データストレージ(Dr.Sum)、Oracle、SQL Server、PostgreSQL、MySQLでの書き方をご確認いただけます。
その他の関数はマニュアルにてご確認ください。
まとめ
本記事ではカスタム項目の書き方についてご紹介しました。やりたいことは同じでも、データソースによって結構書き方が違いますよね。
私自身カスタム項目を作るときはこういったメモを見ながら試行錯誤して作成しています。そのメモをもとに記事化してみました。本記事が皆さんのお役に立てたらとても嬉しいです!