Tableau Tips:計算式編
あーもう全然覚えられないよ!どうしよう~!!
普段からデータと向き合っている営業さんたちは、みるみるTableauの機能を実務に活かしつつ、ツールの使い方を吸収していっているようなのですが、普段なかなか数値データと向き合う機会のないわたしのような人間には本当に苦しい戦いです。
前回も言ったようにⅠ日触らないだけでツールの使い方を結構忘れていくので、普段から業務で使う、使わないってかなり大きいと思います。
でもそんなこと言ってられませんね。今日も息子の寝かしつけが終わったのでTableau勉強を始めたいと思います!
(そして隣でいびきをかく夫。うらやましい・・・涙)
*******************************************************
今回はTableau Boot Campの試験目前となったので、
AdvancedⅡまでにでてきた計算式をまとめておきたいと思います。
KTさん動画では当たり前のように飛び出してくる関数計算。
初心者にはハードル高くないですか?
苦手意識を払拭するためにも、丁寧に1つずつ見ていきたいと思います。
-------------------------------------------------
■Tableau計算式まとめ(一部抜粋)
- 日付関数(DATEADD/DATEDIFF/DATEPART)
- 倫理関数(IF/IIF)
- 表計算関数(WINDOW_MAX)
- 集計関数(FIXED/INCLUDE/EXCLUDE)
-------------------------------------------------
▼日付関数(DATEADD/DATEDIFF/DATEPART)
初期から登場する日付関数です。
日付関数はその名の通り、日付を操作しよう、どうこうしようという時に使います。
1)DATEADD
DATEADDは、対象となる日付に日・月・週・月・年単位で日付を増やすことが出来る関数です。
・構文の書き方
DATEADD(date_part, interval, date)
→DATEADD( 日付の基準単位, 加算する日数, 加算したい日付 )
1つ目の【日付の基準単位】とは、'day'、'week'、'month'、'year' などを指します。
2)DATEDIFF
2つの日付の差異を教えてくれる関数です。
・構文の書き方
DATEDIFF(date_part, date1, date2, [*start_of_week])
→DATEDIFF(日付の基準単位, 日付1, 日付2, [*省略可能])
最後の[start_of_week]は、date_partに'week'を指定した際に、
週の始まりと見なす曜日を指定できます。それ以外の場合は省略可能です。
・使用例
>Fundamental編Q16
「家具」カテゴリにおいて一番出荷までの平均日数が長い地域に面する地域の中で、最も出荷までに時間がかかる地域を調べてください。その地域の「事務用品」カテゴリでの出荷にかかる日数は何日ですか?
→この時『出荷にかかる日数』を調べるために下記のような計算式を使用しましたね。
DATEDIFF("day", [オーダー日], [出荷日])
オーダー日と出荷日の差を”日数の単位”で教えてください。というものでした。
3)DATEPART
指定した日付値から、特定の日付単位(年、月、日など)の「値」を取り出すことができる関数です。
・構文の書き方
DATEPART(date_part, date, [*start_of_week])
→DATEPART(日付の基準単位, 日付1, [*start_of_week])
DATEDIFFと同じく、最後の[start_of_week]は省略可能です。
・使用例
>IntermediateⅠ編Q9
2016年の売上を昨年の売上と比較します。昨年の売上はカテゴリごとに見る必要はありません。今年の売上はカテゴリごとに色分けしたいです。これと同時に、今年のカテゴリごとの売上の累計を表示したいです。バラバラにグラフを作ることはできたのですが、これを重ねて一個のグラフにすることはできるでしょうか?
この時、2015年/2016年の売上をそれぞれ下記のように作成しました。
IF DATEPART('year', [オーダー日])=2016 THEN [売上] END
IF関数に関してはあとで説明するので、ここではDATEPART('year', [オーダー日])について。この一部で、オーダー日から年の値だけを取り出してください、というお願いをしている構文になりますね。
▼倫理関数(IF/IIF)
1)IF
最初に提示する条件に対しての答えが、Ture Or Falseによって結果を出し分けることが出来る構文です。
・構文の書き方①~単一条件の場合~
IF <expr> THEN <then> ELSE <else> END
→IF (条件) THEN (条件に合致した時に返す値)
ELSE (条件に合致しなかった時に返す値)
END
・構文の書き方②~複数条件の場合~
IF <expr> THEN <then> [ELSEIF <expr2> THEN <then2>...] [ELSE <else>] END
→IF (条件1) THEN (条件1に合致した時に返す値)
ELSEIF (条件2) THEN (条件2に合致した時に返す値)
ELSE (いずれの条件にも合致しない場合に返す値)
END
・使用例
>IntermediateⅡQ1
サブカテゴリの売上を以下のように分類し、それぞれのサブカテゴリがどこに属するかわかりやすいように表現してください。また、サブカテゴリはカテゴリごとにまとめておいてください。
①2000万円以上 ②1000万円以上 ③500万円以上 ④500万円以下
この時に、色分け用に使用した分岐が下記のIF構文(複数条件)でした。
IF SUM([売上])>=20000000 THEN"2000万以上"
ELSEIF SUM([売上])>=10000000 THEN"1000万以上"
ELSEIF SUM([売上])>=5000000 THEN"500万以上"
ELSE "500万以下" END
2)IIF
最初に提示する条件を満たしているかどうかを確認し、True の場合と False の場合で異なる値を返します。そして、不明な場合は任意の 3 番目の値もしくは NULL を返す構文です。こうやって聞くとIF構文とかなり似てますよね?何が違うんでしょうか。
1番の違いとしては、IIFは2分岐しか対応できないという点です。
なのでIF構文で説明した『単一条件の場合』の構文はIIFでも書けます。でも『複数条件の場合』はIF構文でしか書けない、ということを覚えておきましょう。
・構文の書き方
IIF(test, then, else, [unknown])
→IIF(条件, 条件に合致した時に返す値, 条件に合致しなかった時に返す値, [それ以外NULL])
・使用例
>IntermediateⅠQ11
地域、カテゴリ、オーダー年ごとの売り上げ実績と予算を対比して、家電カテゴリにおいて、すべての年で売り上げ目標を達成していない地域を教えてください。また、その未達成度合いはどのくらいでしょうか。50%にも満たない年があるようであれば教えてください。
ここでは、予算が実際の売上実績よりも高ければ”達成”、低ければ”未達成”という分岐を色と凡例で表示させたかったので下記のような数式を書きました。
IIF(SUM([予算 (サンプル - スーパーストア)].[予算])>SUM([売上]),'未達成','達成')
▼表計算関数(WINDOW_MAX)
WINDOW関数はWINDOW_MAXがfundamental時代からよくでてきていたので、
皆さん結構おなじみじゃないでしょうか。
下記の図のように、最大値のグラフに色を付けるという時によく使いますね。
計算式としては、
WINDOW_MAX(式,[開始,終了])
マークの[色]メニューに「WINDOW_MAX(SUM([売上]))=SUM([売上])」という式を追加します。
これはウィンドウ内のSUM([売上])で最大値のものがあれば真(True)を返し、それ以外は偽(False)を返すというものです。
つまり最大値のみを簡単に色分けすることができるのです。
ほかのWINDOW関数は下記の通りです。
・WINDOW_MAX = ウィンドウ内の式の最大値を返す
・WINDOW_AVG = ウィンドウ内の式の平均値を返す
・WINODW_SUM = ウィンドウ内の式の合計値を返す。
▼集計関数(FIXED/INCLUDE/EXCLUDE)
あえてLOD計算についての概要はここで説明しません。わたしのような初心者には逆に混乱したため、あえてここでは関数計算の1つとしてまとめさせていただきます。
概要を詳しく勉強したい方はたくさんの方がブログでまとめていますので、
そちらをご参照ください!
1)FIXED
◎◎ごとの△△を教えて欲しい、という時に利用します。
・構文の書き方
{ FIXED[ディメンションの宣言 ]: [集計式] }
※ディメンションの宣言は2つ、3つと追加可能。
たとえば、
{FIXED [顧客名] : SUM([売上])} 顧客ごとの売上を教えて!
{FIXED [地域] : SUM([売上])} 地域ごとの売上を教えて!
など結構便利ですよね。
・使用例
>AdvancedⅠQ2
データ内の最も新しい日付を基準日としたとき、最終購入日から基準日までの日数が
60日未満の顧客は何名いるでしょうか?
ここでは、顧客ごとの最終購入日を調べるために下記の式を作成しました。これで顧客ごとの最終購入日=最大オーダー日がわかりますね。
{FIXED[顧客 Id]:MAX([オーダー日])}
2)INCLUDE
こちらもFIXEDと同じく、
◎◎ごとの△△を教えて欲しい、という時に利用します。
FIXEDとの違いは、
最初に指定されたディメンションのみを考慮するのがFIXED構文に対して
最初に指定されたディメンションだけではなく、画面上のビューに配置された
ディメンションについても考慮して返してくれるのがINCLUDEになります。
ディメンションフィルタの前に実行されるのがFIXED
ディメンションフィルタの後に実行されるのがINCLUDE/EXCLUDEのため
このような結果の違いが起こるようです。
・構文の書き方
{ INCLUDE[ディメンションの宣言 ]: [集計式] }
※ディメンションの宣言は2つ、3つと追加可能。
書き方はFIXEDと全く同じですね!ややこしい!!
・使用例
>AdvancedⅠQ3
顧客の購入回数別で、最も顧客数が多い購入回数はどれですか?
【オプション問題】1回のオーダーにおける金額の平均が高いのは何回購入している顧客ですか?
こちらのオプション問題を解く際に、
1オーダーあたりの売上を出すために下記の数式を書きました。
{ INCLUDE [オーダー Id]:SUM([売上])}
3)EXCLUDE
ビューに配置された「集計に不要なディメンション」を除外して集計する時に使う関数です。
・構文の書き方
{ EXCLUDE [ディメンションの宣言 ]: [集計式] }
※ディメンションの宣言は2つ、3つと追加可能。
これまた書き方は同じですね!
それぞれざっくりと違いをまとめると下記のようになります。
{FIXED[カテゴリ]:SUM([売上])}
→ カテゴリごとの売上を教えてくれる
{INCLUDE[カテゴリ]:SUM([売上])}
→ 画面上のほかのディメンションに従って、カテゴリごとの売上を教えてくれる
{EXCLUDE[カテゴリ]:SUM([売上])}
→ 画面上のほかのディメンションに従って、カテゴリを除外して売上を教えてくれる
・使用例
>AdvancedⅠQ8
年 四半期ごとに、「カテゴリ」で「売上」の差を表示しています。
この差の大きさにより年 四半期をソートしたいです。ソートは選択した「カテゴリ」に応じて変わりますが、3つのカテゴリは同時に表示しておいてください。
カテゴリ”家具・家電・事務用品”を1つずつ選択できるパラメーター(ソートカテゴリ)を作成したので、そこでチェックをいれたカテゴリの売上だけを教えて欲しい。ほかの2つは除外してね、という式を下記のように書きました。
{ EXCLUDE [カテゴリ]:SUM(IF [カテゴリ]=[ソートカテゴリ*]then[売上]END)}
※ソートカテゴリは、ここで作成したパラーメータ名なので人それぞれの名前となります。
長くなったので、今日はここまで。
Data saber Boot Camp :IntermediateⅡ編
こんばんわ。週末ようやく退院した息子がなんと今度は流血事件を起こしました(-o-;
バランスを崩して口を強打したわけなんですけど、急いで血だらけの服のまま歯医者で見てもらいました。歯に別状はないようで、今は唇が膨れ上がってたらこ唇になって食べ物が食べづらそうです。苦笑 一難去ってまた一難。しばらくTableauから離れてしまいましたが、気合いを入れ直して頑張ります!
**********************************************************************************************
今回はIntermediateⅡにたくさん出てくる計算式問題をメインにまとめていきたいと思います。なんたって計算式問題は大の苦手!!
ここでしっかりまとめて覚えていきたいと思います。
---------------------------------------------
Data saber Boot Camp :IntermediateⅡ編
Q1・・・If-elseif-else文
Q2・・・パラメーター+If-else文
Q7・・・表計算ランク付け+ハイライト
Q12・・・パラメーター+IIF文+ブレットグラフ
---------------------------------------------
▼Q1
ーサブカテゴリの売上を以下のように分類し、それぞれのサブカテゴリがどこに属するかわかりやすいように表現してください。また、サブカテゴリはカテゴリごとにまとめておいてください。(2000万円以上/1000万円以上/500万円以上/500万円以下)
シンプルに下記のようにグラフ化したあと、ここで使うのがIf-ELSEIF-ELSE文です。
※昔受験勉強の時に、青のペンで書くと記憶に残りやすいって言われませんでした…?
▼If-ELSEIF-ELSE文(IF複数条件)
IF (条件1) THEN (条件1に合致した時に返す値)
ELSEIF (条件2) THEN (条件2に合致した時に返す値)
ELSEIF (条件3…) THEN (条件3…に合致した時に返す値)
ELSE (いずれの条件にも合致しない場合に返す値)
END
↓↓↓
※今回、計算フィールドに書き込む計算式
IF SUM([売上])>= 20000000 then "2000万以上"
ELSEIF SUM([売上])>= 10000000 then "1000万以上"
ELSEIF SUM([売上])>= 5000000 then "500万以上"
ELSE "500万以下"
END
↓↓↓
つまり
もし、合計(売上)が20000000以上だったら、"2000万以上"という文字列を返してね
そうでない場合、
もし合計(売上)が10000000以上だったら、"1000万以上"という文字列を
もし合計(売上)が5000000以上だったら、"500万以上"という文字列を
そのいずれの条件にも合致しない場合は、"500万以下"という文字列を返してね
おわり♪
という内容ですね!
エクセル関数ならこんな感じで指定の数値を入れるだけで計算式を組んでくれるけど、
Tableauは自分で公式まで書かないといけないからハードル高いですよね。。
例:エクセル VLOOKUP
文系脳のわたしには死ぬほど辛いです…涙
でもここを乗り切らないと、Advanceにいけませんからね。踏ん張りどころです。
あとは、その計算フィールドで作成したピルを色に入れると棒グラフが
2000万円以上/ 1000万円以上/ 500万円以上/500万円以下で色分けされました!
綺麗だし、気持ちいい!
凡例にも●●円以上~と各名称が表示されてわかりやすいですね。
クラスターを使って分けたりすると凡例名称が”クラスター1、2、3”とかになってよくわからないけど、こうやって計算フィールドを使って名称を指定すると良いんですね。
最後に、アナリティクス→リファレンスラインからそれぞれの価格ラインを引いてあげるとよりカテゴリ&サブカテゴリごとの売上が分かりやすくなりました。
ちなみにKTさんはTableau Boot campの動画の中で、計算式を書かずに表現する方法を紹介してくれています。私のように計算式がニガテ!という人はこっちの解き方も覚えておくことをおすすめします。
DATA Saber Boot Camp Week4 "HandsOn - Intermediate II" - YouTube
Q2
ー売上と利益に関するダッシュボードを作りたいのですが、スペースが狭すぎて見づらくなってしまいました。
売上と利益を同時に見る必要はなく、ボタンを押して切り替えるようなレイアウトにすることはできませんか?なお、本設問ではVizの形や配置を変える必要はありません。
たしかに見づらいですね~
この『カテゴリ別売上・利益推移』と『サブカテゴリ別売上と利益』の2つのグラフが、売上/利益を縦に分けて見せているので、ボタン操作で切り替えて見せられるようになればいいね、ということですね。
今回は【パラメーター】とシンプルな【IF関数】を使います。
まずは『カテゴリ別売上・利益推移』『サブカテゴリ別売上と利益』それぞれのページで、画面切り替えの設定をしましょう。
いずれかのページ上で、まずは”売上/利益の画面切り替え用のボタン”をパラメーターを使って作成します。
(↓こういうやつを作りたいんです)
↓パラメーターの使い方、このサイトの記事がとてもわかりやすかったです
では早速作ってみましょう。
”パラメーターの作成”を選択し、下記のような内容で設定します。
出来たパラメーターフィールドをマークの「詳細」に入れると
まずは画面右のように、希望していた”売上/利益の画面切り替え用のボタン”が表示されました。
今のままだとただのお飾りなので、これが機能するように仕込んでいこうと思います。
それでは”売上/利益が切り替わる計算式”を計算フィールドで作っていきます。
▼If文
IF (条件) THEN (条件に合致した時に返す値)
ELSE (条件に合致しなかった時に返す値)
END
↓↓↓
※今回、計算フィールドに書き込む計算式
IF[売上・利益の切り替え]="売上" THEN SUM([売上])
ELSE SUM([利益])
END
↓↓↓
つまり
もし、[売上・利益の切り替え(←パラメーターボタンのこと)]が、
[売上]を選択したら”#売上”を返してね。
そうでない場合は、"#利益”を返してね。
おわり♪
という文ですね。
この計算式で作成したフィールドを行の”売上””利益”と入れ替えます。
するとパラメーターで選択した項目に合わせて、
1画面内で”売上/利益”を切り替えて表示出来るようになりました!
今回『カテゴリ別売上・利益推移』ページで行ったことを
『サブカテゴリ別売上と利益』でも同じように調整します。
そしてダッシュボードに戻ってみると、見事パラメーターの選択にあわせて
『カテゴリ別売上・利益推移』『サブカテゴリ別売上と利益』の売上/利益グラフが
切り替わり表示されるようになりましたね。
▼Q7
各地域ごとの売上TOP3サブカテゴリを見たとき、全ての地域で存在している(TOP3にランクインしている)サブカテゴリはありましたか?
なお、TOP5で見たい人やTOP10で見たい人もいるようなので、ビュー上で変更できるように工夫して下さい。
今回は計算式関係ない問題ですが、結構使えそうな技が詰まっていたので備忘録として入れておきます。
まずは”売上”を列に、”地域”と”サブカテゴリ”を行に入れてみると下記のようになります。一応これでも各地域の売上TOP3のサブカテゴリはわかりますが、
見づらいですよね。
かといって、サブカテゴリをフィルターに持っていって
売上上位3位まで表示に絞ると、地域ことではなく”全体の売上のうち上位3位までのサブカテゴリ(椅子・本棚・コピー機)で絞った結果”が表示されてしまいました。
これだと期待した結果ではないですね。
各都道府県それぞれの売上TOP3を知りたいので、列の”売上”をコピーして
そのうち1つを”簡易表計算”→”ランク”に設定します。
ただこのままだと、表全体のランキング数値になってしまうため
(※カテゴリは17個なのに、普通に35位とかあるのでアレ?となります)
各地域ごとのランキングに修正するために”表計算の編集”→次を使用して計算で”ペイン(下)”を選びます。
そうすると、各地域ごとに1~17位が表示されました。
次に、表計算からランクにしていた”売上”のピルを不連続に変更して
列から行に移動するとランクがサブカテゴリの前に表示されました。
それを利用して、ピルごとフィルターに持っていってランク3までで絞ると、
各地域の売上TOP3のサブカテゴリを見ることが出来るようになりました。
ただし問題では、
なお、TOP5で見たい人やTOP10で見たい人もいるようなので、ビュー上で変更できるように工夫して下さい。
とも言っていますね。
なので、ビューワーが自分で選択できるようにしてあげたいと思います。
フィルターの”売上”を不連続→連続に変更すると
さきほどはチェックボックスだったランクフィルターが、下記のようにバーで最大値を選択できるようになります。
これでようやく、ビューワーが上位何位の売上結果までを見たいかを
調節することができるようになりました。
(※また下記は、サブカテゴリ→ハイライターを表示を選択して、選択したサブカテゴリがどの地域のランキングに入っているかをひと目でわかるようにしています)
▼Q12
全地域の売上をマーケティング施策によりそれぞれ10%ずつ向上させたいと考えています。しかしマーケティング費用も限られているため、全カテゴリに対して施策を打つことができません。
施策を打つと元の売上から10%,20%と10%単位で向上できると仮定して、
最も少ない%で全地域の売上10%UPを達成できるマーケティング効率のよいカテゴリはどれでしょうか?
また、その際何%UPする必要があるでしょうか?
なお、基準になる売上は2016年のものとします。
はい、問題文が長くなってまいりました。
これはつまり”2016年を対象に、どのカテゴリーを何%伸ばせば、全地域の売上10%アップを達成出来るか”という問いですね。
IntermediateⅠのQ3、Q11でも登場したブレッドグラフを使って解いていきたいと思います。
まずは、単純にオーダー日をフィルターに入れて、基準値となる2016年に絞って
見てみることにします。列に地域を、行に売上をいれて一応見てみます。
ふむふむ、これが2016年の基準となる地域別の売上か。
まずは、全カテゴリに対して施策は打てないと言っているので
対象のカテゴリを選択して施策をかけていく必要がありますね。
その”カテゴリを分けて表示させるためのパラメーター”を作りたいと思います。
作り方としては、
データ型はカテゴリなので”文字列”に。
許容値は”リスト”を選択し、
値は、カテゴリの内容をそのまま挿入します。
名称は、『対象のカテゴリ』としました。
次に、”売上を10%ずつ向上させるアクション”をパラメーターで作ってみたいと思います。
考え方としては、
アクションとして使う数値はパーセンテージ%なので
データ型は整数ではなく”浮動小数点数”に。
表示形式も同じく”パーセンテージ%”に設定。
許容値は”範囲”で選択し、
最小値は、向上施策を行うことでマイナス‐になることな無いと考えて”0”を。
最大値は、+100%を超えることはないと考えて”1”。
ステップアップサイズは、10%ずつで設定したいので”0.1"としています。
名称は、『売上向上施策』としました。
ここからは、このパラメーターを動かすための計算式を計算フィールドに入れていきます。
▼IIF文
IIF ( <件式>, <結果>, <それ以外> )
IIF文はExcel関数のIFに近いと言われていて、
返す答えがTrueかFalseの2択になります。
条件が正しければ前者の答えが、間違っていれば後者の答えを返します。
↓↓↓
※今回、計算フィールドに書き込む計算式
IIF([カテゴリ]=[対象のカテゴリ] , [売上]*(1+[売上向上施策]),[売上])
↓↓↓
つまり
もし、カテゴリが[パラメーターで選択された対象のカテゴリ]と一致したら、
”売上×(1+[売上向上施策]) , [売上])”を返してね、
それ以外は通常の”売上”を返してね
という文です。
こちらは名称を『売上UP』としておきます。自分でわかれば何でもいいんですけどね。
計算式で作成した上記『売上UP』を行の”売上”入れ替えます。
そして次に基準となる”2016年の売上の110%を達成したかどうかを判断する”ために
リファレンスラインをひくことにします。
設定は、分布。
範囲は、セルごと。
値は目標となる110%にして、対象は”(2016年の)売上”です。
いつものように下を塗りつぶしにすると分かりやすいですね。
あとは110%のリファレンスラインを超えて、目標を達成した時に色が変わる仕様にしたいので下記の公式をマークの”色”に入れます。
SUM([売上UP])>SUM([売上])*1.1
→”売上UP(自分で作った計算フィールドの名称)”よりも、売上×1.1(110%)が大きくなったら、色をつけてくださいという指示ですね。
これで、パラメーター『売上向上施策』を10%ずつ動かしていくと
各地域の売上が延びていくのがわかりますね。
110%を達成した地域は赤く色が付きますので、分かりやすいです。
それにしてもブレットグラフがよくでてきますね。
これだけでてくるので、最終試験でもきっとでてくるのでしょう。
しっかりマスターしておきたいところです。
もう少し細かく見ていきたい問題があったのですが、
かなり長くなってしまったので、一旦こちらで終了とします。
IntermediateⅡはもしかしたら、試験前か後に振り返りのための
追加編を作成するかもしれません。
ではまた。
Data saber Boot Camp:Intermediate Ⅰ編
こんばんわ。
息子が先週から肺炎で入院しておりまして、日々仕事が終わると病院へと走る日々が続いています。
気づけば約1週間以上もTableauを触っていませんでした。私のような初心者は毎日少しずつでも触っていないと本当にあっという間に使い方を忘れてしまうので恐ろしいです。
内心猛烈に焦っておりますが、IntermediateⅠのニガテポイントを復習していこうと思います。あー色々と積み重なってる(꒪ȏ꒪)やばばばばば
************************************************
さっそくみていきましょう。
---------------------------------------------
Data saber Boot Camp :IntermediateⅠ編
Q2・・・プライマリグループ
Q3(Q11)・・・ブレットグラフ
Q5・・・融合セット
Q8・・・合計の割合
---------------------------------------------
▼Q2
メーカーごとの売上の分布を見たとき、利益が赤字になっているメーカーの売上に特徴はありますか?なお、メーカーごとに作っている商品のカテゴリが異なるので、カテゴリも分けられるよう考慮して表現してください。
メーカーの情報はExcelに入っていないので、「サンプル - スーパーストア - メーカー情報.tdsx」を使用してください。
まず問題文の通りに「サンプル - スーパーストア - メーカー情報.tdsx」のデータを取り込み、”データの表示”から中身を見てみると次のように「メーカー」名称と「製品Id」の文字列で成っているデータのようです。(レコード数はおいておく)
メインデータの”サンプルスーパストア”と結合をさせるために、重なる情報はないかな~と探してみると、ありました。「製品Id」は全く同じ情報が入ってますね。
グレーの鎖マークをクリックすると赤く変わります。
これで結合完了なので、”サンプルスーパーストア”のデータと”メーカー情報”のデータが、一緒に使えるようになりました。
ただし、この結合方法だと
なにかの表紙でこの鎖を再度クリックしてしまうと簡単に外れてしまいます。
人に渡すデータなどだとそれは危険なので、”プライマリグループ”にしてしまう方法が良いでしょう。
まず下記のように行に、
”スーパーストア”の「製品Id」とメーカー情報の「メーカー」を入れます。
そして「メーカー」ピルの▼をクリックして、プライマリグループの作成を選択。
前回のブログ記事(Fandamental編)でプライマリとセカンダリの違いを説明しましたが、このプライマリグループの作成を行うと、セカンダリデータ(メーカー情報)の選択項目がプライマリデータ(スーパーストア)に埋め込まれるようになります。
さっそく選択してみると、下記のように「メーカー」名称と「製品Id」が紐付けられたフィールドが誕生しました。
名称は「製品Id(グループ)1」のままだとややこしいので、プライマリグループにない「メーカー」に変更しましょう。これでメーカー情報のデータを削除しても、いつでもメーカー情報を取り出すことが可能となりました。
その後は問題に沿って淡々と進めていきます!
「売上」列に、「カテゴリ」を行に置き、「利益」で色分けをして赤字黒字を明確にする。そして「メーカー」を詳細に入れて次のようなVizを作りました。
どのメーカーに赤字が多いか、どの売上に赤字利益が固まっているか、
また分かれているかがひと目でわかりますね~
自分一人で分析して、サクッと確認したい場合は最初のクリップを選択して結合する
やり方でもいいと思います。ただ、今後もこのメーカー情報を元にいろんな分析軸として使うよ~という場合はプライマリデータに埋め込んでしまう、”プライマリデータグループの作成”がおすすめですね。
▼Q3
1年前の売上を目標金額としたとき、2016年の売上が目標未達成だったカテゴリを教えてください。そのカテゴリは95%は達成していましたか?
今回は2016年の売上が目標金額(1年前、つまり2015年の売上)を達成したかどうか。
カテゴリ別で見た時に、未達だったカテゴリはどれか?という話ですね。
(ちなみに2016年のカテゴリ別売上はこんな感じ。)
今回は2016年と2015年の売上比較をしたいのでので、計算フィールドを使って下記のような式を作成します。
これを2016年分、2015年分で2つ作ります。
2016年売上【IF DATEPART("year",[オーダー日])=2016 then [売上] END】
2015年売上【IF DATEPART("year",[オーダー日])=2015 then [売上] END】
列に入れていた「オーダー日」「売上」を今回作成した「2016年の売上」と入れ替えて、「2015年の売上」をリファレンスラインで目標値として設定するために”詳細”のマークに入れます。
これで、「2015年の売上」リファレンスラインでセット出来るようになりました。
設定方法は下記の通り。
分布・セルごとに設定し、問題の通り昨年の売上(2015年売上)に対して、95%達成&100%達成しているかをそれぞれ確認します。
結果、家具カテゴリは目標値(2015年の売上)は達成していないけど、95%は超えていたことがわかります。
▼Q5
売上トップ10/ワースト10製品の利益は良好でしょうか?
もし赤字の製品がある場合、もっとも赤字の製品数が多いカテゴリはどれでしょうか?
ここでは、売上トップ10とワースト10の製品を同じページに表示するために融合セットを使います。(シートを2つ作成して、ダッシュボードで1つにまとめるというのもできそうですが、、)
まずは売上トップ10とワースト10をそれぞれ、「製品名」の”フィルター”→”上位”設定で作成します。
フィルターに入った「製品名」を右クリックすると、”セットの作成”が選択できるようになるので、ここで【売上トップ10】と【売上ワースト10】というセット(フィールド)をそれぞれ作成します。
データペインに入った【売上トップ10】【売上ワースト10】いずれかを右クリックすると、”結合セットの作成”が選択できます。
セットの編集画面で、この2つのセットを結合方法を設定します。
”売上トップ10&ワースト10の融合セット”を作成できたら、今度は問題の通り、列の「売上」を「利益」に入れ替えます。そして”もっとも赤字製品の多いカテゴリ”を聞かれているので「カテゴリ」と「製品名」を行にセットします。そして作成した融合セットを、フィルターにセットします。
これで”売上トップ10&ワースト10”商品だけの利益情報が、1ページ内に表示されました。
ただこれだと利益の差がありすぎて、同じ軸上だと見づらいので
列にも”売上トップ10&ワースト10の融合セット”を入れて、右クリックで”セットのIN/OUTを表示”を選択して、融合したものを2列に分けて見せるように設定します。
さらにそこから利益軸の編集をして、”各行または列の独立した軸範囲”を選択して、
自動的にIN/ONTそれぞれにあった軸に設定してもらいます。
するとなかなか綺麗に整いました。
売上トップ10&ワースト10商品の利益は概ね良好のようですが、
赤字製品も家電・事務用品カテゴリで見られ、
もっとも赤字の多い製品数が多いカテゴリは事務用品のようですね。
▼Q8
利益が赤字顧客と黒字顧客の売上の割合を、オーダー月ごとに教えてください。
(月別トレンドを見たいので、オーダー年は含めない。顧客の項目は顧客名を使用すること)
まずは「利益」を列に「顧客名」を行に入れて、赤字顧客と黒字顧客を選定することにします。ビュー全体で見ると次のようになりました。利益0Kを境に反転してますが、上が黒字顧客、下が赤字顧客であることがわかりますね。
ここでは、さっそくQ5で覚えた”セットの作成”と”セットの結合”を使いたいと思います。
顧客名をフィルターに入れて、右クリックで”セットの作成”を選択。
条件として、利益の合計が0よりも高い顧客であることという設定を行います。
(*この黒字顧客フィールドの複製を行い、条件を逆にした赤字顧客も作成します)
作成した”黒字顧客”セットをフィルターに入れてみると、利益が0Kより多い顧客のみが表示されました。きちんと黒字顧客のみでセットできているようです◎
では列の「利益」を「売上」に入れ替えて、月ごとの「売上」を見た後に
さきほどセットした”黒字顧客”を色に入れてみます。
すると毎月の黒字顧客(IN)と赤字顧客(OUT)の状態がなんとなくわかるようになりましたね。
問題では”売上の割合”を確認したいと言われているので
%でそれぞれの割合を確認していきたいと思います。
「売上」を右クリックし、簡易表計算→合計にたいする割合を選択。
すると軸が%に変化しました。
次に、今だと全体(1月~12月)に対しての割合がそれぞれ出てしまっているので
「売上」右クリック→表計算の編集で、”セル”を使用して計算に変更します。
(*表(横)でも各月ごとの割合になって同じ答えになるようでした)
それぞれラベルも表示して、赤字顧客と黒字顧客の各月の割合がしっかりと明記されるようになりました。
※割合の計算についてのまとめはこちらを参照
今回は以上になります。
IntermediateⅠでは特に気になった4問だけをピックアップしたのですが、
思ったよりも長くなってしまいました、、
次回はIntermediateⅡ編をまとめていきたいと思います。
Data saber Boot Camp:Fundermental編
こんばんわ。
フルタイムママはいつ勉強をすればいいのか。
平日は子供を寝かしつけた後。じゃあ休日は?
結局のところ週末も、日中は子供と全力で遊んだりお世話したりで、むしろ平日よりハード。。。
というわけで本日も眠い目を擦って、22時過ぎのTableau Time開始です。
**********************************************************************************************
今回は、Data saber Boot Campの入門テスト、Fundermental編で
今後使えそうだな~&覚えておきたいなと思った機能を記録しておきました。
さっそくみていきましょう。
---------------------------------------------
Data saber Boot Camp:Fundermental編
Q6・・・カスタム分割
Q9・・・セカンダリ計算
Q12・・・利益率
---------------------------------------------
▼Q6
「製品マスタの不備で、カテゴリ項目に誤りがあることが判明しました。
製品IDの先頭(-(ハイフン)より前)を区切ると、正しいカテゴリが取得できるようなのですが、製品IDからカテゴリごとの正しい売上を算出してもらえませんか?」
まずは普通に「製品Id(ディメンション)」を行に、「売上(メジャー)」をマーク内のテキストにいれてみると下記のようになりました。
この「ー(ハイフン)」より前が正しいカテゴリなんですが、
今は間違いのものと結びついてしまっている可能性があるわけですね。
区切ると正しいカテゴリが取得できると。ふむふむ。
ここで使われるのはカスタム分割です。
データペイン内の「製品Id」を右クリック→変換→カスタム分割を選択します。
すると「製品Id」が「製品Id-分割済み1」というフィールド名に変わりました。
行に入れていた「製品Id」を「製品Id-分割済み1」に変更すると
下記のように簡単にカテゴリごとの正しい売上が表示されました。便利!
これって、エクセルのショートカットキー「Ctrl+E」の分割機能に似てますよね。
こういう地味な作業がサクッと出来るので、エクセルのショートカットキーは多用していますが、Tableauでもこのような便利機能はたくさんあるようなので覚えていきたいと思います。
▼Q9
「家具と家電の数量を累計で見たときに、差が開き始めるのは何年何月からですか?」
まずは「家具/家電」それぞれの「数量」を「(オーダー日)年月」ごとに見たときを下記のように表示しました。
なーんとなく2014年8月か9月あたり。
カーソルを合わせるとおそらく9月かな?というのが、かろうじて分かるんですけど
プレゼンだったらもっとひと目で理解できる図が必要ですよね。
ここでセカンダリ計算を使います。
セカンダリとは、”二番目の、第二の、補助的な、中等の、などの意味を持つ英単語(逆に主要なもの、第一に選択されるものは「プライマリ」)”と言われている通り、メインの表計算の集計結果に対し、更にプラスの表計算ができる機能です。
セカンダリとは - 意味をわかりやすく - IT用語辞典 e-Words
行内に「数量」をコピーして、2つ目の「数量」ピルの▼をクリック。
”表計算の編集”を選択すると、下記のような表計算の詳細編集ができるポップアップが出てきます。
その編集画面下に”セカンダリ計算の追加”という項目があるので、そこにチェックを漬けると、『プライマリ計算タイプ』の右隣に『セカンダリ計算タイプ』が表示されました。
ここではメインである『プライマリ計算タイプ』の累計の差を見たいので「差」を選択。また、プライマリの何と差を比べたいの?と聞かれているので、
「家具/家電」の累計の差を見るために、”特定のディメンション”から”カテゴリ”を選択しましょう。
するとこんな感じになります。「家具」に対する「家電」の累計の差がセカンダリ軸に出てきました。なんか、結構下がってますね。
両方折れ線だと分かりづらいので、
セカンダリ軸のほうは下記のように棒グラフにします。
これだと2014年の9月から棒グラフが一気に下を向き始めることがわかります。
つまり「家電/家具」の数量の累計の差が開き始めたのは、2014年9月とわかるわけですね。
▼Q12
「オーダー日の全ての曜日で、利益率が15%を切っている年はありましたか?」
今回は利益率の問題です。
まず、データペイン内には”利益率”という項目はありません。
あるのは「売上」と「利益」のみなので計算する必要があります。
まずはデータペインの検索窓の右端にある▼ボタンをクリックします。
すると”計算フィールドの作成”という項目が出てくるので選択しましょう。
ここに”利益率”というフィールドを作成するために計算式を記入します。
普通に考えると①の【利益÷売上】なのですが、
答えは②の【SUM(利益)÷SUM(売上)】になります。
①②でそれぞれ作ってみて比較すると、
全然違う答えになるので気をつけないといけません。
「オーダー年/曜日」別の「利益率」を見たとき、
これが①【利益÷売上】の結果になります。
利益率の軸の%がおかしいことになっていますね。8000%って??
行の列の”利益率”ピルをよく見ると、「合計(利益率)」と書かれています。
そしてこれが②【SUM(利益)÷SUM(売上)】の結果です。
利益率の軸の値もおかしくありませんね。
こちらは、行の列の”利益率”ピルを見ると、「集計(利益率)」と書かれています。
これをエクセルで考えると、恐らくこういうことなのかな?と思います。
間違っていたらすみません。
でもわたしのような初心者は、とりあえず全然違うものなんだ!!と理解しておくだけでも十分だと思います。
上記数値は、Data saber Boot Campで使用する数値データ『サンプルスーパーストア』から引っ張ってきています。これが何千、何万行もあるので①については「合計(利益率)」がとんでもない値になってしまったのかなと。
そして、②の「利益率」の計算方法が正解だとわかったところで、
その結果を使い、アナリティクスペインから”定数線(15%設定)"を選択して引くと、
下記のように2016年が全ての曜日で15%を切っている年だとわかりますね。
Fundermental編でTipsとして抑えておきたいポイントは以上です。
引き続き、Intermediateでも復習を兼ねて
ポイントを絞って記録して行きたいと思います。
Tableau初級用語まとめ
1歳3ヶ月の息子がようやく1歩2歩と歩きました。
人間の成長って感動しますね~
子供の成長を見て、こちらも負けていられません!
さあ、子供が眠りについたので今日もママのTableau Timeが始まります。
**************************************
さて、今回はTableau Boot Campの問題を解いていく中で
初心者がいきなりつまずくんじゃないか?と思う用語をまとめてみました。
Tableauのサイトは親切なので、各項目について
詳細なヘルプが書かれているのですが、初歩的な用語説明は結構はしょりがち・・・!
わたしはKTさんやTableauヘルプの動画の中でも、
「え、まって。今の用語なんだっけ…」とついていけないことがあったので
改めて理解するためにもこちらでまとめていきたいと思います。
-------------------------------------------------
■Tableau初級用語まとめ
- フィールド、ペイン、ピル 、シェルフ
- ディメンションとメジャー
- 連続と不連続
- メジャーネームとメジャーバリュー
- マーク内の項目(詳細とツールヒント)
-------------------------------------------------
★前段
まずは下記の練習用ワークブックをDLして、Tableau内の用語や概念を理解します。
https://www.tableau.com/sites/default/files/understanding_pill_types_10_ja-jp.twbx
これを使って表の中の各項目を1つずつ、行や列に置いていって
触りながら理解すると頭に入りやすいです。
1.フィールド、ペイン、ピル etc.
まずTableauを開いてデータを読み込み、ワークシートを開くと
下記のような形になっています。
左側にフィールドと呼ばれる項目が並んでおり、その箱が「(データ)ペイン」と呼ばれます。隣のタブは「アナリティクスペイン」です。
その右にある、”ページ”、”フィルター”、”マーク”、そして”列・行”はそれぞれ「シェルフ(棚)」です。
フィールド名を”列・行”に入れた時に現れる、長い横長丸のアイコンは薬の形のようなので「ピル」と呼ばれます。
また棒グラフが出ている場所は、「ビュー」となります。
「ピル」と「ペイン」はTableau以外では特に耳慣れない用語だと思うので、最初は画面を動かす時にブツブツ言いながらしっかり覚えましょう。
2.ディメンションとメジャー
2つ目は、ディメンションとメジャーです。
ペイン内のフィールド名「売上-連続」という項目を
試しに「行」のシェルフにもっていくと、緑色のピルが表示されました。
緑色というのがポイントで、
Tableauの世界では【緑色=メジャー(連続)】という意味です。
メジャーとは指標や数値データのこと。
定規や一般的なメジャーのイメージを持つと分かりやすいですね。
上記で表の中でメジャーに分類されているのは次の通り、
利益、割引、売上、配送料、レコード数、(メジャーバリュー)
なるほど、全部数値です。
Tableauではメジャー(指標や数値データ)は
基本的に”集計されて表示される。つまり連続データである。”と覚えておきましょう。
▼実際このように、配送料(メジャー)も合計値になり、まとめて出てきます。
一方、【青色=ディメンション(不連続)】は
オーダー日や地域など、カテゴリを表すものです。
ディメンションは”分析の切り口”とも言われます。
殆どの場合、
ディメンションは不連続
メジャーは連続
です。
不連続と連続が何かは、次の章でまとめます。
3.連続と不連続
フィールド名の左のアイコンの色が、連続は緑、不連続は青で表されます。
下記の表示結果を見て、連続と不連続のイメージをつけておきましょう。
▼「利益(連続)」を行に、「年/月(不連続)」を列に入れた状態のビジュアル。
▼「利益(不連続)」行に、「年/月(不連続)」を列に入れた状態のビジュアル。
これを見る限り、「利益(連続)」を不連続に変えて使うということはあまりなさそうですね~。各月の利益を個別でみたいなら、クロス集計表を使えばいいですもんね。
もともと不連続である状態を連続にして使うことが最も多いフィールドは「日付」です。
▼「売上(連続)」を行に、「オーダ月(連続)」を列に入れたビジュアル。
▼「売上(連続)」を行に、「オーダ年/月(不連続)」を列に入れたビジュアル。
上の「オーダー日(連続)」では、年月が1列になり、売上の折れ線グラフが1つに繋がって見せているのに対して、下の「オーダー日(不連続)」では、年・月それぞれが箱で区切られており、売上の折れ線グラフも各年ごとに表示されています。
「オーダー日」ピルの▼ボタンをクリックして表示される選択肢は、最初とても分かりづらいのですが、データペインと同じ並びだと覚えましょう。
上の「年・四半期・月・日」が不連続。
下の「年・四半期・月・日」が連続です。
4.メジャーネームとメジャーバリュー
データペインのディメンションフィールドと、
メジャーフィールドそれぞれの一番下にあるフィールド名が
「メジャーネーム」と「メジャーバリュー」です。
「メジャーネーム」は、メジャーに入っているすべてのフィールド名を1つのピルに集約したもの。「メジャーバリュー」はメジャーの数値を1つのピルに集約したものと言えます。
▼「メジャーネーム」を行に、「メジャーバリュー」をテキストに入れて
下記のような表を作ってみました。
見事にメジャー内のフィールド名&数値が一括で表示されましたね!
5. マーク内の項目(詳細とツールヒント)
マークは、作成したビジュアル上に様々な視覚効果(アレンジ)を加えるために使います。
今回はしばらく使ってみないとよくわからなかった、
「詳細」と「ツールヒント」についてまとめておきます。
▼詳細
ディメンションを「詳細」に配置すると、フィールドのさらに詳細な値(内容)を表示させることができる機能です。一部事例を見てみましょう。
1)表示形式が記号マップの場合
地理的要素を入れた「地域(ディメンション)」を詳細に入れると・・・
下記のように地図上に地域の詳細が加えられ、色分けされました。
2)カテゴリ別の2016年でフィルターした売上棒グラフの場合
前年比売上比較をするために、2015年でフィルターした売上を「詳細」に入れて
アナリティクスペインから「リファレンスライン」を選択すると・・・
下記のように、詳細に入れた2015年の売上がグラフ上に表示されました。
※「リファレンスライン」の設定について詳しくはまた別の回で説明します。
詳細はグラフの表示形式によっても様々な詳細が追加されるので、
問題を解いていく中でもかなりの頻度で出てきます。
ぜひ色々試してみることをおすすめします!
▼ツールヒント
グラフ上でポイント時、もしくはカーソルをかざした時に表示されるカード(ヒント)を定義出来る機能です。
下記のようにツールヒントの編集という画面から、表示内容が編集可能です。
※下記は5分程度で一気に重要なこと説明してくれるTableauヘルプ動画。
わたしのようなTableau初心者にはおすすめです。
今回の初級用語まとめは以上です。
また問題を解いているうちに混乱したら、用語まとめパート2を作りたいと思います。
なぜデータをビジュアライズするのか。
ーー今まで多くのデータ分析プロジェクトというのは、データを分析すること、データを取ってくること自体がタスクになってしまう事が多々ありました
初めてのTableau : Bronze Demo ~ Data Storytellingの第一歩 より
さて、早速進めております。
Tableauを使いこなすトレーニングの第一歩となる
Tableau Boot campの初回動画です。
冒頭に挿入させていただいたKTさんの言葉、めちゃくちゃ共感しました。
現在、わたしの業務がまさにこの状態だからです。
部内にデータを抽出できる人材が少ないため、
メンバーの希望データを取ってくる作業がメインタスクになっていて、
毎度クエリを書いてデータを取りに行っては、依頼者にお渡しする作業が増えていく
日々。
いやいや、私の専門なんだっけ?
KTさん曰く、
データを簡単に視覚化(ビジュアライズ)することの必要性は、
タスクの欠落を防ぐため
だそうです。
そもそも本来のタスクというのは、
データを抽出することでも、分析をすること自体でもなく、
その先の目的を達成すること。
データを抽出して (Get Data)
→ 分析して (Choose Visual Mapping & View Data)
→ 問題点&改善策を見つけて (Davelop Insight)
→共有して (share Act)
→ 目的を達成する(例:売上を上げる)(★Task)
なのに、なぜデータを簡単に視覚化出来ないとタスクの本質を忘れてしまうのか。
ゴールが、データの抽出や分析にすり替わってしまうのか?
その原因は、人間の脳の仕組みにあるそうです。
とにかく人間の脳は、眼の前の複雑なタスクをやっていると
次の目的から意識がそれちゃうんですって。
なるほど。わたし自身の問題や、だけじゃないんだなと少し安心しました。
次の動画では、認知心理学の説明をしていて
人間が短期的に記憶できる限界の数は7つ程度だと言っています。
DATA Saber Boot Camp Week2 "Visual Best Practice: Art and Science of Visual Analytics" - YouTube
これは、WEBのUIの世界でもよく言われていることで
O'Reilly Japan車の情報アーキテクチャや、インタフェースデザインの心理学などでも、
人がパッと見て記憶できる数の限界は7(±2)だから
グローバルナビゲーションのメニュー数はそのくらいが適切だよと書かれています。
データのビジュアライズも、
最終的に”分析結果をほかの人に共有して意思疎通のツールとして使うことを目的としている”ので、WEBの設計と同じようにユーザビリティに気をつけるということがいえそうですね。
自己満でかっこいいビジュアライズを作って喜んでいても意味ないんだよ~という。
ちょっと話がずれてしまったので元に戻すと、
”データを簡単に視覚化(ビジュアライズ)することの必要性は、
タスクの欠落を防ぐため”
そして
タスクの欠落をすることなく、
プロジェクトメンバー全員で本来のゴールに向かうこと。
この辺りをしっかりと意識してTableauを学んでいこうと思います。
はじめまして。
はじめまして。R-amiと申します。
以前アメブロでこんなブログをやっていました。
最後の記事が2019年。
あれから世の中にはコロナが蔓延し、そんな中で息子が生まれ、今は1歳になりました。
当時マレーシアやオーストラリアで出会った仲間とは
コロナで気軽に会うことはできなくなってしまいましたが、
それでも未だに毎月毎週のように連絡を取り合っています。
本当に現代のインターネット技術には感謝しかないです。
数年前、大の苦手な英語を必死に学び、
無謀にも海外で働き、暮らしたことで
英語を話せなかったときには出会えなかった
素晴らしい人たちや景色に出会うことができ、
今では英語が大好きになりました。
そんな苦手を克服して、
世界が180度変わった経験を持つ私が選ぶ、次に学ぶもの。
それがデータツールTableauです。
学生時代、英語の次に苦手だった数学。
数値・データを扱うことは大人になっても相変わらず苦手ですし、
英語並みに嫌悪感を覚えます。
それでも出来るようになったら、
きっと英語が出来るようになった時のように
また世界が変わるのかなーなんて期待を持って始めてみようと思いました。
もしかして世界が変わるかも?と感じさせてくれるTableau Japan株式会社のKTこと田中香織さんのYoutubeチャンネル。www.youtube.com
KT(田中 香織) - プロフィール情報 - アナリティクス アソシエーション
--------------------------------------
わたしがブログをはじめるきっかけは
いつも何かと戦う時。
最初のブログは新入社員時代に、毎日広告コピーを調査して
自分でもキャッチコピー100本ノックをするための挑戦ブログ。
2つ目は海外に出るための英語勉強と、現地の会社での奮闘ブログ。
そして今度は、
大の苦手なデータツールの勉強を綴るブログを立ち上げることにしました。
内容は相変わらず戦う前の決意表明と日々の備忘録です。
これまでずっとアメブロを使ってきましたが、
今回は仕事関連でお世話になる方も見る可能性があるので、
同業者の使用が多いはてなブログさんにお世話になることにしました。
さてさて、学生時代
英語の次に苦手だった数値やデータを克服することが出来るのか。
前回の英語習得の時とは違い、
フルタイムの仕事をしながら、さらに手のかかる1歳児を見ながら
限られた期間でTablea を習得することは出来るのか。
険しそうな壁を見て、ちょっぴりワクワクしている自分がいます。
よし、また頑張るぞ。