Tableau極める 実践的な問題によるスキルアップのための演習
Tableau極める 📔
Tableauでプリセールスエンジニアをしている @rsugimura17 です。Tableauのこれができないという声や誤解を解くためにTwitterを始めてからよりハマってほしいと思い、小技の紹介をはじめました。新しい取り組みとして #Tableau極める シリーズを始めることにしました。Zennのブログにも残すことで、Twitterで流れず、Tableauを極めたい方が、このブログ記事を見つけてマスター問題にチャレンジいただければ嬉しいです。私の回答だけでなく、Twitterのリプライでは他の参加者の解答や感想、作成したビューを見ることができます。
Tableau極めるの前に(初心者向け)
【Tableauの基本】これでわかるTableau Desktopハンズオン
Tableau極めるに参加するために(中上級者向け)
-
Tableau Desktop Professional Edition (有償版)もしくはPublic Edition (無償版) をインストールする
Tableau Desktop Professional Edition
Tableau Desktop Public Edition -
Tableau極める問題集をダウンロードして問題に取り組む
Tableau極める問題集ワークブック
JTUG (Japan Tableau User Group) 冬の陣のイベントセッションで紹介をさせていただきました
参加者・修了者の声
Day1
すべての注文IDについて、注文日から月末(月末を含む)までの日数を計算してください。
・Twitterのツイートはこちら
・実際のビューイメージはこちら
演習ワークブックはリンク先からダウンロードしてください。
・演習ワークブックはこちら
・解答ワークブックはこちら
こちらはネタバレ回答 (計算式) を含みます
作業日数 (土日のみ除く)
DATEDIFF("day",[オーダー日],
DATEADD("day",-1,
DATEADD("month",1,
DATETRUNC("month",[オーダー日]))))
/* この計算では、まず月の最初の日を取得し、その日に1ヶ月を加えます。
次に、1日文を差し引いて最終日を求め、その差を集計します。
集計方法はAVG()としています。
*/
解答ワークブックだけでなく、細かな手順まで見たい方は、解説動画をご覧ください。
Day2
選択した日付の範囲の2021年の売上と、2020年の同じ日付の範囲の売上を同時に表示してください。
当時の出題日は2021年10月31日で、2022年に解くと解答に見える過去2ヶ月の期間が異なるので注意してください。例えば、2022年11月2日に解くと、過去2ヶ月は2022年10月1日~2022年11月30日となります。この場合、2020年10月1日から2020年11月30日までの売上と、2021年10月1日から2021年11月30日までの売上が同時に表示するようにします。この問題で使用するデータには2022年は含まれていないので、2022年が表示されなくても問題ありません。
・Twitterのツイートはこちら
・実際のビューイメージはこちら
演習ワークブックはリンク先からダウンロードしてください。
・演習ワークブックはこちら
・解答ワークブックはこちら
こちらはネタバレ回答 (計算式) を含みます
作業日数 (土日のみ除く)
DATEADD("year",
DATEDIFF("year",[オーダー日],TODAY()),
[オーダー日])
/* この計算では、today(今日)の日付と[オーダー日]の日付のyear(年)の部分の差を計算します。
次に、year(年)の部分の差をオーダー日に加えて、すべての日付を今年の日付にすることができます。
たとえば、2020年10月1日のデータはこの計算式で、2021年10月1日となります。
*/
解答ワークブックだけでなく、細かな手順まで見たい方は、解説動画をご覧ください。
Day3
注文日から出荷日までの日数を、土日のみ除いて計算する
・Twitterのツイートはこちら
・実際のビューイメージはこちら
演習ワークブックはリンク先からダウンロードしてください。
・演習ワークブックはこちら
・解答ワークブックはこちら
こちらはネタバレ回答 (計算式) を含みます
作業日数 (土日のみ除く)
CASE DATEPART("weekday",[注文日])
WHEN 7 THEN
DATEDIFF("day",[注文日],[出荷日])
- 2 * ( DATEDIFF("week",[注文日],[出荷日],"monday") -1) -1 //土曜日
WHEN 1 THEN
DATEDIFF("day",[注文日],[出荷日])
- 2 * ( DATEDIFF("week",[注文日],[出荷日],"monday") -1) -0 //日曜日
ELSE
DATEDIFF("day",[注文日],[出荷日])
- 2 * DATEDIFF("week",[注文日],[出荷日],"monday") //それ以外
END
解答ワークブックだけでなく、細かな手順まで見たい方は、解説動画をご覧ください。
Day4
レポート日までの今年と昨年のMTD、YTDを表示してください。
+a 年度始まりが4月の場合のYTD、YTD LYを表示してください。
・Twitterのツイートはこちら
・実際のビューイメージはこちら
演習ワークブックはリンク先からダウンロードしてください。
・演習ワークブックはこちら
・解答ワークブックはこちら(+aを含む)
こちらはネタバレ回答 (計算式) を含みます
MTD売上
① MTD売上
ZN( IF [オーダー日] <= [レポート日]
AND DATEDIFF('month',[オーダー日],[レポート日])=0
THEN [売上] END )
//オーダー日がレポート日より前で、オーダー日の月とレポート日の月の差が0であれば
//MTDの計算が返される
② MTD 売上 LY
ZN ( IF DATEADD("year",1,[オーダー日]) <= [レポート日]
AND DATEDIFF('month',DATEADD("year",1,[オーダー日]),[レポート日])=0
THEN [売上] END )
//+1年のオーダー日がレポート日より前で、+1年のオーダー日の月とレポート日の月の差が0であれば
//昨年のMTDの計算が返される
③ YTD 売上
ZN ( IF [オーダー日] <= [レポート日]
AND DATEDIFF('year',[オーダー日],[レポート日])=0
THEN [売上] END )
//オーダー日がレポート日より前で、オーダー日の年とレポート日の年の差が0であれば
//YTDの計算が返される
④ YTD 売上 LY
ZN( IF DATEADD("year",1,[オーダー日]) <= [レポート日]
AND DATEDIFF('year',DATEADD("year",1,[オーダー日]),[レポート日])=0
THEN [売上] END )
//+1年のオーダー日がレポート日より前で、+1年のオーダー日の年とレポート日の年の差が0であれば
//昨年のYTDの計算が返される
ここからはスピンオフ+α
会計年度の開始が4月スタートの場合
⑤ Current FYTD 売上 ※会計年度の開始が4月の場合
ZN(IF [オーダー日] <= [レポート日]
AND DATEPART("month",[レポート日])>=4 //レポート日が4月以降の場合
AND DATEDIFF('year',[オーダー日],[レポート日])=0
AND DATEPART("month",[オーダー日])>=4
THEN [売上]
ELSEIF [オーダー日] <= [レポート日] //レポート日が1〜3月の場合
AND ( DATEDIFF('year',[オーダー日],[レポート日])=0 AND DATEPART("month",[オーダー日])<=3 )
OR DATEDIFF('year',[オーダー日],[レポート日])=1
THEN [売上]
END)
⑥ Previous FYTD 売上 ※会計年度の開始が4月の場合
ZN(IF DATEADD("year",1,[オーダー日]) <= [レポート日]
AND DATEPART("month",[レポート日])>=4
AND DATEDIFF('year',DATEADD("year",1,[オーダー日]),[レポート日])=0
AND DATEPART("month",[オーダー日])>=4
THEN [売上]
ELSEIF //レポート日が1〜3月の場合
DATEADD("year",1,[オーダー日]) <= [レポート日]
AND ( DATEDIFF('year',DATEADD("year",1,[オーダー日]),[レポート日])=0 AND DATEPART("month",[オーダー日])<=3 )
OR DATEDIFF('year',DATEADD("year",1,[オーダー日]),[レポート日])=1
THEN [売上]
END)
解答ワークブックだけでなく、細かな手順まで見たい方は、解説動画をご覧ください。
Day5
各顧客の平均購入間隔日数を計算してください。
・Twitterのツイートはこちら
・実際のビューイメージはこちら
演習ワークブックはリンク先からダウンロードしてください。
・演習ワークブックはこちら
・解答ワークブックはこちら
こちらはネタバレ回答 (計算式) を含みます
平均購入間隔日数
DATEDIFF('day', MIN([オーダー日]),MAX([オーダー日]))/(COUNTD([オーダー Id])-1)
//もしくは
DATEDIFF('day',
{FIXED [顧客名] : MIN([オーダー日]) },
{FIXED [顧客名] : MAX([オーダー日]) })
/
({FIXED [顧客名] : COUNTD([オーダー日])}-1)
/*
各顧客の最後の購入日と最初の購入日の日数の差を計算して、
その顧客の購入回数-1で割ることによって平均の購入間隔日数を算出する
*/
/*
このVizでは前者のほうがシンプルです。
さらに30-90日以内の平均購入間隔の人は何%いるかの分布をみたいなどの分析要件には、
LOD(FIXED関数)の利用が求められます。
*/
解答ワークブックだけでなく、細かな手順まで見たい方は、解説動画をご覧ください。この解説動画ではこのVizに限らず、分析の応用が利くLODを使用しています。
Day6
「家具・家電」のアイテムを購入したことがあり、「事務用品」のアイテムを購入していないお客様を表示してください。
・Twitterのツイートはこちら
・実際のビューイメージはこちら
演習ワークブックはリンク先からダウンロードしてください。
・演習ワークブックはこちら
・解答ワークブックはこちら
こちらはネタバレ回答 (計算式) を含みます
解答方法 1
1. 顧客名をフィルターに入れる
2. フィルターの条件式を記述する
Max(IIF([カテゴリ]='家具',1,0))
+
Max(IIF([カテゴリ]='家電',1,0))
=2
AND
Max(IIF([カテゴリ]='事務用品',1,0))=0
解答方法 2
1. 顧客名から作成 > セットを行う
2. セット作成の条件式を記述する
Max(IIF([カテゴリ]='家具',1,0))
+
Max(IIF([カテゴリ]='家電',1,0))
=2
AND
Max(IIF([カテゴリ]='事務用品',1,0))=0
解答方法 3
1. 計算フィールドを作成する
家電 & 家具 - LOD
{ FIXED [顧客名] : MAX(IF [カテゴリ] = '家具' THEN 1 ELSE 0 END) }
+
{ FIXED [顧客名] : MAX(IF [カテゴリ] = '家電' THEN 1 ELSE 0 END) } = 2
AND
{ FIXED [顧客名] : MAX(IF [カテゴリ] = '事務用品' THEN 1 ELSE 0 END) } = 0
2. 家電 & 家具 - LODをフィルターに入れて[真]を選択する
解答方法 4
1. [カテゴリ]をフィルターに入れて[家電]を選択し、ビュー内の顧客からセットを作成
2. [カテゴリ]をフィルターに入れて[家具]を選択し、ビュー内の顧客からセットを作成
3. [カテゴリ]をフィルターに入れて[事務用品]を選択し、ビュー内の顧客からセットを作成
4. 1~2のセットから結合セットを作成し、家電と家具を両方購入した顧客セットを作成
5. 3と4のセットから結合セットを作成し、家具と家電を両方購入し、事務用品を購入していない顧客セットを作成
6. 5のセットをフィルターに入れて、顧客名をフィルターする
解答ワークブックだけでなく、細かな手順まで見たい方は、解説動画をご覧ください。
Day7
ガントチャートを作り、曜日が土日のところに背景色を付けてください。
・Twitterのツイートはこちら
・実際のビューイメージはこちら
演習データはリンク先からダウンロードしてください。
演習データはリンクの期限が切れていたため、2023年3月31日に差し替えました。
・演習データはこちら
・演習ワークブックはこちら
・解答ワークブックはこちら
こちらはネタバレ回答 (計算式) を含みます
1. 各データに接続して、リレーションシップを使い、クロス結合する
※クロス結合とは、結合するテーブル同士の全ての組み合わせのデータを取得する
2. 1レコード当たり、休日のデータの組み合わせを取得することにより休日の背景色を付与するデータが生成できるため、ガントチャートに休日の背景色を付与できる
解答ワークブックだけでなく、細かな手順まで見たい方は、解説動画をご覧ください。
Day8
スーパーストアの注文([オーダー id])の平均売上サイズは? - 4つの異なる方法で解いてください。
・Twitterのツイートはこちら
・実際のビューイメージはこちら
演習データはリンク先からダウンロードしてください。
・演習ワークブックはこちら
・解答ワークブックはこちら
こちらはネタバレ回答 (計算式) を含みます
解答方法1. 売上の和とオーダーidのカウントの除法
SUM([売上])/COUNTD([オーダー Id])
解答方法2. LOD計算を使用する
AVG( { FIXED [オーダー Id]:SUM([売上])} )
解答方法3. 表計算関数を使用する
WINDOW_AVG(SUM([売上]))
解答方法4. アナリティクスペインから平均線を使用する
解答方法5. 基本統計量のサマリーを使用する
解答ワークブックだけでなく、細かな手順まで見たい方は、解説動画をご覧ください。
Day9
スーパーストアの各月の現在までの総顧客数を求める(顧客の二重計上に注意!) - 2つの異なる方法で解いてください。
・Twitterのツイートはこちら
・実際のビューイメージはこちら
演習データはリンク先からダウンロードしてください。
・演習ワークブックはこちら
・解答ワークブックはこちら
こちらはネタバレ回答 (計算式) を含みます
解答方法1. RUNNING SUM を使う
1. 顧客の最小オーダー日を求める
{ FIXED [顧客名] : MIN([オーダー日]) }
2. [顧客名]を集計し、簡易表計算で累計を使う
RUNNING_SUM(COUNTD([顧客名]))
解答方法2. PREVIOUS VALUE を使う
1. 顧客の最小オーダー日を求める
{ FIXED [顧客名] : MIN([オーダー日]) }
2. PREVIOUS VALUEを使い、前の値を足して積み上げる
IFNULL(
COUNTD([顧客名]) + PREVIOUS_VALUE(0),
PREVIOUS_VALUE(COUNTD([顧客名]))
)
// ある月の顧客数がNULLの場合、積み上げができないため、NULLの場合は前の値を足す
解答ワークブックだけでなく、細かな手順まで見たい方は、解説動画をご覧ください。
Day10
各都道府県の売上に占める割合を求めたいと考えています。特定の地域を掘り下げて、全国の売上に占める割合を見られるビューを作成してください。
・Twitterのツイートはこちら
・実際のビューイメージはこちら
演習データはリンク先からダウンロードしてください。
・演習ワークブックはこちら
・解答ワークブックはこちら
関東の縮尺が小さくなる問題を解決できる日本地図ポリゴンはこちら。
使い方は解説動画の後半で紹介しています。
・atelier-truestar/JapanPolygonTDE
こちらはネタバレ回答 (計算式) を含みます
解答方法1. 全国の売上に占める割合
1. 計算フィールドを作成します
SUM([売上])/SUM({SUM([売上])})
解答ワークブックだけでなく、細かな手順まで見たい方は、解説動画をご覧ください。
Day11
毎年、会社を辞めた従業員の数を数えます。従業員の最後の記録が2020年であれば、2021年に退職したものとしてカウントします。
・Twitterのツイートはこちら
・実際のビューイメージはこちら
演習データはリンク先からダウンロードしてください。
・演習ワークブックはこちら
・解答ワークブックはこちら
こちらはネタバレ回答 (計算式) を含みます
解答方法1. leaving year (離職の年)
1. 計算フィールドを作成します
IF { FIXED [Empl Id] : MAX([Year])} <> DATEPART('year',today())
THEN { FIXED [Empl Id] : MAX([Year])} + 1 END
// 従業員の在籍年の最大値が今年ではない場合、+1した年が離職した年となる
解答ワークブックだけでなく、細かな手順まで見たい方は、解説動画をご覧ください。
Day12
ワークブックのデータをもとに、以下を1シートで表示してください。
・メーカーの売上高
・全体売上でメーカーが占める構成比
・メーカー売上の平均
・対象メーカー売上 vs メーカー売上の平均
・Twitterのツイートはこちら
・実際のビューイメージはこちら
演習データはリンク先からダウンロードしてください。
・演習ワークブックはこちら
・解答ワークブックはこちら
こちらはネタバレ回答 (計算式) を含みます
1. [全体売上でメーカーが占める構成比]
簡易表計算を使って求める => 合計に対する割合
SUM([売上]) / TOTAL(SUM([売上]))
2. [メーカーランキング]
簡易表計算を使って求める => ランク
RANK(SUM([売上]))
3. [メーカー売上の平均]
計算フィールドを作成する
WINDOW_AVG(SUM([売上]))
4. [vs メーカー売上の平均]
SUM([売上]) - [メーカー売上の平均]
5. ▲▼の表示ラベル
[vs メーカー売上の平均 ▲]
if [vs メーカー売上の平均]>0 then '▲' end
[vs メーカー売上の平均 ▼]
if [vs メーカー売上の平均]<0 then '▼' end
6. メーカーのフィルター
1〜5までの表計算の計算を行いつつ特定のメーカーのみを表示する
LOOKUP(MIN([メーカー]),0)
解答ワークブックだけでなく、細かな手順まで見たい方は、解説動画をご覧ください。
Day13
Diverging bar chart (二極分散型横棒グラフ) を作成してください。
・Twitterのツイートはこちら
・実際のビューイメージはこちら
演習データはリンク先からダウンロードしてください。
・演習ワークブックはこちら
・解答ワークブックはこちら
こちらはネタバレ回答 (計算式) を含みます
1. 計算フィールドを作成します
Diverging bar chart (売上)
IF INDEX()=1 THEN SUM([売上]) ELSE - SUM([売上]) END
2. 1で作成した計算フィールド内の規定の表計算を設定します
計算の定義
次を使用して計算 : オーダー日
実行レベル : オーダー日の年
再開間隔 : なし
3. Diverging bar chart (売上)を列に入れます。
解答ワークブックだけでなく、細かな手順まで見たい方は、解説動画をご覧ください。
Day14
カレンダーを作成して売上をハイライトしてください。
・Twitterのツイートはこちら
・実際のビューイメージはこちら
演習データはリンク先からダウンロードしてください。
・演習ワークブックはこちら
・解答ワークブックはこちら
こちらはネタバレ回答 (計算式) を含みます
1. 計算フィールドを作成する
//Column Number
if DATEPART("month",[オーダー日]) % 3 = 0 then 3
ELSEIF DATEPART("month",[オーダー日]) = 2 OR DATEPART("month",[オーダー日])=5 OR
DATEPART("month",[オーダー日]) = 8 OR DATEPART("month",[オーダー日])=11 then 2
ELSE 1
END
// カレンダーの1〜12月を3列で分割する
2. 計算フィールドを作成する
//Week Number
DATEPART("week",[オーダー日]) - { FIXED DATEPART("month",[オーダー日]):MIN(DATEPART("week",[オーダー日]))}
// カレンダーの週数を揃えて、行で横並びにする
3. 計算フィールドを作成する
//Month Label
IF DATEPART('weekday', [オーダー日])= 4 THEN -1.0 END
// カレンダーの月のラベルを表示する
解答ワークブックだけでなく、細かな手順まで見たい方は、解説動画をご覧ください。
Day15
トイ・ストーリー3作品の興行収入を時系列ではなく、共通のスタート地点から分析してください。
・Twitterのツイートはこちら
・実際のビューイメージはこちら
演習データはリンク先からダウンロードしてください。
・演習ワークブックはこちら
・解答ワークブックはこちら
こちらはネタバレ回答 (計算式) を含みます
解き方1
1. 計算フィールドを作成する
//公開からの週数
//計算式はこちらの式の利用のみ
index()
2. 1の表計算関数の規定の表計算から、公開からの日数を指定する
3. 1と2により、列に入れることでスタート地点を合わせて公開からの週数を算出できる
解き方2
1. 計算フィールドを作成する
int([公開からの日数] / 7)+1
2. 1で作成したメジャーを列に入れる
解答ワークブックだけでなく、細かな手順まで見たい方は、解説動画をご覧ください。
※index()は、週に1度だけのデータであり、データに抜けがないことが前提です。解説投稿後に今回の利用データは抜けがあることがわかったため、解説動画の解き方ではなく、ネタバレ回答の解き方2が有効となります。解説動画はデータの特性によって使う余地があリますので、その点ご理解いただきながらご参照ください。
Day16
以下のテーブル表現を作成してください。
・Twitterのツイートはこちら
・実際のビューイメージはこちら
演習データはリンク先からダウンロードしてください。
・演習ワークブックはこちら
・解答ワークブックはこちら
こちらはネタバレ回答 (計算式) を含みます
1. アドホック計算でMIN(1)を作成する
//マークがMIN(1)の数だけ作成されて、グラフ、色、サイズ、ラベルの使用が可能となる
2. MIN(1)を使いながら、各種表現の設定を行う
//詳しくは解説動画を参照ください。
解答ワークブックだけでなく、細かな手順まで見たい方は、解説動画をご覧ください。
Day17
セットアクションを使った「カテゴリからサブカテゴリへのドリルダウン集計表」を作成してください。
・Twitterのツイートはこちら
・実際のビューイメージはこちら
演習データはリンク先からダウンロードしてください。
・演習ワークブックはこちら
・解答ワークブックはこちら
こちらはネタバレ回答 (計算式) を含みます
1. カテゴリから、カテゴリセットを作成する
2. 計算フィールドを作成する 「カテゴリシェイプ」
IF [カテゴリ セット] THEN "▼ "
ELSE "► "
END
+ [カテゴリ]
3. 計算フィールドを作成する 「サブカテゴリセット」
IF [カテゴリ セット] THEN [サブカテゴリ]
ELSE "" END
4. アクション設定を行い、セットアクションを定義する
5. MIN(1)を使い、マークを作成して前年比成長率のKPI表示を行う
// 詳しくは解説動画を参照ください。
解答ワークブックだけでなく、細かな手順まで見たい方は、解説動画をご覧ください。
Day18
図のようにディメンションの値を比較してください。
評価指標の選択は、売上、利益、数量、割引率を選択できるようにしてください。
・Twitterのツイートはこちら
・実際のビューイメージはこちら
演習データはリンク先からダウンロードしてください。
・演習ワークブックはこちら
・解答ワークブックはこちら
こちらはネタバレ回答 (計算式) を含みます
1. 評価指標の選択 のパラメーターを選択して下記の指標のリストを作成する
売上, 利益, 数量, 割引率
2. 計算フィールドを作成する [評価指標の選択]
CASE [パラメーター].[評価指標の選択]
WHEN '売上' THEN SUM([売上])
WHEN '利益' THEN SUM([利益])
WHEN '数量' THEN SUM([数量])
WHEN '割引率' THEN AVG([割引率])
END
3. 計算フィールドを作成する [評価指標 サブカテゴリーの選択]
IF MIN([サブカテゴリ]) = [サブカテゴリ パラメーター] THEN [評価指標の選択] ELSE 0 END
4. 計算フィールドを作成する [選択されたサブカテゴリーの値]
WINDOW_MAX([評価指標 サブカテゴリーの選択])
5. 計算フィールドを作成する [選択されたサブカテゴリーとの差異]
[評価指標の選択]-[選択されたカテゴリーの値]
6. 計算フィールドを作成する [選択されたサブカテゴリーとの差異(カラー表示)]
[選択されたサブカテゴリーとの差異] <0
7. 色や書式の設定を行う
解答ワークブックだけでなく、細かな手順まで見たい方は、解説動画をご覧ください。
Day19
パラメーターを使用して関連する値にフィルタリングしてください。
・Twitterのツイートはこちら
・実際のビューイメージはこちら
演習データはリンク先からダウンロードしてください。
・演習ワークブックはこちら
・解答ワークブックはこちら
こちらはネタバレ回答 (計算式) を含みます
1. 製品名をリストで表示するパラメーターを作成する
2. 計算フィールドを作成する [関連パラメータ値]
[メーカー] = {MAX(if [製品名]=[製品名 パラメーター] then [メーカー] end)}
3. 計算フィールドを作成する [製品名(カラー表示)]
[製品名]=[製品名 パラメーター]
4. 2の計算フィールドをフィルターに入れて、真を選択する
5. 3の計算フィールドを色に入れる
解答ワークブックだけでなく、細かな手順まで見たい方は、解説動画をご覧ください。
Day20
文字列の値を結合して表現してください。
・Twitterのツイートはこちら
・実際のビューイメージはこちら
演習データはリンク先からダウンロードしてください。
・演習ワークブックはこちら
・解答ワークブックはこちら
こちらはネタバレ回答 (計算式) を含みます
1. 計算フィールドを作成する [文字列値の連結]
PREVIOUS_VALUE("")
+
IIF(INDEX()=1, "",", " ) + MIN([市区町村])
2. 計算フィールドを作成する [LAST関数]
LAST() = 0
3. 2で作成した[LAST関数]をフィルターに入れて、真を選択する
解答ワークブックだけでなく、細かな手順まで見たい方は、解説動画をご覧ください。
Day21
株価の基準日に対する変化率を算出してください。
・Twitterのツイートはこちら
・実際のビューイメージはこちら
演習データはリンク先からダウンロードしてください。
・演習ワークブックはこちら
・解答ワークブックはこちら
こちらはネタバレ回答 (計算式) を含みます
1) 「Date」というパラメーターを作成し、[Date]の範囲を指定します。
2)「Adjusted Stock」という計算フィールドを作成します
WINDOW_MAX( SUM(
IF [Date] = [パラメーター].[Date] THEN [Stock] ELSE NULL END) )
3)「% Difference」という計算フィールドを作成します
1+((SUM([Stock]) - [Adjusted Stock]) / [Adjusted Stock])
4) ワークシートのアクションを作成し、パラメーターアクションを設定する
5) ハイライトをOFFにするための計算フィールド「Highlight False」とアクションを設定する
"Highslight False"
解答ワークブックだけでなく、細かな手順まで見たい方は、解説動画をご覧ください。
Day22
特定の期間における販売数量の前年比較を行ってください。
・Twitterのツイートはこちら
・実際のビューイメージはこちら
演習データはリンク先からダウンロードしてください。
・演習ワークブックはこちら
・解答ワークブックはこちら
こちらはネタバレ回答 (計算式) を含みます
1) [max][min]という特定期間を示すパラメーターを作成
2) リファレンスバンドを使い、minとmaxを使い、特定の期間をビュー内に表示
3) [Last year's min] [Last year's max] の計算フィールドを作成
//[Last year's min]
DATE(DATEADD("year",-1,[min]))
//[Last year's max]
DATE(DATEADD("year",-1,[max]))
4) 3)で作成した特定の期間をリファレンスバンドを使いビュー内に表示する
5) パラメーターアクションを設定
アクション > パラメーターの変更を設定し、特定期間をインタラクティブに変更する
6) 期間内数量(当年), 期間内数量(昨年), 増減率(%)の計算フィールドを作成
//[期間内数量(当年)]
SUM(if [min]<=[オーダー日]
and [max]>=[オーダー日] then [数量] end
)
//[期間内数量(昨年)]
SUM(if [Last year's min]<=[オーダー日]
and [Last year's max]>=[オーダー日] then [数量] end
)
//パラメーターが2021/05/01~2021/06/01の場合、上記の販売数量はその期間の販売数量となります。2021/05/01〜2021/06/30の期間とする場合は上記の計算式は以下となります。
//Maxに1ヶ月足して1日戻します。
//[期間内数量(当年)]
SUM(if [min]<=[オーダー日]
and DATEADD("day",-1,DATEADD("month",1,[max]))>=[オーダー日] then [数量] end
)
//[期間内数量(昨年)]
SUM(if [Last year's min]<=[オーダー日]
and DATEADD("day",-1,DATEADD("month",1,[Last year's max]))>=[オーダー日] then [数量] end
)
//[増減率(%) ]
([期間内数量(当年)] - [期間内数量(昨年) ]) / [期間内数量(昨年) ]
解答ワークブックだけでなく、細かな手順まで見たい方は、解説動画をご覧ください。
Day23
インタラクティブな統計分析
ビュー内のマークの基本統計サマリを確認できるように、平均、中央値の基準線を追加してください。
・Twitterのツイートはこちら
・実際のビューイメージはこちら
演習データはリンク先からダウンロードしてください。
・演習ワークブックはこちら
・解答ワークブックはこちら
こちらはネタバレ回答 (計算式) を含みます
1) [Select Mean Profit (平均利益)][Select Median Profit (利益中央値)]
[Select Median Sales (平均売上)][Select Median Sales (売上中央値)]というパラメーターを作成
2) リファレンスラインを各ヒストグラム ビューに引く
3) ワークシートもしくはダッシュボードアクションからパラメーターの変更をアクションとして4つ追加
名前: パラメーター1
ターゲットパラメーター: [Select Mean Profit]
ソースフィールド: 合計(Profit) 集計: 平均
名前: パラメーター2
ターゲットパラメーター: [Select Median Profit]
ソースフィールド: 合計(Profit) 集計: 中央値
名前: パラメーター3
ターゲットパラメーター: [Select Mean Sales]
ソースフィールド: 合計(Sales) 集計: 平均
名前: パラメーター4
ターゲットパラメーター: [Select Median Sales]
ソースフィールド: 合計(Sales) 集計: 中央値
4) 散布図のビュー内のマークやクラスタを選択して平均、中央値の基準線が変更されます
解答ワークブックだけでなく、細かな手順まで見たい方は、解説動画をご覧ください。
Day24
各行と列のハイライトアクションを持つクロスタブを作成してください。
・Twitterのツイートはこちら
・実際のビューイメージはこちら
演習データはリンク先からダウンロードしてください。
・演習ワークブックはこちら
・解答ワークブックはこちら
こちらはネタバレ回答 (計算式) を含みます
1) [サブカテゴリ]からセットを作成
名前:サブカテゴリセット
2) [地域]からセットを作成
名前:地域セット
3) 計算フィールドを作成する
名前: 利益 ハイライト
IIF([サブカテゴリ セット] or [地域 セット],[利益],0)
4) 3)の[利益 ハイライト]をマークカードの色に入れる
5) ワークシート/ダッシュボードアクションから2つのアクションの追加
//設定1
アクションの種類:設定値の変更
名前:セット1
実行時:カーソルを合わせる もしくは 選択
ソース:Superstore
ターゲットセット:サブカテゴリセット
アクションの実行結果:セットに値を割り当て
選択項目をクリアした結果:すべての値を設定から削除
//設定2
アクションの種類:設定値の変更
名前:セット2
実行時:カーソルを合わせる もしくは 選択
ソース:Superstore
ターゲットセット:地域セット
アクションの実行結果:セットに値を割り当て
選択項目をクリアした結果:すべての値を設定から削除
解答ワークブックだけでなく、細かな手順まで見たい方は、解説動画をご覧ください。
Day25
ビューのディメンションを変更できるようにしてください。
・Twitterのツイートはこちら
・実際のビューイメージはこちら
演習データはリンク先からダウンロードしてください。
・演習ワークブックはこちら
・解答ワークブックはこちら
こちらはネタバレ回答 (計算式) を含みます
1. ディメンション変更用ボタンのシートを作成 Day25-1
1) 計算フィールドを作成
名前:Placeholder
計算式:MIN(1)
2) パラメーターを作成
名前:パラメーター
データ型:文字列
2. ディメンション変更のアクション設定
1) 計算フィールドを作成
カテゴリ選択 (パラメーター)
{MAX(if [カテゴリ]=[パラメーター] then 1 else 0 END)}
顧客区分選択(パラメーター)
{MAX(if [顧客区分]=[パラメーター] then 1 else 0 END)}
出荷モード選択 (パラメーター)
{MAX(if [出荷モード]=[パラメーター] then 1 else 0 END)}
2) ワークシート/ダッシュボードアクションから
パラメーターの変更アクションを設定
名前:パラメーター1
ソースシート:Day25-1
アクションの実行対象:選択
選択項目をクリアした結果:現在の値を保持もしくは値の設定 (空)
ターゲットパラメーター:パラメーター
ソースフィールド:[カテゴリ]
集計:最小値
名前:パラメーター2
ソースシート:Day25-1
アクションの実行対象:選択
選択項目をクリアした結果:現在の値を保持もしくは値の設定 (空)
ターゲットパラメーター:パラメーター
ソースフィールド:[顧客区分]
集計:最小値
名前:パラメーター3
ソースシート:Day25-1
アクションの実行対象:選択
選択項目をクリアした結果:現在の値を保持もしくは値の設定 (空)
ターゲットパラメーター:パラメーター
ソースフィールド:[出荷モード]
集計:最小値
3. ディメンションの変更シートに反応するシートを2つ作成
1) 計算フィールドを作成
名前:ブレイクアウト(パラメーター)
計算式:
if [カテゴリ選択 (パラメーター) ]=1 then [カテゴリ]
elseif [顧客区分選択 (パラメーター)]=1 then [顧客区分]
elseif [出荷モード選択 (パラメーター)]=1 then [出荷モード]
end
2) 各シートのマークカード[色] に1)のフィールドを入れる
解答ワークブックだけでなく、細かな手順まで見たい方は、解説動画をご覧ください。
Day26
管理図の作成を行い、標準偏差の選択から管理限界線を引き、異常を判断してください。
・Twitterのツイートはこちら
・実際のビューイメージはこちら
演習データはリンク先からダウンロードしてください。
・演習ワークブックはこちら
・解答ワークブックはこちら
こちらはネタバレ回答 (計算式) を含みます
1) 合計(売上) を行に、月(オーダー日)を列に置く
2) アナリティクスからリファレンスライン
合計(売上) 表全体 平均
3) パラメーターを作成する
名前:[標準偏差の選択]
データ型:浮動小数点
値の範囲:最小値1、最大値3、ステップサイズ0.05
4) 計算フィールドを作成する
上方管理限界線
WINDOW_AVG(SUM([売上])) +
([標準偏差の選択] * WINDOW_STDEV(SUM([売上])))
下方管理限界線
WINDOW_AVG(SUM([売上])) -
([標準偏差の選択] * WINDOW_STDEV(SUM([売上])))
これら2つのフィールドを合計(売上)のマークの詳細に入れる
5) アナリティクスからリファレンスバンドを設定する
リファレンスバンドの追加:表
追加対象:合計(売上)
バンドの起点:値を下方管理限界線に設定
バンドの終点:値を上方管理限界線に設定
6) 売上を行に複製してグラフタイプを円に変更する
7) 計算フィールドを作成する
名前:管理図色分け
計算式:
IF SUM([売上])>=[上方管理限界線] THEN '上' ELSEIF
SUM([売上])<[下方管理限界線] THEN '下' ELSE '中' END
8) 管理図色分けをマークの色に入れる
9) 二重軸グラフを作成して幅を合わせる
解答ワークブックだけでなく、細かな手順まで見たい方は、解説動画をご覧ください。
Day27
複数の指標でソートしてください。
・Twitterのツイートはこちら
・実際のビューイメージはこちら
演習データはリンク先からダウンロードしてください。
・演習ワークブックはこちら
・解答ワークブックはこちら
こちらはネタバレ回答 (計算式) を含みます
1) 計算フィールドを作成して行に置く
名前:index
計算式:index()
2) パラメーターを作成する
名前:[ソート項目の選択]
データ型:文字型
値のリスト:売上、利益、利益率、オーダー日
3) パラメーターを作成する
名前:[並べ替え]
データ型:文字型
値のリスト:1 昇順、2 降順 (値 表示名の順)
4) 計算フィールドを作成する
名前:オーダー日並べ替え
計算式:
AVG(
YEAR([オーダー日]) * 10000
+ MONTH([オーダー日]) * 100
+ DAY([オーダー日])
)
5) 計算フィールドを作成する
名前:メジャー並べ替え
計算式:
CASE [ソート項目の選択]
WHEN '売上' THEN SUM([売上])* INT([並べ替え])
WHEN '利益' THEN SUM([利益])* INT([並べ替え])
WHEN '利益率' THEN [利益率] * INT([並べ替え])
WHEN 'オーダー日' THEN [オーダー日並べ替え] * INT([並べ替え])
END
6) 1)で作成して行に置いたindexを右クリックを行い、表計算の編集
次を使用して計算:特定のディメンション
並べ替え順序:カスタム
フィールド:[メジャー並べ替え]、昇順
解答ワークブックだけでなく、細かな手順まで見たい方は、解説動画をご覧ください。
Day28
基準月と任意の月の間の売上の変化率が簡単にわかるインタラクティブなスロープチャートを作成してください。前の値と次の値の対象月は切り替えられるようにしてください。
・Twitterのツイートはこちら
・実際のビューイメージはこちら
演習データはリンク先からダウンロードしてください。
・演習ワークブックはこちら
・解答ワークブックはこちら
こちらはネタバレ回答 (計算式) を含みます
1) 計算フィールドを作成する
名前:オーダー日 月
計算式:DATE(DATETRUNC('month', [オーダー日]))
2) パラメーターを2つ作成する
名前:前の値
データ型:日付
値のリスト:1)で作成した[オーダー日 月]を指定
名前:次の値
データ型:日付
値のリスト:2)で作成した[オーダー日 月]を指定
3) 計算フィールドを1つ作成する
名前:売上 パラメーター値
計算式:if [パラメーター].[前の値]=MAX([オーダー日 月]) or [パラメーター].[次の値]=MAX([オーダー日_月]) then SUM([売上]) end
4) パラメーターのアクションを2つ設定する
ワークシート/ダッシュボードのアクション
アクションの追加:パラメーターの変更
名前:前の値
実行時:メニュー
ターゲットパラメーター:前の値
名前:次の値
実行時:メニュー
ターゲットパラメーター:次の値
5) 計算フィールドを3つ作成する
名前:前の値
計算式:
WINDOW_MAX(SUM(if [パラメーター].[前の値]=[オーダー日_月] then [売上] end))
名前:次の値
計算式:
WINDOW_MAX(SUM(if [パラメーター].[次の値]=[オーダー日_月] then [売上] end))
名前:変化率
計算式:
([次の値]-[前の値]) / [前の値]
6) 5)で作成した計算フィールドをマークの詳細に加えて、タイトルにKPIとして加える
解答ワークブックだけでなく、細かな手順まで見たい方は、解説動画をご覧ください。
Day29
パネルチャートを作成してください。可視化する内容は、都道府県別の売上の内訳です。
演習データはリンク先からダウンロードしてください。
・演習ワークブックはこちら
・解答ワークブックはこちら
こちらはネタバレ回答 (計算式) を含みます
1) 計算フィールドを 2つ作成する
名前:列
(INDEX()-1) % (INT(SQRT(SIZE())))
※ ROUNDも可
名前:行
INT((INDEX()-1) / (INT(SQRT(SIZE()))))
※ ROUNDも可
//列の計算詳細
(INDEX()-1)は 0 ~ 44
SIZE()は 45
SQRT(SIZE())は 6.708
INT(SQRT(SIZE()))は 6 , ROUND(SQRT(SIZE()))は 7
0 % 6 = 0
1 % 6 = 1
2 % 6 = 2
3 % 6 = 3
4 % 6 = 4
5 % 6 = 5
6 % 6 = 1
・
・
・
44 % 6 = 2
結果:0~5 の6列 (INTの場合)
0~6 の7列 (ROUNDの場合)
// 行の計算詳細
(INDEX()-1)は 0 ~ 44
SIZE()は 45
SQRT(SIZE())は 6.708
INT(SQRT(SIZE()))は 6 , ROUND(SQRT(SIZE()))は 7
INT(0/6) = 0
INT(1/6) = 0
・
・
・
INT(44/6) = 7
結果:0~7 の8行 (INTの場合)
0~6 の7行 (ROUNDの場合)
2) 行と列を配置して、表計算の編集を行い、都道府県を指定する
解答ワークブックだけでなく、細かな手順まで見たい方は、解説動画をご覧ください。
Day30
2つのセットへの追加/除外を行い、KPIを比較してください。セット対象は市区町村です。
・Twitterのツイートはこちら
・実際のビューイメージはこちら
演習データはリンク先からダウンロードしてください。
・演習ワークブックはこちら
・解答ワークブックはこちら
こちらはネタバレ回答 (計算式) を含みます
1) 市区町村のフィールドからセットAとセットBを作成する
右クリック > 作成 > セット
名前:セットA
名前:セットB
2) 計算フィールドを作成してマークの色に入れる
名前:セットメンバー
IF [セット A] THEN "セット A"
ELSEIF [セット B] THEN "セット B"
ELSE "アサインなし" END
3) ワークシート/ダッシュボードアクションを4つ設定する
アクションの追加 > 設定値の変更
名前:+ セットA に追加
ソースシート:対象ワークシート
ターゲットセット:セットA
アクションの実行対象:メニュー
アクションの実行結果:セットに値を追加
選択項目をクリアした結果:設定値を保持
名前:+ セットB に追加
ソースシート:対象ワークシート
ターゲットセット:セットB
アクションの実行対象:メニュー
アクションの実行結果:セットに値を追加
選択項目をクリアした結果:設定値を保持
名前:− セットA から除外
ソースシート:対象ワークシート
ターゲットセット:セットA
アクションの実行対象:メニュー
アクションの実行結果:セットから値を削除
選択項目をクリアした結果:設定値を保持
名前:− セットB から除外
ソースシート:対象ワークシート
ターゲットセット:セットB
アクションの実行対象:メニュー
アクションの実行結果:セットから値を削除
選択項目をクリアした結果:設定値を保持
4) 2)で作成した計算フィールドを元にKPIを比較するシートを作成する
解答ワークブックだけでなく、細かな手順まで見たい方は、解説動画をご覧ください。
Discussion