データを加工したり補ったり、カスタム項目はとても便利ですよね。とはいえデータソースの種類によって書き方が変わるため、最初はとっつきにくいと感じることもあるかと思います。
本記事ではよく使うデータソース別にカスタム項目の書き方をまとめました。CSV/Excel、DataStorage(データストレージ/Dr.Sum)、MotionBoard Viewに分けています。
関数は基本的なものを記載しています。これらを使えるようになると幅が広がります!

よくあるエラー
このページに辿り着いた皆さんの中には、カスタム項目のエラーでお困りの方もいるのではないでしょうか?下記がよくあるエラーです。
- データの取得でエラーが発生しました。指定された項目が存在しないか、参照権限がありません。エラー番号:E-COMMUNICATOR-04090
- Dr.Sumでエラーが発生しました。(原因:SQL文解析エラー)エラー番号:E-COMMUNICATOR-00110
- データソース定義のカスタム項目の内容が不正です。

カスタム項目を使っている場合、これらのエラーは書き方の誤りが原因のときが多々あります。
特にデータソースを切り替えたときに発生しやすいです。項目は同じなのに、エラーが怒涛のように続いてしまうことも少なくありません。参照元のデータソースに依存するため、つまづきやすいポイントです。
以下の書き方を参考にしてもエラーが解消できなかったり、複雑な計算式を作成したいときは、ぜひサポートへのお問い合わせをご利用ください。
カスタム項目の書き方
テキストエディタにコピペしやすくするため、テーブル内のコードのみ異なるフォントとしています。
直接入力で文字項目を作成
| CSV/Excel | DataStorage(Dr.Sum) | MotionBoard View |
|---|
ウイングアーク | 'ウイングアーク' | 'ウイングアーク' |
文字列の連結
支店コードと支店名は基本項目とします。
作成例:100-六本木店
| CSV/Excel | DataStorage(Dr.Sum) | MotionBoard View |
|---|
[支店コード]-[支店名] | 支店コード||'-'||支店名 | 支店コード||'-'||支店名
または CAST(支店コード as int)||'-'||支店名*1
|
*1 支店コードが数値型の場合
支店コードが数値型の場合、「100.0-六本木店」のように小数点以下が表記されるケースがあります(MotionBoard Viewの標準仕様)。その場合は数値の部分をあらかじめ整数型へ変換してください。
部分文字列取得 SUBSTRING
年月日は基本項目とします。
作成例:2020/01/23→01
| CSV/Excel | DataStorage(Dr.Sum) | MotionBoard View |
|---|
SUBSTRING([年月日],"5","7") | SUBSTRING(年月日,6,2) | SUBSTRING(年月日,6,2) |
文字を取得する際の先頭位置の数え方は、CSV/Excelとそれ以外で文字位置の指定方法が異なるためご注意ください。今回の例(CSV/Excel)では先頭位置を「5」、終了位置を「7」と指定しています。DataStorageおよびMotionBoard Viewでは、先頭から6文字目の位置から2文字分を取得します。
単体の文字列置換 REPLACE
製品は基本項目とします。
作成例:MB→MotionBoard
| CSV/Excel | DataStorage(Dr.Sum) | MotionBoard View |
|---|
REPLACE([製品],"MB","MotionBoard")
注意事項:空文字を任意の文字列および値に変換する機能はございません。 | REPLACE(製品,'MB','MotionBoard') | REPLACE(製品,'MB','MotionBoard') |
複数の文字列置換
性別は基本項目とします。
作成例:1なら男、2なら女
| CSV/Excel | DataStorage(Dr.Sum) | MotionBoard View |
|---|
REPLACE([性別],"1|2","男|女") | CASE 性別 WHEN 1 THEN '男' WHEN 2 THEN '女' END または DECODE(性別,1,'男',2,'女')*2
| CASE 性別 WHEN 1 THEN '男' WHEN 2 THEN '女' END |
*2 DECODE関数について
性別が数値型の場合は DECODE(性別,1,'男',2,'女') のように数値で指定します。データ型が混在するとエラーになることがあります。詳細はこちらのURLをご参照ください。
If文、条件分岐
点数は基本項目とします。
作成例:点数が80以上なら◎、60以上なら〇、それ以外なら×
| CSV/Excel | DataStorage(Dr.Sum) | MotionBoard View |
|---|
対応していません 回避策:MotionBoard ViewにしてCASEで対応*3 | 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が基本です。DataStorage(Dr.Sum)ではDECODEも使用できますが、CASEの方が可読性が高くおすすめです。

日付項目の足し算・引き算
年月日は日付型(YYYY/MM/DD形式)の基本項目とします。
作成例: 年月日(例:2020/01/23)の1年後を取得する
| CSV/Excel | DataStorage(Dr.Sum) | MotionBoard View |
|---|
FORMAT([年月日], "YYYY/MM/DD","M=+12") | ADD_MONTHS(年月日,12) | DATEADD('MONTH', 12, 年月日) |
作成例は1年後ですが、1か月後や10日前など応用が利きます。詳細は本ページ下部にあるマニュアルにてご確認ください。関数部分(例:ADD_MONTHS)でマニュアル内を検索するのが早くて便利です。
日付項目同士の足し算・引き算
受注日、案件登録日は日付型(YYYY/MM/DD形式)の基本項目とします。
作成例:受注までの所要日数(受注日-案件登録日)を算出する
作成するカスタム項目のデータ型は数値型にしてください。
| CSV/Excel | DataStorage(Dr.Sum) | MotionBoard View |
|---|
(GETTIME([受注日])-GETTIME([案件登録日]))/1000/60/60/24 | DATEDIFF('DAY', 案件登録日,受注日) または TO_NUMERIC(TO_CHAR(受注日-案件登録日, 'DD')) | DATEDIFF('DAY', 案件登録日,受注日) |
日付項目のフォーマット変更
年月日は日付型(YYYY/MM/DD形式)の基本項目とします。
作成例:年月日(例:2020/01/23)をYYMMDD形式の200123に変更する
| CSV/Excel | DataStorage(Dr.Sum) | MotionBoard View |
|---|
FORMAT([年月日], "YYMMDD") | TO_CHAR(年月日,'YYMMDD') | TO_CHAR(年月日,'YYMMDD') |
NULL変換
対象項目は基本項目とします。
作成例:NULLを0に変換する
| CSV/Excel | DataStorage(Dr.Sum) | MotionBoard View |
|---|
対応していません 回避策:REPLACEで対応 | NVL(対象項目,0) | COALESCE(対象項目,0) |
型置換
対象項目は基本項目とします。
作成例:文字型を数値型にする
| CSV/Excel | DataStorage(Dr.Sum) | MotionBoard View |
|---|
対応していません 回避策:MotionBoard ViewにしてCASTで対応*3 | TO_NUMERIC(対象項目) | CAST(対象項目 AS DOUBLE) |
*3 CSV/ExcelをMotionBoard Viewに置き換える方法
UNION結合を使用してMotionBoard Viewを作成します。詳細な手順は以下のマニュアルをご参照ください。手順1~5、7~10を行います。(手順6のサブテーブルを選択は不要です)
カスタム項目の書き方 関連リンク
カスタム項目の書き方や考え方については、以下の記事・マニュアルもあわせてご確認ください。
TECH BLOG 関連記事
ナレッジベース(具体的な実装例)
以下のナレッジでは、DataStorage(Dr.Sum)をはじめ、Oracle、SQL Server、PostgreSQL、MySQLなど、各データベースごとの書き方をご確認いただけます。
公式マニュアル(関数一覧)
まとめ
本記事ではカスタム項目の書き方についてご紹介しました。やりたいことは同じでも、データソースによって結構書き方が違いますよね。
私自身カスタム項目を作るときはこういったメモを見ながら試行錯誤して作成しています。そのメモをもとに記事化してみました。本記事が皆さんのお役に立てたらとても嬉しいです!