2024年07月23日 07:30
「自社の既存データの合算や結合など、もっと踏み込んだ分析をしたい」といったお悩みはありませんか?
BIプラットフォーム Domo(ドーモ)のデフォルト機能「Beast Mode(ビーストモード)」なら、オンライン/オフラインを問わず、自社で使っているあらゆるデータベースや既存システムデータを統合・加工し、データをさらに見やすく可視化できます。
この記事では、DomoのBeast Modeの基本的な機能から、特によく使う便利な関数をご紹介します。Domoの導入をご検討されている方や、既にDomoをご利用中の方に、さらにDomoを効率的に使える内容をお伝えしますので、ぜひ興味のある項目からご覧ください。
最初にDomoのBeast Modeの概要や出来ることを解説します。さらにイメージしやすいよう具体的な使い方についても見ていきましょう。
Beast Mode は、既存のデータを使用してデータセット内に新しい計算フィールドを作成できるDomoのデフォルト機能です。
例えば複数の列を組み合わせ、新規カラムをBeast Modeで作成して分析に利用することで、既存データでは分からなかった新たなインサイト獲得が期待できます。
もし既にSQLやExcel関数の知識が少しでもあれば、利用する関数も似ているため、最初から操作しやすい設計がされています。
代表的な関数
また計算だけでなく列の名前変更、カスタム並べ替え順序の作成、値のフィルタリングなども行えるので、Beast ModeによってDomo内でのグラフ表現の幅が広がります。
今回は例として、Beast Modeを使って店舗の製品カテゴリ別売上を出してみましょう。
下記のデータでは月の店舗コード別売上は分かりますが、エリアごとの売上比較分析ができません。
Beast Modeではデータをアップロードし、グラフカードを作成する際に計算式で新規項目作成が可能です。そこで、論理関数「Case」を利用して店舗コードに応じた「エリア」の値を設定してみます。
このエリア項目を利用し、Domoのカードでエリアごとの売上高を示すと以下のように表現できます。
このように分析に必要なデータが既存データになくても、Beast Modeは新規項目を後から追加し、新たな分析軸を作成できる優れたツールなのです。
Beast ModeはDomoのカード(グラフや表)を作成する際に、Analyzer画面から計算フィールドから利用できます。
上記のほかに、直接Beast Modeを開く方法もあります。
BIツール選び 製品比較ガイド
成功する導入のための10の比較ポイント
Beast Modeの記法はExcelの使い方に非常に類似していますが、細かな違いに戸惑う方も多いため、特によく使う記載方法についてこちらでご紹介します。
カラム指定 | ‵〇〇〇‵ バッククォートで囲む。 |
文字列 | '〇〇〇' シングルクォート(一重引用符)で囲む。 |
文字列比較 一致 | = |
文字列比較 不一致 | <> |
文字列比較 ワイルドカード | 複数文字指定(0を含む):% 1文字:_ |
空文字との比較 | = ‘’ |
nullチェック | is null、is not null |
Beast Modeでは、データの中で指定した文字列を含むかどうかを判断したい場合にワイルドカードを使用できます。
以下の例では地名を含むデータに対し、ワイルドカードを使って値を返す操作を行います。
複数文字列のワイルドカード
「地名」という文字列項目値の中に’山’以外に複数の文字が含まれている場合は0、含まれていない場合は1を返す式。
`column_name` LIKE pattern
CASE when `地名` like '%山%' then 0 else 1 end
一文字のワイルドカード
「地名」という文字列項目値の中に一文字+’崎’の後に複数の文字が含まれている場合は0、含まれていない場合は1を返す式。
`column_name` LIKE pattern
CASE when `State` like ‘_崎%’ then 0 else 1 end
Domoでは、空文字をシングルクォート(’’)で表現します。以下は、テキスト項目が空文字かどうか判定し、条件が合致した場合にテキストを返す例となります。
case
when `カラム名` = '' then ‘値なし’
else ‘値あり’
end
case
when `カラム名 `<> '' then ‘値あり’
else‘値なし’
end
Domoでは空文字とnullを明確に分けています。以下は、テキスト項目がnullかどうか判定し、条件が合致した場合にテキストを返す例となります。
case
when `カラム名` is null
then ‘null’
else ‘値あり’
end
case
when `カラム名` is not null
then ‘値あり’
else ‘null’
end
データの利活用と定着化を進めるために重要な「6つの柱」を解説!
データドリブン経営への変革の道
この章ではBeast Modeで利用頻度の高い関数の使い方についてご紹介します。これらもExcelと操作は似ているため、使い方のシーンを理解したら積極的に試してみましょう。
日付型のデータをテキスト型に変換するには、関数DATE_FORMATを使います。さらに年月日はそれぞれ、このように指定が可能です。
%Y:年を4桁テキストで表示する %m:月を2桁テキストで表示する %d:日を2桁テキストで表示する |
以下は具体的に日時データからフォーマットを指定し変換する計算フィールドの記載例となります。
-- YYYY年mm月dd日
date_format(`日付`, '%Y年%m月%d日')
-- 曜日
DATE_FORMAT(`日付`, '%a')
-- AM/PM
DATE_FORMAT(`日付`, '%h:%i %p')
上記を見てお分かりの通り、Domoでは形式指定子を加えることで曜日や時刻、通算日といった細かな指定をすることができます。
指定子 | 説明 | 例 | 結果 |
---|---|---|---|
%a | 曜日の英略語表示(Sun..Sat) | DATE_FORMAT(`MyDate`,'%a') | Mon |
%b | 月の英略語表記(Jan..Dec) | DATE_FORMAT(`MyDate`,'%b') | Apr |
%d | 日、数字表記(00~31) | DATE_FORMAT(`MyDate`,'%d') | 13 |
%f | マイクロ秒(000000~999999) | DATE_FORMAT(`MyDate`,'%f') | 300000 |
%H | 時(00~23) | DATE_FORMAT(`MyDate`,'%H') | 23 |
%h | 時(01~12) | DATE_FORMAT(`MyDate`,'%h') | 11 |
%i | 分、数字表記(00~59) | DATE_FORMAT(`MyDate`,'%i') | 44 |
%j | 年の通算日表記(001~366) | DATE_FORMAT(`MyDate`, '%j') | 105 |
%M | 月の英語名(January..December) | DATE_FORMAT(`MyDate`,'%M') | April |
%m | 月、数字表記(00~12) | DATE_FORMAT(`MyDate`,'%m') | 04 |
%p | AMまたはPM | DATE_FORMAT(`MyDate`,'%p') | PM |
%r | 時間、12時間制(hh:mm:ssにAMまたはPMが後続) | DATE_FORMAT(`MyDate`,'%r') | 11:44:15 PM |
%s | 秒(00~59) | DATE_FORMAT(`MyDate`,'%s') | 15 |
%T | 時間、24時間制(hh:mm:ss) | DATE_FORMAT(`MyDate`,'%T') | 23:44:15 |
%v | ISOの年間週数(新年の最初の木曜日は第1週) | DATE_FORMAT(`MyDate`,'v') | 16 |
%W(大文字) | 曜日の英語名 | DATE_FORMAT(`MyDate`,'%W‘) | Monday |
%w(小文字) | 曜日(1~7。日曜日が1) | DATE_FORMAT(`MyDate`,'w') | 2 |
%x | ISOの年(4桁以上) | DATE_FORMAT(`MyDate`,'x') | 2013 |
%Y(大文字) | 年(4桁以上) | DATE_FORMAT(`MyDate`,'%Y’) | 2013 |
%y(小文字) | 年の末尾2桁 | DATE_FORMAT(`MyDate`,'%y’) | 13 |
【引用】Domoナレッジベース「日付の形式指定子」
DomoのBeast Modeでは、文字列が複数ある場合それらを結合し表示させられます。例えば、姓名で分かれているデータを氏名として一つの文字列に置き換えたい場合は以下のように記載し文字列結合が可能です。
CONCAT(`姓`,' ',`名`)
さらに、各メンバーのLinkedInアドレスを横にリンクで表示させるなど、リンク文字列にした状態での結合といった操作もできます。
concat(
'<a href="https://www.linkedin.com/in/',`ID`,'>','LinkedInアカウント','</a>'
)
DomoのBeast Modeでは、あるカラム値が特定の条件を満たした場合に新規カラムに特定の値を入れられます。
以下の例ではCASE WHEN文を利用し、10月から年度が始まる企業の場合に月に応じて四半期を設定しています。
case `月`
when '10月' then 'Q1'
when '11月' then 'Q1'
when '12月' then 'Q1'
when '1月' then 'Q2'
when '2月' then 'Q2'
when '3月' then 'Q2'
when '4月' then 'Q3'
when '5月' then 'Q3'
when '6月' then 'Q3'
when '7月' then 'Q4'
when '8月' then 'Q4'
when '9月' then 'Q4'
END
Beast Modeでは、特定条件下においての合計値を求められます。
例えば下図のように、「店舗ごとの売上は分かるけれど、指定した店舗の全体における売上知りたい」といった場合、ここでご紹介するSUM CASE文を利用すれば解決します。
-- 売上_店舗119
sum(
case
when `店舗コード`= 119 then `売上`
end
)
さらに結果を縦棒グラフで表現すれば、全体売上に対する店舗119の日ごとの売上の対比が以下のように分かりやすくなります。
DomoのBeast Modeを利用する際に、よくつまずきやすいポイントとしてnullのフィルタリングが挙げられます。
null(ヌル)とはプログラミング言語やデータベースのデータ表現の一種で、何のデータも含まれない状態です。しかしながらDomoでnullの行だけを抽出しようとすると、そもそもデータ自体が存在しないため、空文字のように指定することができません。
そのため、Beast Modeでnullだけをフィルタリングしたい場合は「IFNULL関数を使い、事前に値を設定する」と覚えておくと便利です。
例として、ISNULL関数で以下のEmailアドレスがnullのデータだけを抽出してみましょう。
データセットをアップロードしたら、Beast ModeでEmail列がnullだったら’null’を返すという新規計算項目を作成します。
/* email_ifnull */
ifnull(`Email`, ‘null’)
結果は上のように表示されますので、さらにここからフィルタリングでemail_ifnullがnullの値のみをフィルターで抽出します。
このようにIFNULL関数を利用すれば、カラムがnullの行だけを抽出できるようになります。ただし、nullを別の値に置き換えることが必要という点だけ注意しましょう。
BIツール導入成功のカギ!
失敗しないBI導入のための13のチェックポイント
いかがでしたでしょうか。
DomoのBeast ModeはExcel関数と微妙な記述の違いがあるものの、初心者でもルールさえ分かれば新たな分析項目を自在に作成できることがお分かりいただけたかと思います。
さらに今回ご紹介した方法以外にもたくさんの関数がありますので、ぜひ使いながら試していきましょう。
もしご利用に際し複雑な条件を組み合わせたいがやり方に躓いている、社内のメンバーだけでは対応が難しい場合は、ぜひ弊社へお問い合わせください。NDIソリューションズではDomoエバンジェリストをはじめとする経験豊富な社員が多数在籍しており、お客様独自のお悩みについても丁寧にご対応いたします。
Domoのご利用をご検討中の方はこちらから30日間無料でお試しいただけます。ぜひお気軽にお申込みください。https://solution.ndisol.jp/domo/trial
NDIソリューションズでは、BIプラットフォーム Domoを利用した企業事例集の公開、セミナーの開催を行っております。
Domoまとめて導入事例集
Domoセミナー / イベント情報
また、実際にDomoを動かしていただけるBI無料トライアルもご用意いたしました。ご興味がある方はぜひ上部メニューよりお申し込みください。
当サイトでは、BIツールに興味のある方へ、参考になるダウンロード資料をご用意しております。「みんなでデータ活用するためのBI入門ガイド」と「統合型BIプラットフォーム Domo基本ガイドブック」は、データ活用やBIツール導入のポイントが把握できる資料になっています。BIツールご検討の参考に、ぜひダウンロード資料をご覧ください。