BI移行、UXはどう引き継ぐ? HTMLで相談し、Tableauで確かめる

生成AI時代のBI設計。BI移行、UXを翻訳する。HTMLで相談し、Tableauで検証するバナー。
マエス

こんにちは、マエスです。BIを別の製品へ移すとき、値が合うだけでは、使いやすい画面にはなりません。慣れた操作を残しながら、どこを直すか。今回はHTMLの試作で相談し、Tableauで確かめる進め方を試しました。

移行は、データと「使い方」を分けて考える

データ側では、取得元、項目、集計、更新を調整します。画面側では、利用者が迷わず操作し、目的にたどり着けるかを確かめます。これがUX、つまり利用体験の調整です。

既存画面を一度に理想へ作り直すのは大変です。色や並びを大きく変えると、利用者は覚え直す必要もあります。そこで、残す部分・今回直す部分・後回しにする部分を、見本を見ながら決めます。

慣れた配置に、結果が分かる操作名を置くダッシュボードの概念図。
慣れた配置を保ち、操作後の結果が分かる名前にする。

HTMLを、触って相談できる共通の見本にする

配置だけの相談なら、紙や静止画で十分です。「押したら何が変わるか」まで確かめたいときは、HTMLが役立ちます。HTMLに見た目を整えるCSSと動きを作るJavaScriptを組み合わせ、ブラウザーで触れる試作にします。

生成AIは試作と修正を手伝い、利用者は意図を確認し、実装担当は各BIの機能へ対応づけます。相談→実装→確認→試作へ修正を戻す。この往復で、作り込みの範囲を決める方法です。HTML自体がBIを自動変換するわけではありません。

HTMLを中央に、公式ロゴを使った8つのBIと文字表記のQlik Senseを配置。Tableauは実機検証、ほか8製品は公式仕様の確認。矢印は仕様と修正の往復。
矢印は仕様の対応づけと修正の往復。Qlikは文字、CRM Analytics・SAP・Amazonは公式共通マークです。HTML5 Logo by W3C(CC BY 3.0)。

15のBIを、一つずつ調べた

画面の形式、計算、Web連携は別の仕組みです。例えばTableauのTWBはXML、CRM Analyticsの画面定義はJSON。XMLやJSONは設定を記録する形式、APIやSDKは外部連携の窓口や部品です。APIの応答がJSONでも、画面全体の保存形式とは限りません。表の↗は公式資料です。

BI画面・資産の例計算Web連携
TableauTWB/XML ↗計算フィールド ↗Embedding API ↗
CRM Analytics画面定義JSON ↗SAQL ↗SDK・JavaScript ↗
Power BIPBIR/JSON ↗DAX ↗JavaScript API ↗
LookerLookML画面/YAML ↗LookML・SQL ↗Embed SDK ↗
MotionBoardボード定義 ↗明細/集計後の計算 ↗Web API ↗
Qlik SenseQVF(バイナリ) ↗集計式・集合分析 ↗qlik-embed ↗
SAP Analytics Cloudストーリー ↗計算メジャー ↗URL埋め込み ↗
Amazon Quick SightAPI定義JSON ↗ ↗計算フィールド ↗Embedding SDK ↗
ThoughtSpotTML/JSON・YAML ↗計算式 ↗Embed SDK ↗
Oracle Analytics CloudDVAパッケージ ↗式 ↗JavaScript埋め込み ↗
IBM Cognos AnalyticsレポートXML ↗基本計算 ↗iframe ↗
DomoPage APIで管理 ↗Beast Mode ↗Domo Embed ↗
MetabaseYAML(Pro等) ↗計算式 ↗SDK・iframe ↗
Apache SupersetYAML/ZIP ↗SQL ↗Guest Token/SDK ↗
Redash公開APIで管理 ↗SQL等 ↗iframe ↗

形式は代表例です。CognosのXML資料は12.0.xのレポート、SupersetはNext版、RedashのAPI一覧はV9時点。MetabaseのYAML出力はPro/Enterpriseが対象です。認証・権限・契約・導入版は個別に確認します。

Tableauで試し、違いを見本へ戻す

  1. 操作を一つ書く。何を押し、どの表や図を変え、何を残すかを決める。
  2. HTMLで相談する。文字、配置、選び方を試し、残す操作と直す操作を選ぶ。
  3. Tableauで実装・確認する。標準機能と計算、条件の値を指定するパラメーター、操作に反応するアクションを組み合わせる。
  4. 採用した変更をHTMLへ戻す。見た目・計算・操作・運用を照合し、差があれば利用者と相談して再確認する。
強調は他の線を残し、非表示は選んだ線を表示しない設計例。
押した後の結果を合意する。非表示は設計例で、Tableau標準凡例の動作ではありません。

「リセット」も、期間だけ戻すのか、系列の表示まで戻すのかで意味が変わります。例えば、期間は戻し、系列の表示は残すと決めます。最初は、よく使う操作を一つ選び、変える・残す・戻すを書いてみてください。

移行検証のTableauでは棒・線・数表と代表操作を実機で確認しました。その検証で戻したHTMLは構造・イベント・計算をオフラインで確認し、最終ブラウザー表示と本番受入は未確認です。他14製品は公式仕様の調査で、実機での相互変換は未検証です。

顧客データや実画面は載せず、図と部品は数値なしの説明用見本です。触れるHTML見本をダウンロードして、解凍後に開けます。認証・接続・書き戻しは画面状態の例で、外部へ送信しません。この補助見本の実ブラウザーでの表示・操作は未確認です。

関連:HTMLの手本でMotionBoardを作る。本稿は、再現範囲を判断し、採用変更を見本へ戻す工程を扱います。

HTMLとTableauで、部品をどう作るか

左の小さな図は、部品の形を示す見本です。同じ見た目や操作を、HTMLで作る場合とTableauで作る場合を並べました。まず二つの作り方を比べ、必要ならコード例を開いてください。表を横に動かすと、右側のコード例や確認内容まで読めます。

HTML側は、必要なJavaScriptやCSSも書いて作る方法です。Tableau側は、用意された機能で作れるもの、設定や計算を組み合わせるもの、外部アプリ等の追加開発が必要なものを区別しました。「今回の確認」には、Tableauで実際に試したことと、資料だけで確認したことを分けて書きました。本番でまだ試していないものも、そのまま書いています。

コードは仕組みを示す短い説明例で、配布HTMLからの抜粋ではありません。前後の処理が省かれているため、この数行だけで完成するコードではありません。実行はせず、読み比べるための表示にしています。

配布する操作見本は、数値を置かない画面操作の例です。集計、認証、実データへの接続、送信・書き戻しは行いません。保存はSVG画像のみで、実ブラウザーでの表示・操作の受け入れも未確認です。下表は、この見本に実装済みの機能一覧や、移行完了を保証する表ではありません。

グラフと表

部品と見本HTMLで作れることTableauで作るにはHTML側のコード例・実装条件今回の確認(Tableau)
棒・折れ線・複数系列
棒と複数の折れ線の見本
棒・線・系列を描き、色や選択時の見え方を自由に組み合わせられる。用意された棒・折れ線グラフで作れます。系列は色で分け、日付軸や並び順を設定します。 公式資料↗
コード例を開く
<svg viewBox="0 0 80 40"><rect width="30" height="20"/></svg>

棒の形の構造例です。値に応じた長さ、線、系列の管理は別途作ります。

Tableauで代表の棒・線・系列と軸を操作して確認しました。
積み上げ棒・面
積み上げ棒と面の見本
積み上げる位置や基準線を計算し、棒や面として描ける。用意された積み上げ表示を使えます。上に足す表示か、並べる表示かを選びます。 公式資料↗
コード例を開く
<svg><path d="M0 40L20 20L40 30L40 40Z"/></svg>

面の輪郭だけを示します。積み上げ位置や基準線の計算は含みません。

Tableauの公式資料で機能を確認しました。今回は作成・操作していません。
棒+線・二重軸
左右の軸を持つ棒と線の見本
棒と線を重ね、異なる尺度や軸の表示方法も設計できる。棒と線を重ねた複合グラフや二重軸を使えます。軸の尺度と同期を決めます。 公式資料↗
コード例を開く
<div class="plot"><svg class="bars"></svg><svg class="line"></svg></div>

棒と線を置く構造だけです。描画・重ね方・尺度・軸の同期は別途作ります。

二重軸は公式資料で確認しました。今回は別の尺度を上下に配置して確認しました。
地図・ツリーマップ
抽象的な地図とツリーマップの見本
位置情報や図形を用意して地図を描き、面積を区切って配置できる。用意された地図・ツリーマップを使えます。地理情報や面積に使う値が必要です。 公式資料↗ 公式資料↗
コード例を開く
.tiles{display:grid;grid-template-columns:2fr 1fr;gap:.5rem}

領域を並べるCSS例です。地理情報や値に応じた面積の計算は含みません。

Tableauの公式資料で機能を確認しました。今回は作成・操作していません。
数表・クロス集計
空欄の数表とクロス集計の見本
表の行・列を作り、集計結果・並べ替え・表示書式を組み込める。用意されたテキスト表で作れます。列や書式を設定します。自由なHTMLのセル構造と完全に同じになるとは限りません。 公式資料↗
コード例を開く
<table><tr><th scope="row">状態</th><td>未選択</td></tr></table>

表の骨組みです。集計結果やクロス集計、並べ替えの処理は別途作ります。

Tableauで代表の数表、列順、表示書式を確認しました。
小計・総計・比率
小計と総計、比率欄の見本
小計・総計を計算し、比率の分母や合計時の扱いも設計できる。総計機能と計算式を組み合わせます。比率は、合計時に何を分子・分母とするか決めます。 公式資料↗
コード例を開く
const ratio=(n,d)=>d===0?null:n/d;

ゼロで割る場合を空扱いにする比率の例です。総計での分子・分母は別途定義します。

Tableauで代表の集計・比率を確認し、計算結果も照合しました。
条件による色分け
色と形で判定を分けた表の見本
条件に応じて色や記号を変え、欠損時の見せ方も決められる。計算した結果を色に割り当てます。色が変わる条件、正負、欠損時の扱いを設定します。 公式資料↗
コード例を開く
const color=selected=>selected?"#c57943":"#749b86";

選択状態と色を対応させる例です。値の判定や欠損の処理は別途作ります。

Tableauで代表の条件による色の変化を確認しました。
文字・配色・配置
見出しと配色、配置の見本
文字の大きさ・配色・余白・並び方をCSSで細かく調整できる。書式とレイアウト用のコンテナーで調整します。HTMLのCSSをそのまま貼り付ける方法ではありません。 公式資料↗
コード例を開く
.panel{display:grid;gap:1rem;color:#173f46;font-size:1rem}

配置・余白・文字の書式例です。小さな画面向けの指定も別途加えます。

Tableauの文字・配色・配置の表示を確認しました。

選ぶ・切り替える・戻す

部品と見本HTMLで作れることTableauで作るにはHTML側のコード例・実装条件今回の確認(Tableau)
単一・複数・日付フィルター
選択欄、チェック欄、日付欄の見本
単一・複数選択や日付入力を置き、選んだ条件を表示へ反映できる。用意されたフィルターを使えます。どの図へ適用するか、解除したらどう戻すかを設定します。 公式資料↗
コード例を開く
<select multiple aria-label="条件"><option>条件を選ぶ</option></select>

複数選択の入力部品です。実際の候補・日付入力・絞り込み処理は別途用意します。

Tableauで代表の選択・期間変更を操作しました。すべてのフィルター方式を試したわけではありません。
親子の絞り込み
親の選択から子の候補へつながる見本
親の選択で候補を更新し、使えなくなった子の選択を解除できる。関連する値だけを候補に出す設定などを使います。候補が変わることと、無効な選択が解除されることは別に確認します。 公式資料↗
コード例を開く
const changeParent=(s,parent)=>({...s,parent,child:null});

親を変更し、子の選択を解除する状態処理です。候補の更新と画面描画は別途作ります。

Tableauで代表の親変更と、無効になった選択の解除を確認しました。
表・図の選択で別の図を変える
表の選択と別の図の連動の見本
表や図の選択を受け取り、指定した別の図や表へ反映できる。フィルター等のアクションで作れます。選んだ図と反映先、選択を解除した後の動きを設定します。 公式資料↗
コード例を開く
const choose=(s,value)=>({...s,selected:value});

選択状態を更新する例です。選択イベントとの接続や、反映先の表示更新は別途作ります。

Tableauで代表の選択と、別の図への連動を確認しました。
凡例・強調・系列の表示切替
凡例と系列の強調・表示選択の見本
選択した系列の強調・非表示・全表示を、それぞれ設計できる。凡例・ハイライト・フィルターを使い分けます。強調は他の系列も残し、非表示は別の操作として設計します。 公式資料↗
コード例を開く
const hide=(series,id)=>series.filter(s=>s.id!==id);

指定した系列を表示対象から外す例です。元の系列は保持し、強調や全表示は別に作ります。

Tableauで図ごとの系列切替と、全非表示からの復帰を確認しました。
数値範囲・複合条件
範囲の入力と複合条件の見本
上限・下限や複数条件の組合せを判定し、表示対象を変えられる。範囲フィルターに、計算や条件設定を組み合わせます。境界の値や条件が逆転した場合も決めます。 公式資料↗ 公式資料↗
コード例を開く
const inRange=(x,lo,hi)=>lo<=x&&x<=hi;

範囲内かの判定だけです。入力値の確認や条件の組合せ、表示更新は別途作ります。

Tableauで代表の範囲操作を確認しました。全条件の操作確認は未実施です。
基準日・比較期間・年度
基準と比較の期間を分けた見本
基準日・比較期間・年度のルールを決め、日付計算を実装できる。日付の計算や年度設定を使います。表示期間を変えても比較用の過去データを残すかを設計します。 公式資料↗
コード例を開く
<input type="date" aria-label="基準日">

基準日の入力欄です。比較期間や年度の計算は、この入力部品だけでは行いません。

Tableauで代表の年月変更と比較期間を確認しました。
画面遷移・パネルの開閉
移動ボタンと開閉パネルの見本
移動先へのリンクや開閉パネルを作り、残す状態も設計できる。画面移動や表示/非表示の部品を使えます。別画面へ移ることと、同じ画面で開くことを分けます。 公式資料↗
コード例を開く
<details><summary>パネルを開く</summary><p>説明</p></details>

クリックやキー操作で開閉できる最小例です。画面移動と状態の保持は別に作ります。

Tableauの画面移動は操作確認しました。開閉は公式資料のみの確認です。
全体・一部の初期化
戻す範囲を分けた初期化の見本
条件だけ戻すなど、初期化する範囲と残す状態を決められる。全体を元に戻す機能があります。一部だけ戻す場合は、条件の値やアクションを組み合わせて設計します。 公式資料↗
コード例を開く
const resetCondition=s=>({...s,condition:null});

条件だけを初期化し、ほかの状態を残す関数です。画面の更新は別途作ります。

Tableauで画面単位の条件初期化と、系列の表示を残す動きを確認しました。
ツールチップ
図の点に重なる吹き出しの見本
対象に補足説明を添え、マウスやキー操作に合わせて表示できる。用意されたツールチップで文字や値を出せます。別の図も表示できますが、任意のHTMLやJavaScriptを実行する仕組みではありません。 公式資料↗
コード例を開く
<button type="button" title="操作の説明">対象</button>

titleによる簡易な補足です。キー操作・タッチ・読み上げ向けの表示は別途対応します。

通常の文字・値の表示はTableauで確認しました。別の図の埋め込みは公式資料のみです。

読む・出す・運用する

部品と見本HTMLで作れることTableauで作るにはHTML側のコード例・実装条件今回の確認(Tableau)
図の値を数表で読む
図から補助数表を開く見本
図に対応する補助表を作り、開閉して読み取れるようにできる。「データの表示(View Data)」や専用の数表を使えます。表示する列、集計の単位、閲覧権限を確認します。 公式資料↗
コード例を開く
<details><summary>数表を見る</summary><table></table></details>

補助表を開閉する枠です。表示する行・列・集計の単位は別途定義します。

TableauのView Dataを操作確認しました。HTML補助表と同じ列・集計単位かは別途確認が必要です。
CSV・クロス集計・画像等の出力
出力形式を選ぶメニューの見本
データや図をファイル化し、保存用のリンクやボタンを作れる。用意された出力機能を使います。利用できる形式と対象は、画面の種類やダウンロード権限によって変わります。 公式資料↗
コード例を開く
<a href="figure.svg" download>図を保存</a>

既に用意したファイルを保存するリンクです。ファイル生成や権限の確認は別途必要です。

Tableauの公式資料で機能を確認しました。全形式・権限別の出力は未確認です。
スマートフォン・タブレット
大きな画面と小さな画面の配置の見本
画面幅に合わせて配置を変え、押しやすい大きさへ調整できる。端末別レイアウトで調整します。配置だけでなく、対象端末で押しやすさや表示を確認します。 公式資料↗
コード例を開く
@media(max-width:40rem){.cards{grid-template-columns:1fr}}

画面幅で列数を変える例です。対象の端末で表示と操作感を確かめます。

Tableauの公式資料で機能を確認しました。対象端末での受け入れは未実施です。
キーボード・読み上げ・色の見分け
フォーカス、読み上げ補助、形の区別の見本
キー操作・読み上げ名・色以外の手掛かりをHTMLで設計できる。公式のアクセシビリティ指針に沿って設計します。キーで移動できる順番、読み上げ、色の対比を確認します。 公式資料↗
コード例を開く
<button type="button" aria-label="条件を戻す">↺</button>

読み上げ名を持つボタンです。実際の初期化処理や色以外の区別は別途作ります。

公式指針は確認しました。全体の適合性、実際の読み上げ、利用者の受け入れは未確認です。
認証・アクセス制御
ログイン欄とアクセス対象の見本
ログイン画面は作れるが、本人確認・閲覧制御は認証基盤等が必要。Cloud/Serverの権限と、必要に応じた行単位のデータ制御を使います。表示フィルターを認証や権限の代わりにはできません。 公式資料↗ 公式資料↗
実装の条件を読む

HTMLだけでは不可。認証基盤やサーバー側の認証・認可が必要。

画面を隠すだけでは権限制御になりません。表示してよいデータを取得前に制御します。

Tableauの公式資料で機能を確認しました。本番の全権限・行単位のデータ制御は未確認です。
データ接続・定期更新
接続欄と更新操作の見本
接続・更新の状態は表示できる。取得元APIや安全な定期実行は別途必要。対応する接続先、ライブ接続/抽出、更新スケジュールを設定します。データ源と配置によって条件が変わります。 公式資料↗
実装の条件を読む

取得元API・認証・資格情報管理・定期実行の仕組みが必要。

ブラウザの表示だけでは接続や無人の定期更新は完了しません。秘密情報をHTMLへ置きません。

Tableauの公式資料で機能を確認しました。本番接続、更新障害、性能は未確認です。
独自フォーム・外部連携・書き戻し
入力フォームと外部への送信の見本
入力画面は作れる。外部システムへの書き戻しはAPIやサーバー等が必要。外部アプリ、埋め込みAPI、拡張機能等の追加開発を検討します。追加の権限・配備・保守が必要です。 公式資料↗
実装の条件を読む

外部への書き戻しには、認証付きAPIやサーバー側の処理が必要。

入力欄だけでは外部システムへ安全に保存できません。送信・検証・権限・保存処理を別途作ります。

公式資料で追加開発の方法を確認しました。今回は実装していません。
ABOUT ME
マエス(吉田 裕宣)
マエス(吉田 裕宣)
法人番号株式会社 代表取締役
法人番号株式会社 代表取締役/一般社団法人学生データ分析AWARD 代表理事。りょうさんより、マエスさんのTableau発信しちゃいましょうよ。 という機会を頂き思わず投稿。せっかくならばまだ日本では紹介事例が少ないもののみ取り上げていきます。
記事URLをコピーしました