式は次の計算を実行するために使用されます。
- 表の計算
- カスタムフィールド
- カスタムフィルター
式は、以下の要素の組み合わせから構成されます。
- NULL: NULL値はデータが存在しないことを示し、何かが空であるか存在しないかを確認したい場合に役立ちます。
- 定数:定数とは、あなたが指定する不変の値のことです。7のような数値や、Completedのような文字列は定数です。
- フィールド:ディメンション、メジャー、テーブル計算などを含むフィールドへの参照。
- 演算子:演算子にはいくつかの種類があります。
数学演算子(+、-、*、/など)
比較演算子(=、>、<=など)
論理演算子(AND、OR、NOTなど)
- 関数:これらは、おそらく既にご存知のExcel関数と性質が似ています。関数を使用すると、データや参照データを複雑な方法で変換できます。
式を作成する
テーブル計算、カスタムフィールド、カスタムフィルター 式エディター。 式を入力すると、システムは、使用したい可能性のある関数、演算子、フィールド名をプロンプトで表示します。 。
次のセクションでは、式エディターの使用方法を示します。
すべての提案を見る
スペースを入力すると、選択可能なすべてのフィールド、関数、演算子の一覧が表示されます。かなり長いリストなので、通常は入力を開始して、興味のある項目だけをリストに絞り込むことをお勧めします。
フィールドの追加
式にフィールドを含めるには、フィールド名の入力を開始します。 入力すると、エディタは入力した内容を含むフィールドと関数の一覧に検索範囲を絞り込みます。探索ページに表示されているフィールド名をそのまま入力できます。
リストからフィールドを選択すると、それが式に追加されます。これにより、式内のすべてのフィールドに一意の名前が付けられることが保証されます。
演算子の追加
必要に応じて、AND、OR、NOTなどの論理演算子を式に追加できます。通常、AND演算子はOR演算子より先に評価されますが、この動作は 括弧によって上書きできます。 また、 比較演算子(>、=、<=など)や数学演算子(+、*など)も使用できます。
カーソルが演算子の上にある場合、情報ペインの式の右側に表示される注記を確認して、適切かどうかを確認できます。 。
もう一つ留意すべき点は、真偽の扱い方です。「真」と「偽」の代わりに「はい」と「いいえ」を使うべきです。これらの論理定数は、引用符で囲まれた「はい」や「いいえ」といった言葉とは異なります。

関数の追加
式に関数を含めるには、関数名の入力を開始します。 入力すると、エディタは入力した内容を含むフィールドと関数の一覧に検索範囲を絞り込みます。
関数は、フィールド、数値、はい/いいえなど、特定の型を必要とする引数(または変数)で構成されます。カーソルが関数上にある場合、情報ペインの式の右側に表示される注記を確認することで、指定する必要のある引数とその型を把握できます。
提供されている機能の全リストについては、「機能と演算子」ページをご覧ください。
使う関数に関する詳細な説明は、このページの「使う関数」セクションで読むことができます。

エラーヒントと情報ペインを使う
式を入力すると、システムは右側に情報ペインを表示することに注意してください。このペインには、特に式にエラーがある場合に役立つドキュメントと提案が表示されます。
上記のように、エディターは以下を提供します。
- エラー強調表示:エディタ自体において、システムは式の中でまだ正しくない部分を赤色の下線で表示します。
- 提案とエラーの詳細:情報ペインの上部には、式に次に何を追加すればよいかについての提案が表示されます。エラーが発生した場合は、そのエラーが発生した理由が説明されます。複数のエラーが発生した場合、表示されるエラーはカーソルの位置に基づいて決定されます。
- ドキュメント:情報ペインの下部には、カーソル位置に基づいて、現在操作している関数または演算子に関するドキュメントが表示されます。例えば、if() 関数の最初の引数を入力すると、システムは最初の引数が真か偽かを評価する必要があるという情報を提供します。そのセクションにある関数名をクリックすると、その関数のドキュメントに移動できます。

コメントを含む
式の中にコメントを含めるには、コメント行の先頭に「#」を付けます。
使うフィールド
場合によっては 式の中でフィールド(ディメンション、メジャー、またはテーブル計算)の値を使用したい場合があります。 フィールドの値を他のものに加算したり、特定の値を持っているかどうかを確認したり、関数に含めたり、その他にもさまざまな用途が考えられます。
前述のとおり、式エディタにフィールド名を入力するだけで、システムが正しい参照方法を見つけるのを手伝ってくれます。式にフィールドを追加すると、システムは ${view_name.field_name} のようなフィールドの識別子を取得します。 この識別子は、フィールドピッカーのフィールド名と必ずしも一致するとは限りませんが、それが何であるか分からなくても問題ありません。フィールドピッカーに表示されているフィールド名を入力するだけで、式エディタにフィールドピッカー名と識別子が一緒に表示されます。
値を取得するには、いくつかの方法があります。
- 同じ行から値を取得する:フィールドを使う最も基本的な方法は、直接参照することです。例えば、あなたの式は${product.category}を使うかもしれません。このようにすると、「任意の行について、その行から製品カテゴリを取得する」という意味になります。
- 別の行から値を取得する:別の行からフィールドの値を取得することもできます。例えば、「任意の行について、前の行から製品カテゴリを取得する」というロジックが必要になるかもしれません。そのためにはオフセット関数を使うことができます(位置関数の一覧はこちらを参照)。次のような表示になるかもしれません: offset(${product.category},-1)
- ピボット列から値を取得する:ピボット列から値を取得することもできます。例えば、「任意の行について、最初のピボット列から総売上高を取得する」というロジックが必要になるかもしれません。ピボット列を操作するには、 ピボット関数を使用する必要があります(ピボット関数の一覧はこちらをご覧ください)。 次のような表示になるかもしれません: pivot_index${alert_event.event_count}, 1)。
- 行または列から合計を取得する: Explore に合計を追加した場合、フィールド名に :total (列の合計の場合) または :row_total (行の合計の場合) を追加することで、列または行から合計値を取得できます。 形式は ${field_name:total} です。 例えば、アラートの総数に対する割合を知りたい場合は、次のようなテーブル計算を作成できます。${alert_event.event_count}/ ${alert_event.event_count:total}。
使う関数
式には、特定のデータを取得したり、特定の計算を行ったりするのに役立つ1つ以上の関数が含まれていることがよくあります。これらはExcelの関数と性質が似ています。
関数についてよく知らない方のために説明すると、関数は名前の後に2つの括弧が続く形式をとります。例えば、my_function() のようになります。場合によっては、括弧内にカンマで区切って情報を入力する必要があります。これらの情報は「引数」と呼ばれ、次のようになります: my_function(argument_1, argument_2)。
例えば、`今`関数は引数を取らず、現在の日付と時刻を返します。 次のように使います: 今()。
それに対し、round関数は引数を1つ取ります。それは数値です。これは、round(3.2) のように使用します。 結果として得られるのは3です。
必要な引数があるかどうかを知るには、次の2つの方法があります。
- 式エディタの右側に表示される情報ペインには、作成中の関数に関するドキュメントが表示されます。
- また、関数と演算子のページに直接移動して、目的の関数を検索することもできます。 。
この概念をより明確にするために、次のようなドキュメントを持つcontains関数を考えてみましょう。
| FUNCTION | SYNTAX | PURPOSE |
|---|---|---|
| contains | (文字列、検索文字列)を含む | 文字列に検索文字列が含まれている場合は Yes を返し、含まれていない場合は No を返します。 |
ご覧のとおり、2つの引数が必要です。それらはstringとsearch_stringという名前ですが、だからといって関数に「string」と「search_string」という単語を正確に入力する必要はありません。これらは、後で何かに置き換える引数の名前です。目的を読むと、string は検索対象のフィールドまたはその他の値であり、search_string は検索対象であることがわかります。例えば、次のような例が考えられます。
顧客からのフィードバックに「素晴らしい」という単語が含まれている場合、この関数は「はい」という結果を返し、含まれていない場合は「いいえ」という結果を返します。
最後に知っておくべきことは、複雑なロジックを処理するために、関数の中に別の関数を配置できるということです。内部関数の結果が外部関数の引数に適切であれば、それは機能します。例えば:

ここでは、is_null 関数を if 関数の中にネストし、さらにその if 関数自体を contains 関数の中にネストしています。仕組みはこうです。
is_null() 関数は、顧客からのフィードバックテキストが存在するかどうかを確認します。
次に、if() 関数はその結果を使用し、顧客のフィードバック テキストがある場合はそれを返し、そうでない場合は顧客のコメント テキストを返します。
最後に、contains() 関数は if() 関数によって返されたテキストを取得し、その中に「great」という単語を検索します。
まとめると、論理的にこの表現は「顧客からのフィードバックがあればそれを検索するが、なければ顧客コメントを検索する」という意味になります。両方のケースで、「great」「」という単語を探してください。

