---
schema_version: "1"
id: 8ea2759d000e771c98779119964d66f33017f633cc5fada54e3559714959963f
title: 効果的な計算の作成
collection: tableau
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/tableau/current/ja-jp/pro/desktop/perf_efficient_calcs.md
canonical_url: https://help.tableau.com/current/pro/desktop/ja-jp/perf_efficient_calcs.htm
source_site: help.tableau.com
content_type: documentation
content_hash: c252e41108ff14d7e83778d92c1f3abb2757364b2566ba67dc6214cdff263d6b
description: Create efficient calculations to improve workbook performance.
---
[メイン コンテンツに進む](#main-content)

# 効果的な計算の作成

データだけでは質問への回答に必要なすべての情報を確認できない場合は、分析に役立つ計算フィールドを作成できます。

計算フィールド内では、ハードコード化されたコンテンツ (税率など) の定義、引き算や掛け算などの非常にシンプルな数学的操作 (収益 - 経費など) を行い、より複雑な数学式を使用して論理テスト (IF/THEN, CASE) を実行、型変換、R などの外部サービスへの計算式の送信などを実行できます。

Tableau には、別の計算タイプがあります。

基本および集計計算: これらの種類の計算は参照元データ ソースに対するクエリの一部として生成され、データベース内で計算されます。一般的に、基本的な計算や集計計算では、パフォーマンスを改善できる多くのデータベース調節手法が多くあるため、拡張が非常にうまく行きます。

表計算:これらはクエリ結果セットを使用して Tableau によって計算されます。つまり、Tableau での作業が増えると、表計算は一般的に元のデータ ソース内よりも小さな記録のセットで行われます。表計算のパフォーマンスが問題の場合 (おそらく Tableau に返される結果セットが大きすぎる) 場合は、計算の一部の側面をデータ ソース レイヤーに戻すことを検討してください。これを実行する方法の 1 つとして、計算の集計を実行してから、集計されたデータで計算を実行します。

詳細レベル (LOD) の式: LOD 式は参照元データ ソースに対するクエリの一部として生成され、データベース内で計算されます。これらは_ネストされている選択項目_としてあらわされるため、データベースのパフォーマンスに依存します。LOD 式よりも表計算やブレンドの方がうまく行く場合も、その逆の場合もあります。

LOD 式によるパフォーマンスの低下が疑われる場合は、表計算はデータ ブレンドに置き換え、パフォーマンスが改善するかどうか確認することができます。詳細については、[Tableau の操作の順序](https://help.tableau.com/current/pro/desktop/ja-jp/order_of_operations.htm)の例 2 を参照してください。

LOD 式は結合選別の影響を受ける可能性があります。そのため、LOD 式の使用時にクエリ実行に時間がかかる場合は、[結合の参照整合性を仮定する](https://help.tableau.com/current/pro/desktop/ja-jp/joins_assume_refinteg.htm)を確認してください。

詳細については、Tableau ホワイトペーパー[「詳細レベル (LOD) の式について」](http://www.tableau.com/ja-jp/learn/whitepapers/understanding-lod-expressions)を参照してください。

## 条件付き計算式のパラメーターの使用

Tableau の一般的な手法は、計算の実行方法を決定する値をユーザーが選択できるよう、パラメーター値を表示することです。一般的に、わかりやすいオプションをユーザーに提供するため、パラメーターを文字列型として作成するのが合理的です。ただし、数値計算は文字列計算よりも高速です。そのため、パラメーターの \[表示名\] 機能の長所を活用し、テキスト ラベルを表示しながら、計算ロジックには参照元の整数値を使用します。詳細については、[パラメーターの作成](https://help.tableau.com/current/pro/desktop/ja-jp/parameters_create.htm)を参照してください。

## 日付フィールドの変換

ユーザーは、ネイティブのデータ形式で保存されていない日付データを持っていることがよくあります。たとえば、日付が文字列や数値タイムスタンプの場合があります。データでサポートされている場合は DATEPARSE 関数を使用できます。この関数は、非レガシーの Microsoft Excel およびテキスト ファイル接続、MySQL、Oracle、PostgreSQL、および Tableau データ抽出データ ソースで使用できます。そうでない場合、フィールドを「2012-01-01」などの日付文字列に解析します。ISO 文字列はロケール固有ではため、推奨されます。次に値を DATE 関数に渡します。元のデータが数値フィールドの場合は、最初に文字列に変換してから日付に変換するのでは不十分です。データを数値にし、DATEADD と日付のリテラル値を使用して計算を実行する方が優れています。大きなデータ セットでは、得られるパフォーマンスが顕著となる可能性があります。これらの関数の詳細については、[日付関数](https://help.tableau.com/current/pro/desktop/ja-jp/functions_functions_date.htm)を参照してください。

## CASE 論理ステートメントの使用

複雑な論理ステートメントを扱う場合、CASE ステートメントの方が IF または ELSEIF ステートメントよりも速く処理される場合があります。

ELSEIF の方が ELSE IF よりも早く処理されることを覚えておいてください。これは、ネストされている IF は、最初の IF ステートメントの一部として計算されるのではなく、2 番目の IF ステートメントとして計算されるからです。

詳細については、ホワイトペーパー「[効率的に作業できるワークブックの設計](https://www.tableau.com/ja-jp/learn/whitepapers/designing-efficient-workbooks)」を参照してください。

## メジャーの集計

作成しているビューの表示に時間がかかる場合、非集計メジャーではなく集計メジャーを使用していることを確認してください。非集計データでは、一度に多くのデータ行を表示しなければならない場合があります。データを集計することで、行数を減らすことができます。これを行うには、\[分析\] > \[メジャーの集計\] を選択します。

## 計算のヒント

さまざまな簡単な手順を実行することで、計算のパフォーマンスを改善できます。

- 個別のカウント値はすべてのデータ ソースの中で最も時間のかかる集計タイプの 1 つです。COUNTD 集計の使用を控える。
- 広い範囲に影響を与えるパラメーター (カスタム SQL ステートメントなど) を使用すると、キャッシュのパフォーマンスに影響を与える可能性があります。
- 複雑な計算をフィルターリングすると、参照元データのインデックスに失敗する可能性があります。
- 特に DBMS/R サーバーとやり取りする必要がある値が多数ある場合、外部サービスの統合用の RAWSQL や SCRIPT\_\* などのスクリプト関数には時間がかかる場合があります。
- タイムスタンプの詳細レベルが必要な場合にのみ NOW を使用します。日付レベル計算で TODAY を使用します。
- ラベル文字列などのリテラル計算であっても、すべての基本的な計算は参照元データに渡されます。ラベル (列見出しなど) を作成する必要があり、データが非常に大きい場合、大きなデータ ソースにオーバーヘッドが追加されないよう、1 つのレコードのみを保持するシンプルなテキスト/Excel ファイル データを作成できます。