Excel-dax-operators

提供:Dev Guides
移動先:案内検索

Excel DAX-演算子

DAXは、1つ以上の値を計算して返すために、数式または式で使用できる関数、演算子、および値で構成される数式言語です。

  • DAX演算子*を使用して、値を比較し、算術計算を実行し、文字列を連結できます。 この章では、DAX演算子とその使用方法について学習します。

DAX演算子の種類

DAXは、次の種類の演算子をサポートしています-

  • リンク:/excel_dax/excel_dax_arithmetic_operators [DAX算術演算子]
  • リンク:/excel_dax/excel_dax_comparison_operators [DAX比較演算子]
  • リンク:/excel_dax/excel_dax_text_concatenation_operator [DAXテキスト連結演算子]
  • リンク:/excel_dax/excel_dax_logical_operators [DAX論理演算子]

DAXオペレーターの優先順位

複数の値または式を組み合わせた多くのDAX演算子を持つDAX数式を作成できます。 このような場合、最終結果は操作が実行される順序に依存します。 DAXは、デフォルトの演算子優先順位と、デフォルトの優先順位をオーバーライドする方法を提供します。

次の表に、DAXの既定の演算子の優先順位を示します。

Precedence Order Operator(s) Operation
1 ^ Exponentiation
2 Sign
3 * and/ Multiplication and Division
4 ! NOT
5 + and – Addition and Subtraction
6 & Concatenation
7 =, <, >, ⇐, >= and <> Equal to, Less than, Greater than, Less than or equal to, Greater than or equal to and Not equal to

DAX式の構文

最初に、DAX式の構文と、オペランドと演算子を使用して式の評価が行われる方法を理解する必要があります。

  • すべての式は常に等号(=)で始まります。 等号は、後続の文字が式を構成することを示します。 *等号の右側に、DAX演算子で接続されたオペランドがあります。 たとえば、= 5 + 4> 5。

5* 6-3。

  • 式は常に左から右に読み取られ、前のセクションで指定されたDAX演算子の優先順位に基づいて、その順序で計算が行われます。 DAX演算子の優先順位値が等しい場合、左から右に評価されます。 たとえば、= 5 6/10。 *と/の両方は、前の順序と同じです。 したがって、式は30/10 = 3として評価されます。
  • 式内のDAX演算子の優先順位の値が異なる場合、左から右への優先順位で評価されます。
  • = 5 + 4> 7。 デフォルトの優先順位は、+ firstおよび> nextです。 したがって、式は左から右に計算されます。 -5 + 4が最初に計算されて9になり、次に9> 5が評価されてTRUEになります。 = 5 6-3。 デフォルトの優先順位は、 firstおよび-nextです。 したがって、式は左から右に計算されます。 -5 6が最初に計算されて30になり、次に30-3が計算されて27になります。 = 2 5-6 * 3。 デフォルトの優先順位は、*最初、*次、-です。 したがって、式は10 – 18として評価され、その後-8として評価されます。 10-6ではなく、4と4 *3の12であることに注意してください。

括弧を使用してDAXの計算順序を制御する

括弧を使用し、オペランドと演算子をグループ化して計算順序を制御することにより、DAXのデフォルトの演算子の優先順位を変更できます。

たとえば、= 5* 6-3は、DAXのデフォルトの演算子の優先順位で27と評価されます。 括弧を使用してオペランドと演算子を= 5 *(6-3)としてグループ化すると、6-3が最初に計算され、3になり、5 *3が計算されて15になります。

2* 5-6 3は、DAXのデフォルトの演算子優先順位で-8と評価されます。 括弧を使用してオペランドと演算子を= 2 (5-6) 3としてグループ化すると、5-6が最初に計算されて-1になり、次に2 (-1)* 3が計算されて-6になります。

ご覧のとおり、同じオペランドと演算子を使用すると、グループ化する方法によって異なる結果が得られます。 したがって、DAX数式でDAX演算子を使用するときは、計算シーケンスがどのようになるかに注意を払う必要があります。

ExcelとDAXの違い

DAXはExcelの数式と類似していますが、2つの間には大きな違いがあります。

  • DAXは、基になるメモリ常駐計算エンジンのため、Excelよりも強力です。
  • DAXは、Excelよりも多くのデータ型をサポートしています。
  • DAXは、リレーショナルデータベースであるData Modelの追加の高度な機能を提供します。これには、日付型と時刻型の豊富なサポートが含まれます。

場合によっては、DAXの計算結果または関数の動作がExcelと同じでない場合があります。 これは、次の違いによるものです-

  • データ型のキャスト *データ型

データ型のキャストの違い

DAXでは、式= value1演算子value2がある場合、2つのオペランドvalue1とvalue2は同じデータ型である必要があります。 データ型が異なる場合、DAXはそれらを最初に暗黙的に共通のデータ型に変換します。 詳細については、「DAX構文」の章を参照してください。

たとえば、異なるデータ型の2つのオペランド、たとえば= [Amount]* 0.08などの数式の結果の数値と整数を比較する必要があります。 最初の数値は小数点以下の桁数が多い10進数にすることができますが、2番目の数値は整数です。 その後、DAXは次のようにそれを処理します-

  • まず、DAXは両方の種類の数値を格納できる最大の数値形式を使用して、両方のオペランドを実数に変換します。
  • 次に、DAXは2つの実数を比較します。

対照的に、Excelは、最初に共通のデータ型に強制することなく、異なるデータ型の値を比較しようとします。 このため、同じ比較式に対してDAXとExcelで異なる結果が見つかる場合があります。

データ型の違い

DAXとExcelの演算子の優先順位は同じです。 ただし、Excelがサポートする演算子の割合(%)とデータ範囲は、DAXではサポートされていません。 さらに、DAXはデータ型としてテーブルをサポートしますが、Excelの場合はそうではありません。

さらに、Excelの数式では、単一のセル、または配列またはセルの範囲を参照できます。 DAX数式では、これらのいずれも参照できません。 データへのDAX数式参照は、テーブル、列、計算フィールド、および計算列によるものでなければなりません。

Excelから数式をコピーしてDAXに貼り付ける場合、DAX構文がExcelの数式構文と異なるため、DAX数式の正確性を確認してください。 また、関数がDAXとExcelで同じ名前を持っている場合でも、そのパラメーターは異なる場合があり、関数の結果も異なる場合があります。

これらについては、以降の章で詳しく説明します。