その他お問い合わせ先

lodestar@truestar.co.jp

運営会社

株式会社truestar
truestar activation株式会社

Tableauで閲覧ユーザごとに権限管理

Tableauでのアクセス制御について

作成したダッシュボードをユーザによって見せる、見せないを制御したいという場合、ユーザ毎の権限管理が必要になります
所属部署や、担当地域によって特定の領域だけデータを見られるようにしたい、といったようなケースです。Tableau Serverにはユーザまとめるためにグループを作ることが可能なので

例:部署でグループを作る

単に「ワークブック単位」でビューの表示権限を制御したいだけなら
TableauServerで”パーミッション”設定をすれば簡単にワークブックを特定のグループ(ユーザ)に見せる、見せないというのは制御できます

ですが、ビュー自体の閲覧権限は与えつつ、見るユーザによって閲覧できるデータの範囲を制御したい場合にこの機構は使えないので、
そのビューの作りの中で制御する必要があります。今回はデータをユーザ毎に制御する方法を試します

ISMEMBEROF()を使って制御する

Tableauで使える関数の中にTableau Serverで定義された特定のグループに所属しているかどうか、を判定する関数
ISMEMBEROF()があるのでこれを利用します。
この関数は括弧内の引数で指定したグループにユーザが属しているかどうかをtrue/falseで返します

例として「地域ごとの利益率データ」表示するビューを使い、”担当の地域”だけ表示するというケースを想定して制御をかけてみます
前準備としてまずはTableauServerにグループを作ります
地域ごとにデータを制御したいので試しに「関東」、「関西」、「その他」という3つのグループを作りました。

地域別の利益率を月ごとに表示した簡単なグラフを例にとります
(データはTableauにデフォルトで付属している”スーパーストア”のデータを使いました)

デフォルトでは特に権限制御はしていないので全ての地域の利益率が表示されます
これをアクセスするユーザが所属しているグループによって、特定の地域のみ表示するという制御を加えます

まずは特定のグループに所属するユーザがこのビューを表示したとき、表示可能なデータの範囲がどの部分になるのかを判断するために、
“定義したグループごと”に許可/不許可を判別するためのデータを作ります
この判別用のデータはあらかじめデータとして持たせた方がTableauで計算させる必要がなくなりますが、今回は簡単にTableauで生成してしまいます

関東グループには、地域が関東のみのデータを見せたいので、データが”関東地方”の場合にtrueを示すデータを作ります、所属グループが関東のユーザに対してはこのデータだけを見せることになります。
これをグループごとに作り、各グループに所属しているユーザがどのデータを見ればよいのか判定できるような状態にしておきます
これで地域ごとに3つのグループそれぞれで真偽の判別が可能になります

最後にこの判別用のデータとユーザの所属するグループから、最終的にどのデータを表示させるのかを制御するための表示許可データを作ります。
ここはユーザに応じて動的な要素とのなるので、Tableauの計算が必須です

自分の所属グループが関東なら関東グループ用のデータ、関西グループなら関西グループ用のデータがTRUEとなるように作っています

最後にこの表示許可データがTRUEの場合のみ表示するという条件でフィルタにいれることで、
閲覧ユーザが所属するグループに応じて表示制御ができます

 (関東グループのユーザが閲覧した場合)

(関西グループのユーザが閲覧した場合)

注意点

今回の場合、制御したいグループの数に応じた判別用のデータを持っておく必要があるため、制御したいグループが大量にある場合には向きません。

また、ISMEMBEROF()の関数は引数で与えるグループ名を文字列として決めうちで表記する必要があり、
Tableau Server上でのグループ名が変わった場合に機能しなくなるデメリットがあります

用途に応じて、適切に使えるかどうか考慮してためしてみてください

Toshihiro Rokusya

Gartner Magic Quadrant

IT 系サービスの格付け評価といえば Gartner Magic Quadrant が有名です。

TableauAnalytics and Business Intelligence 部門で6年連続不動の Leader!
https://www.tableau.com/reports/gartner

さらに、私が愛してやまない Alteryx も遂に Leader に!
しかも Data Science and Machine-Learning Platforms というオシャレな部門で。
https://pages.alteryx.com/EMEA-analyst-report-2018-gartner-mq-data-science-machine-learning.html

使い続けて 3年半。とても感慨深いものがありました。

Tableau ユーザーの皆様、Alteryx は単なる ETL ツールではありません。
いつもお世話になっている Developers.IO さんの記事を拝借しますと

統計分析(基礎的な統計処理からベイズ、機械学習まで幅広く!)

Alteryx v11.7:『予測』関連ツールの機能概要&ブログエントリまとめ #alteryx

空間情報処理(Geometryデータの高速処理!)

Alteryx v11.7:『地理情報』関連ツールの機能概要&ブログエントリまとめ #alteryx

DB側での処理実行(大規模データ処理に有効!)

AlteryxのIn-DB機能の話

さらに、Tableau 使いにとってたまらないのは、Publish to Tableau Server ツールを使うことで、
データソースの TDE 化と Tableau Server へのパブリッシュが Alteryx のフローに組み込めるため、
TDE への抽出処理の負荷を Tableau Server 環境から切り離せます!

AlteryxのTableauワークフロー『Publish to Tableau Server Tool』を試してみる #alteryx

 

しかも、今月 Tableau の新しい TDE である Hyper にも対応予定で、旧 TDE と Hyper を選べるとのこと。(少し古い情報ですが)
https://community.alteryx.com/t5/Analytics-Blog/FAQ-Alteryx-and-Tableau-Hyper-Integration/ba-p/110160

Tableau のお供に是非 Alteryx をお試しあれ。

 

T.Fuji

JIRAのデータをTableuと連携させて時間管理したはなし

今回はプロジェクト管理ツールであるJIRAのデータをTableauに自動で連携させタスクにかけた時間を可視化した事例の紹介です

JIRA×Tableau(×Alteryx)

JIRAとは課題管理やプロジェクト管理に用いられるツールで
truestarでは細かいタスクをこれで管理し作業のステータスや作業ごとのやり取りをJIRAベースで管理しています

そのJIRAにはタスクごとにどの程度時間を使ったのかを記録できる「作業ログ」という機能で
各タスクにどの程度の時間をかけているかを記録できます

今回JIRAを使って記録した作業時間のログを自動で収集加工し
Tableauにそのデータを取り込む仕組みを作って日々データが自動更新されるフローを作りました。

データのETL処理には加工や分析に特化したETLツールの1つであるAlteryxというツールを使っています
大きな流れは以下です

  1. URLからJIRAデータを自動で取得
  2. Alteryxが自動でETL処理、Tableau Serverにパブリッシュ
  3. Tableau でJIRAのデータを可視化

1.URLからJIRAデータを自動で取得

細かなJIRAの機能は割愛しますが各タスクのデータはタスクの検索結果をCSV出力するという機能があり
これにはユニークなURLが振られています、特定のURLにアクセスすればタスクの検索結果をCSVファイルとしてダウンロードすることができます

今回は「時間管理ログ出力」フィルタを作りこのURLにアクセスしてCSVを拾います
URLにアクセスできればなんでもよいのですが今回はここから自動でURLを抜くのにPythonを使いました

簡単にですが以下のようなイメージです
流れは至極簡単でJIRAの認証を通してURLアクセス後
ファイルを特定のフォルダに吐き出しているだけです
このプログラムWindowsのスケジュール機能で定期的に動かしています

2.Alteryxが自動でETL処理、Tableau Serverにパブリッシュ

JIRAからひっぱってきたデータはタスクに関連するあらゆるデータを含んでいます
そのままではTableauに取り込みづらいためAlteryxで必要なデータに加工をしてあげます

加工の処理もそれほど複雑なことはしていませんが自動化のための肝は2つです
1つめはJIRAの作業ログデータの特徴として1つのタスクに複数の作業ログが記録されている場合

データは「作業ログ」という同名の列を複数持つことになります、その数はタスクの作業ログの数に比例するので何個あるかは不明です

CSVデータのイメージ(*あくまでイメージですので実際の中味とは異なります)
タスク名称,作業ログ,作業ログ,作業ログ…
tableau-idの記事を書く, ドラフト版作成:1時間, 第1項作成:2時間, 成果物チェック:2時間,…

このデータをAlteryxに読み込ませるとAlteryxが忖度してくれて
「作業ログ1,作業ログ2,作業ログ3…」と勝手に連番をつけて読み込まれます
Tableauで処理する都合上、この作業ログというデータはこのように横にくっつく形ではなく
縦に積み上げてデータを持つ形が理想です
(縦に持っていたほうが作業ログ時間の”集計処理”などが楽なので)

なので必要な列データを選択するタイミングで”作業ログ~”という名称を持つデータをまとめて取り込み
REGEX_Match([Name],”作業ログ.*”)
対象の列を絞り込んだら作業ログをまとめて縦持ちにしておきます

2つ目は単純にAlteryxで処理したデータを最後にAlteryxでTableau Serverにパブリッシュしてしまう
という点
Tableau Serverへのパブリッシュは「Publish to Tableau Server Tool」を使いました

 

このAlteryxの処理を自動で実行してくれるAlteryx ServerにあげることでETL処理を自動化します

3.Tableau でJIRAのデータを可視化

データの準備ができたら本題ですが
TableauでJIRAの作業ログデータを可視化するときの肝は2つです

先ほどパブリッシュしたTableauServerのデータソースとライブ接続すること(まぁ当然ですね)

もうひとつは、JIRAの作業ログデータは「;(セミコロン)」で区切られた値で
1つのカラムに複数の情報をまとめて持っているので、それを分解してやることです
今回はその分解をTableauでやらせています(事前に処理もできそうですが)

作業記録時のコメントデータ;記録した日時(yyyy/mm/dd hh:mm;ユーザ名;記録した時間(ms)
こんな感じで持っていますさらに「作業記録時のコメントデータ」には改行情報も入ってきます

なのでTableauでそのまま取り込むとこんな感じです

フィジビリティ調査
内容精査
完了連絡;2018/01/30 16:44;Toshihiro.Rokusya;1800

改行コードをどのように処理するかは画面でどう使うかにもよるきがしますが
今回は改行コードを空白に置換して1行にしました

改行コードを削ったら後は分解です、以下で処理できます
REGEXP_EXTRACT_NTH([作業ログ(改行コード削除)],'(.*);(.+);(.*);(\d+)’,1)

ようするに「;」を目印にしてどの位置(↑この場合は1つめ)にあるデータを抜き出すかを決めています
これだけです。
この場合は1つめなので一番頭の作業コメントを抜いています、
以降は後ろの番号をかえたそれぞれの計算フィールドをつくればOKです

「2:作業日時」
DATETIME(REGEXP_EXTRACT_NTH([作業ログ(改行コード削除)],'(.*);(.+);(.*);(\d+)’,2))
*データを時間に変換もしてます

「3:作業者」
REGEXP_EXTRACT_NTH([作業ログ(改行コード削除)],'(.*);(.+);(.*);(\d+)’,3)

「4:作業時間(時)」
INT(REGEXP_EXTRACT_NTH([作業ログ(改行コード削除)],'(.*);(.+);(.*);(\d+)’,4))/60/60
*データを”時”に直し数値に変換

データがそろったら後は煮るなり焼くなり、、、ダッシュボード化

JIRA * Tableau

今回はプロジェクトごとに月別のタスク時間を積み上げて
月に設定された上限内に収まっているかどうかを可視化しました

このデータを日時で自動更新されるようにCSVデータの取得、データ加工処理をスケジュールし
Tableau Serverからダッシュボードをサブスクリプションすることで
定期的にメール報告としてあがるようにしています

JIRAには作業ログ以外にもタスクに関連するいろいろな情報を持っているので
JIRAのデータと連携できると用途はいろいろと広がりますね

Toshihiro Rokusya
truestar inc.

 

 

日常レポートにおけるストーリーの使い方

Tableauの機能の中でワークシート、ダッシュボードは使うけどストーリーは使ったことがないな?という方も多いのではないでしょうか。

(左からワークシート,ダッシュボード,ストーリーの追加)

Tableauの公式のヘルプを見ると以下のように記載されています。

Tableau のストーリーとは、情報を伝達するために連続した視覚化を組み合わせたものです。ストーリーを作成することで、データを物語風に語ったり、背景を提供したり、決定と結果の関連を示すことができます。または単に強力な説明を行うこともできます。

http://onlinehelp.tableau.com/current/pro/desktop/ja-jp/stories.html

もちろんこういった使い方が本来の用途かと思いますが、ストーリーの特性を利用して日常のレポーティングにも活用できる可能性があるかもしれない、
というのが今回の投稿内容となります。

 

スーパーストアのサンプルワークブックを使用します。

ストーリーはダッシュボード又はワークシートを挿入して更に説明書きを加える機能があります。

 

 

もう一つの特徴として、

・変更したフィルタは元のダッシュボードやワークシートには反映されず、そのストーリーポイント内のみで維持される

という点が上げられます。

これを利用すると、

・関東地方の情報、関西地方の情報をフィルタを切り替えずに配信したい

という時に、同じダッシュボードを複製してフィルタだけを切り替えたものを別途用意する必要がなくなる可能性があります。

注意点としては、

・ストーリーポイント内で変更したフィルタは元のダッシュボードやワークシートでフィルタを変更しても反映されなくなる

点が上げられます。

逆に言えばストーリーポイント内で変更していないフィルタについては、元のダッシュボードやワークシートでフィルタを変更すれば反映されます。

少々癖があり使いにくい部分がありますが、使いこなせば便利な側面もありますので是非お試しください。

Tableau_id執筆者:林 周作(Shuusaku Hayashi)

アクションフィルターを並び替える

今回はアクションフィルターを並び替えるということでTIPSをご紹介致します。

よくあるシチュエーションとしては、画面遷移などでアクションフィルターを使用する際、
遷移先の画面でも同じフィルターを切替えて見たい(わざわざ元の画面に戻りたくない)。
そんな時はアクションフィルターをダッシュボード上に表示させれば解決!

・・・するはずが元々設定していた並び方と順番が違くて微妙。
並び替えはしてあるはずなのにどうして?

といった事態を解決するテクニックです。
それではストーリーで見ていきましょう。

サンプルで使用するデータはスーパーストアです。

 

 
繰り返しにはなりますが、デメリットを挙げるとすると
並び替えの設定を複数回行う必要がある点ですが、
できるかできないかを知っておくことが実装の幅に繋がりますので
頭の片隅に置いておいて頂ければと思います。

Tomofusa.Oi

Tableauの小ネタ2点(軸とツールヒントに別々のフォーマットを指定,サマリを表示)

今回は軽く小ネタ紹介です。

・軸とツールヒントに別々のフォーマットを指定する
「%を軸では整数、ツールヒントでは小数第2位まで表示したい」といった場合に使う小ネタです。
通常こういった際はツールヒント用に計算式を複製します。
http://kb.tableau.com/articles/howto/displaying-different-number-format-in-the-axis-and-tooltip
同じ計算式を複製したくない場合、軸と同じ計算式を詳細にいれ不連続にすると別に書式設定出来ます。
こちらをツールヒントに使用すればOKです。

ただし、Excelへクロス集計形式でエクスポートすると、ラベル扱いになって表が崩れるのでご注意ください。

サマリーを表示
ヘルプにも書いてある標準の機能ですが、最近まであることを知らなかったので、同じような方も居るかなと思いご紹介。
ワークシートのサマリーを表示から表示します。

その名のとおりサマリされた情報が数値で表示され、数表上で選択すると選択した部分の情報を表示します。

表示情報の調整も可能で検証等に便利です。
詳しくはonlinehelpをご覧ください。
http://onlinehelp.tableau.com/current/pro/desktop/ja-jp/help.htm#inspectdata_summary.html

Tableau_id執筆者:林 周作(Shuusaku Hayashi)

Tableauで路線図の作成

今回はTableauとAlteryxを使って全国の路線図を作成してみます。

※今回の記事は完璧な路線図を作れているわけではありません。

過去のエントリーでも国土地理院のデータを使って鉄道データの可視化は行われています。
Polygon for Tableauを使ってみる #Alteryx #06 | Alteryx Advent Calendar 2016

今回は株式会社コードプラス様が運営している駅データ.jpで提供しているデータを使用させていただきます。
株式会社コードプラス
http://www.codeplus.co.jp/
駅データ.jp
http://www.ekidata.jp/
(データのダウンロードには無料の登録が必要です。)

提供しているデータは以下の四つに分かれております。
・事業者データ
・路線データ
・駅データ
・接続駅データ
データの詳細につきましては上記ホームページに仕様がありますので、そちらをご覧ください。

データの形式はカンマ区切り(.csv)ですが文字コードがUTF-8になっているので注意が必要です。
エクセルでUTF-8で保存されたデータを読み込むと文字化けが起きてしまいますが、
Alteryxで読み込む場合はInput DataのOptionsでCode PageをUnicode UTF-8に変更するだけで読み込めます。

Alteryxでは複雑なことはせず、ひたすらJOINするだけになります。
Stationのデータを起点にして、lineデータ、companyデータ、joinデータをくっつけます。

これで、データは完成です。

作ったファイルをTableauで可視化してみましょう。
緯度と経度を行と列に入れます。

マークを線に、詳細にline_cdを入れます。
e_sortという項目でパスをつなげます。

もう一つ行の緯度を増やして二重軸にします。

詳細にstation_cdを入れます。


なんとなく出来ている雰囲気にはなります。

とりあえず見れるようにはなりましたが、このままですと残念ながら路線の動きに不具合が出ています。
たとえば:
山手線が環状になっていない。
鶴見線がジグザグ走行している。
成田エクスプレスが複雑な動きをしている。
などなど

下のダッシュボード「路線図DB」で上記の路線を一覧からクリックしてみてください。

環状線や一つの路線で複数に枝分かれしている場合、うまくパスをつなげることが出来ていません。

残念ながら現在のところTableauとAlteryxでうまく処理出来ておりません。

解決方法として考えられるのは、
環状線の場合は路線の最後に最初の駅を追加する。
複数に枝分かれしている場合は枝に固有の番号を振り合流地点の駅を各枝に追加する。

この解決方法ですと同じ駅が複数できてしまうため他のデータと結合して使う場合には不向きです。

上記の方法で一部を修正したものがダッシュボードの二つ目「路線図DB(修正)」になります。
うまい方法が思いつかなかったため手作業で加工しております。

今のところ最終的には手動で加工するしか手段は思いついておりませんが、
今後、自動化できる手法を発見しましたら更新いたします。

Tableau_id執筆者:鶴岡 鯨魚(Isana Tsuruoka)

KPIダッシュボードサンプル改

4月19日のTableau Conference on Tour Tokyoにて
『ダッシュボードデザインの基本』
というテーマで登壇させていただきました。

その中で、KPIダッシュボードのビフォーアフターをご紹介しましたので、ファイルをTableau Publicで共有しました。

簡単な説明とともにご紹介。

 

Tableau-id上で、2014年8月にKPIダッシュボードサンプルという記事を書きましたが、
そこで公開したダッシュボードを『ビフォー』として、
デザイン観点(フォント・色・レイアウト)を意識して簡易に修正した『アフター』版、さらに
コンテンツ観点(目的・情報整理・適切な可視化方法)まで加味した『アフターのアフター』版を作りました。

まず、これが『ビフォー』(※2017/04/21 誤って別のファイルを上書き保存してしまったのでver10.1で上げ直しました・・・)

なかなか色がうるさいですね。無駄な枠線などもあります。数値も小さく見づらいです。

 

フォント、色、レイアウトを簡易に調整した『アフター』がこちら。

フォントサイズ差での強調、色数の抑制、レイアウトを揃えなど、簡易な修正でシンプルで見やすいダッシュボードに修正したものです。
難しいスキルは必要なく、デザインの基本を抑えるだけでこのくらいには誰にでも簡単に作れると思います。

ちなみにフォントは『Tableau Book』です。
カンファレンスでも話しましたが、『メイリオ』などの日本語フォントはMacやiOSでの表示を制御できないのでオンライン展開する場合には、欧米フォントの『Tableau Book』等を使って、閲覧環境に委ねるという選択もあります。
標準的な環境ならば、MacとiOSでは日本語は『ヒラギノ角ゴシック』に、WinのChromeでは『メイリオ』になると思います。たしかIEだと『MSゴシック』とかで微妙でしたが・・・

また、Windows上のTableau DesktopやReaderだと、MS UI Gothicだったと思うので、iPadとかで見るようなニーズがなく、Windows環境メインなら『Tableau Book』フォントよりも『メイリオ』がシンプルで見やすいと思います。

 

さて、『ビフォー』版も『アフター』版も、そもそも掲載情報がモリモリなので、コンテンツを減らしつつ、Tableauのアクション機能によるページ遷移なども加えた『アフターのアフター』版がこちら。

先述の2つバージョンからは表示している情報数も内容も異なるので直接的には比較しづらいですが、コンテンツのボリュームや配置を調整することでより見やすくまとまっているかと思います。
気になった情報をクリックして詳細情報へページ遷移したり、絞込みができるのもTableauの良いところですね。

 

ちなみに、何をどう配置するかは、ダッシュボードのそもそもの目的・役割・用途による部分で、最も重要なポイントです。
今回はデザインの話にフォーカスを当てているため、そこには触れませんが、デザイン以前に『ダッシュボードの5W1H』をきちんと詰めておくことをオススメします。

■ダッシュボードの5W1H
Why そもそもの可視化目的は?
What 何を見る?
Who 誰が見る?
When いつ見る?
Where どこで見る?
How どうやって見る?

これらが定まっていないと、特にコンテンツ観点(目的・情報整理・適切な可視化方法)でのデザイン構成が固まらず、効果的な可視化は難しいと思います。

 

T.Fuji

p.s.
『ビフォー』版と『アフター』版の折れ線グラフでは在庫数を単純なSumで計算していますが、通常は月間の数値を四半期に足し上げて見るような数値ではないので厳密にはおかしいですね・・・失礼しました。
また、コーヒーチェーンのデータ(確か昔はTableauのデフォルトのサンプルデータだったはず・・・)だと当年と前年の数値がまったく同じで折れ線が重なるので、『アフターのアフター』版では計算フィールドでダミーデータを作って表示しています。念のため。

マリメッコチャート(Marimekko chart)を作成してみる

Tableau10.0で実装された「連続軸マークのサイズ変更」の機能を使って、マリメッコチャートと呼ばれる図を作ってみました。
マリメッコチャートを使うと、全体の量と内訳を視覚的に捉えることができます。
2軸を1つのグラフでまとめて見られる点が積上げ棒グラフとの違いです。
今回はスーパーストアのデータを使用しました。
横軸がセグメント(地域ごとの売上の大きさに合わせた幅を持つ)、縦軸が地域内のカテゴリシェアを表しています。


作成方法を順を追って説明します。
1.「売上」を行に配置し、地域、カテゴリで色分け

2.計算フィールドの作成

3.列に作成した「積上売上」を配置し、以下の設定で計算

4.「売上」の計算を合計に対する割合に変更、「カテゴリ」を使用して計算に変更

5.「列ごとの売上」をサイズに指定、サイズを固定、軸の単位の幅を「列ごとの売上」、配置を右に変更

6.ラベルなど細部を整えて完成   連続軸マークのサイズ変更ができるようになることで何ができるようになるのかな、 と調べてみてたところ、マリメッコチャートが作れそうとのことだったので作ってみました。

使いどころは難しそうですがこんなこともできるようになりましたよ、ということで。

Tableau本

3月末にTableauユーザー会メンバーが執筆した 『Tableau データ分析 ~入門から実践まで~』 が刊行されました。 ユーザー会のつながりで一部コンテンツの査読にも関わりましたが非常に濃密な内容です。
前半の基本機能の説明ではユーザー視点で引っかかるポイントが丁寧に記載されています。特にところどころに出現するColumnやNoteには公式マニュアルには載らないものの知っておきたいテクニックなどが多数盛り込まれています。 中盤にはデータ分析プロジェクトの進め方等に関する記述がありますが、ここはまさに弊社のプロジェクトの中でも日々感じていることが体系的に整理されており、仮にTableauユーザーでなくても有益なコンテンツです。
社内向けの企画書作成などでも役立つシーンは多いと思います。
後半の応用編は、実践的なデータ分析の手法が丁寧に書かれています。
2014年に当ブログに投稿したRFM分析も当時は一度集計結果を元データから切り離す必要がありましたが、いまではこの本に記載のあるように、LOD関数で実現するようになりました。
最後のユーザー事例では、導入経緯や社内での取り組み方だけでなく、Tableauの足らない点などにも切り込んでいたりと、このあたりはユーザー本ならではですね。
これから本格的にTableauを使いたい、という方には特にオススメの一冊です。
amazonで買う 楽天で買う
ページ数なんと700ページ超の超大作ですが、硬さのないソフトカバーなので手元で楽に扱えます。

※タバコを吸わないので500円玉と比較してみました。
P727にはおすすめサイトとして Tableau-id も掲載いただきました。ありがとうございました。