Skip to main content
Loading...
Skip to article
  • Qualtrics Platform
    Qualtrics Platform
  • Customer Journey Optimizer
    Customer Journey Optimizer
  • XM Discover
    XM Discover
  • Qualtrics Social Connect
    Qualtrics Social Connect

式の構築


Was this helpful?


This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

The feedback you submit here is used only to help improve this page.

That’s great! Thank you for your feedback!

Thank you for your feedback!


式の作成について

式は XM Discover でデータをフィルタリングし、データフィールドを変換するために使用されます。たとえば、式を使用して、日付フィールドの書式設定を変更したり、空のレコードのデータを評価したり、数学計算を実行したりすることができます。

式には 4 つのコンポーネントを含めることができます。

  • 定数: 定数、テキスト文字列、および日付を使用して、演算および比較操作を実行できます。
  • フィールド: 特定のデータコネクターで使用できる数値、テキスト、および日付フィールドを使用して、これらのフィールドに対して計算および比較操作を実行することができます。
  • 機能: 関数を使用して、項目および定数に対して変換を実行できます。
  • 演算子:演算子を使用して演算を実行し、フィールドと定数を比較できます。

定数

定数は、数値、テキスト文字列、および数値演算および比較の実行に使用できる日付です。たとえば、恒常的な日付(年次CXアンケートの開始日など)を使用して、アンケートの回答の経過時間を計算できます。

定数の使用に関する注記:

  • テキスト文字列は大文字と小文字が区別されます。大文字と小文字を区別するための回避方法として、UPPER 関数または LOWER 関数を使用します。
  • テキスト文字列と日付は引用符で囲む必要があります。
  • 数字には引用符は必要ありません (引用符で囲まれた数字はテキストとして扱われます)。

フィールド

フィールドは、受信データコネクタから利用可能なデータフィールドです。これには、数値、テキスト文字列、および日付フィールドが含まれます。これらのフィールドを使用して、数学演算と比較を実行することができます。たとえば、顧客の誕生日のフィールドがデータセットに含まれている場合、顧客の年齢を計算することができます。

フィールドを追加するには、[フィールド]セクションから[]ボックスにドラッグします。[式]ボックスへのフィールドのドラッグ

フィールドの種類には、以下のアイコンが付いています。

  • 時計アイコン 日付項目
  • # 番号アイコン 数値項目
  • abc アイコン テキストフィールドと逐語的フィールドてきすとふぃーるど

機能

このセクションに記載されている数値、テキスト、および日付関数を使用することができます。

関数を追加するには、関数セクションからボックスに関数をドラッグします。
式ボックスへの関数のドラッグ

機能タイプには、以下のアイコンが付いています。

  • 時計アイコン 日付関数
  • # 番号アイコン 数値関数
  • abc アイコン テキスト関数

ABS

数値の絶対値を返します。

構文: ABS(数値)

例: ABS(-22) は 22 に解決されます。

COALESCE

リスト内の最初の NULL 以外の値を返します。

ヒント:空の文字列は NULL とみなされます。すべての値が null 値の場合、関数は null も返します。

構文: COALESCE(value1, value2, value3)

例: COALESCE(“”, “”, “Jane”, “”, “Paul”) は Jane に解決されます。

CEILING

数値の切り上げ値を返します。

構文: CEILING(number)

例: CEILING(21.2) は 22 に解決されます。

CONCAT

複数のテキスト文字列を 1 つに結合します。

構文: CONCAT(“string 1”, “string 2”, “string 3”)

例: CONCAT(“Hello”, “, “, “John”) は Hello, John に解決されます。

含む

テキスト文字列 (“テキスト内”) に別のテキスト文字列 (“テキスト検索”) が含まれている場合に true を返します。それ以外の場合は false を返します。

構文: CONTAINS(“テキスト内”, “テキスト検索”)

例: CONTAINS(“one, two, three”, “two”) は true に解決されます。

CONVERT_TO_TIMEZONE

日付と時刻をあるタイムゾーンから別のタイムゾーンに変換します。

構文: CONVERT_TO_TIMEZONE(“日付と時刻”, “変換元のタイムゾーン”, “変換先のタイムゾーン”)

日付書式に関する注記:

  • tz データベース名を使用してタイムゾーンを指定します。
  • 日付と時刻を ISO 8601 または yyyy-mm-dd hh:mm:ss として指定します。
  • 日付および時刻にタイムゾーン情報が提供される場合、”変換元のタイムゾーン” パラメータが優先されます。
  • 変換された日付では、ISO 8601 書式が使用されます。変更する必要がある場合は、TODATE 関数を使用します。
例: CONVERT_TO_TIMEZONE(2020-03-19 15:15:00, “Europe/London”, “Europe/Berlin”) は、2020-03-19T16:15:00Z に解決されます。

DATETONUMBER

日付フィールドを Unix タイムスタンプに変換します。

ヒント:UNIX タイムスタンプは、1970 年 1 月 1 日から経過したミリ秒数です。

構文: DATETONUMBER(“date”)

ヒント:NUMBERTODATE という逆関数を使用できます。
例: DATETONUMBER(“2020-10-20T09:12:00.670Z”) は 1603185120670 に解決されます。

DATETOTEXT

日付フィールドを指定された形式の日付文字列に変換します。

構文: DATETOTEXT(“date”, “date format”)

例: DATETOTEXT(NOW(), “MMMM DD YYYY, h:mm:ss”) は 2020 年 4 月 29 日 3:21:05 に解決されます。

DAYOFWEEK

日付に対応する曜日を返します。

構文: DAYOFWEEK(“date”)

例: DAYOFWEEK(“2019-12-19T20:16:05.602Z”) は木曜日に解決されます。

DYNAMICLOOKUP

動的にロードされた参照テーブルを使用して、フィールドの値に置換します。ルックアップ値は、最初の引数で指定された項目 (“項目名”) から取得されます。

構文: DYNAMICLOOKUP(“field name”, “value”)

ヒント: DYNAMICLOOKUP 関数内での変換は許可されません。
例: DYNAMICLOOKUP(“QID15”, “10”) は Excellent に解決されます。

ELEMENTOFARRAY

配列からn番目の値を抽出し、XM Discoverの属性に配列の値をマッピングします。

構文: ELEMENTOFARRAY([“配列要素 1”, “配列要素 2”, “配列要素 3”], 数値)

注記:

  • 入力が配列でない場合、関数はエラーをスローします。
  • 数値が配列のサイズより大きい場合、関数は null を返します。増加する順序の数は 0 から始まります。
ヒント:この機能は、XM Discover Linkコネクタージョブで特に便利です。
例: ELEMENTOFARRAY([“a”, “b”, “c”], 1) は b に解決されます。

FIELD

スペースまたはドットを含むフィールド名をラップします。

構文: FIELD(“項目名”)

例: FIELD(“Text Processed”) は、”Text Processed” という名前のフィールドの値を返します。

検索

あるテキスト文字列 (“テキスト検索”) を別のテキスト文字列 (“テキスト内”) 内で検索し、”テキスト内” の最初の文字 (1 から始まる) から “テキスト検索” の開始位置の番号を返します。

検索を開始する “テキスト内” での文字の順序を指定することができます (1 から開始)。order_number を省略すると、1 とみなされます。

“テキスト内” に “テキスト検索” が見つからない場合は、-1 を返します。

構文: FIND(“テキスト検索”, “テキスト内”, order_number)

ヒント:この関数では大文字と小文字が区別されます。大文字/小文字を区別しない検索を実行する場合は、SEARCH 機能を使用します。
例: FIND(“easy”, “easy come, easy go”, 3) は 12 に解決されます。

FINDFIRST

別のテキスト文字列 (“テキスト内”) 内で最初に出現するテキスト文字列 (“テキスト検索”) を検索し、”テキスト内” の最初の文字 (1 から始まる) から “テキスト検索” の開始位置の番号を返します。

ヒント:関数では大文字と小文字が区別されます。「テキスト内」に「テキストを検索」が見つからない場合は、-1 を返します。

構文: FINDFIRST(“テキスト内”, “テキスト検索”)

例: FINDFIRST(“easy come, easy go”, “easy”) は 1 に解決されます。

FINDLAST

別のテキスト文字列 (“テキスト内”) 内でテキスト文字列の最後の出現箇所 (“テキスト検索”) を検索し、”テキスト内” の最初の文字 (1 から始まる) から “テキスト検索” の開始位置の番号を返します。

ヒント:関数では大文字と小文字が区別されます。「テキスト内」に「テキストを検索」が見つからない場合は、-1 を返します。

構文: FINDLAST(“テキスト内”, “テキスト検索”)

例: FINDLAST(“easy come, easy go”, “easy”) は 12 に解決されます。

フロア

数値の切り下げ値を返します。

構文: FLOOR(数値)

例: FLOOR(21.9) は 21 に解決されます。

GENERATE_ID

一意の ID を生成します。この関数には、追加パラメータは必要ありません。

構文: GENERATE_ID()

例: GENERATE_ID() は5ecfdd3fdd4ca4f23c5f2602に解決されます。

GETDAYSBETWEEN

2 つの日付間の日数を返します。

構文: GETDAYSBETWEEN(“start date”, “end date”)

例: GETDAYSBETWEEN(“2019-12-19T20:16:05.602Z”, “2019-12-24T20:16:05.602Z”) は 5 に解決されます。

GETHOURSBETWEEN

2 つの日付の間の時間数を返します。

構文: GETHOURSBETWEEN(“start date”, “end date”)

例: GETHOURSBETWEEN(“2019-12-19T20:16:05.602Z”, “2019-12-24T20:16:05.602Z”) は 120 に解決されます。

GETMINUTESBETWEEN

2 つの日付の間の分数を返します。

構文: GETMINUTESBETWEEN(“開始日”, “終了日”)

例: GETMINUTESBETWEEN(“2019-12-19T20:16:05.602Z”, “2019-12-24T20:16:05.602Z”) は 7200 に解決されます。

条件

文が true の場合はある値を返し、false の場合は別の値を返します。

構文: IF(statement, “value if true”, “value if false”)

例: IF(3 > 2, “より大きい”, “より大きくない”) の解が大きくなります。

ISBLANK

フィールドが空の場合は TRUE、空でない場合は FALSE を返します。

構文: ISBLANK(“field name”)

ヒント:ISBLANKはブール関数なので、属性に直接適用することはできません。これは、適切な書式 (日付、数値、またはテキスト) で結果を返す式の一部として使用します。
例: 空のフィールドを検出し、結果をテキスト文字列として返します。IF(ISBLANK(“”), “empty”, “filled”) は、空に解決されます。
例: 空でないフィールドを検出し、結果を数値で返します。IF(ISBLANK(“John”), 0, 1) は 1 に解決されます。

ジョイナレイ

項目の配列を、指定した区切り文字でひとつの文字列に結合する。

構文JOINARRAY(array, delimiter, escape, skipNull, removeDuplicates)

上記の構文では、以下のようになる:

  • array: 結合する文字列あるいは数値の配列。
  • delimiter: 配列を連結する際に使用する区切り文字。
  • escape: trueの場合、引用符で囲まれた要素を保持する。
  • skipNull: trueの場合、nullの要素をスキップします。
  • removeDuplicated:trueの場合、複製要素を削除する。
JOINARRAY([“a”, “b”, “c”],”-“)は “a-b-c “に解決される。

LEN

テキスト文字列の文字数を返します。

構文: LEN(“text”)

例: LEN(“Count me if you can”) は 19 に解決されます。

構文LEN([“text1”, text2])

LEN([“text1”, text2])は2に解決される。

小文字

テキストを小文字に変換します。

構文: LOWER(“text”)

例: LOWER(“HELLO”) は hello に解決されます。

MD5HASH

入力データに MD5 ハッシュを適用し、そのデータに基づいて一意の ID を生成します。

構文: MD5HASH(“text”)

例: MD5HASH(“Hello”) は 543d4abcdc64a9a377c959e4b6e35574 に解決されます。

MID

指定した位置から始まる特定の文字数をテキスト文字列から返します。

位置 (order_number) は 1 から始まります。

構文: MID(“text”, order_number, characters_number)

例: 最初の文字から始まる 8 文字を返します。MID(“練習は完璧になる”, 1, 8) は実践に解決する。
例: 16 文字目から 8 文字を返します。MID(“pracy made perfect”, 16, 8) 解は完璧。

MOD

数値を除数で割ったときの余りを返します。

ヒント:結果の記号は数字と同じです。

構文: MOD(数値, 除数)

例: MOD(7, 4) は 3 に解決されます。

現在

現在の日付と時刻を返します。この関数には、追加パラメータは必要ありません。

構文: NOW()

例: NOW() は 2020-01-29T13:35:09.956Z に解決されます。

NUMBERTODATE

UNIX タイムスタンプを日付フィールドに変換します。UNIX タイムスタンプは、1970 年 1 月 1 日から経過したミリ秒数です。

構文: NUMBERTODATE(number)

ヒント:DATETONUMBER という reverse 関数を使用できます。
例: NUMBERTODATE(1603185120670) は 2020-10-20T09:12:00.670Z に解決されます。

NUMBERTOTEXT

数値をテキストに変換します。

構文: NUMBERTOTEXT(number)

例: NUMBERTOTEXT(21) は 21 に解決されます。

POW

x の結果を y の累乗で返します。

構文: POW(x, y)

例: POW(2, 4) は 16 に解決されます。

PROPERCASE

テキスト文字列の最初の文字を大文字にします。

構文: PROPERCASE(“text”)

例: PROPERCASE(“pracy makes Perfect”) は Practice に解決され、完璧になります。

ランダム

0 から 1 の間のランダムな実数を返します。この関数には、追加パラメータは必要ありません。

構文: RANDOM()

例: RANDOM() は 0.7669519868005736 に解決されます。

RANDOMBETWEEN

2 つの数値の間の乱数を返します。

ヒント:この関数は、最小数と最大数を返すことができます。

構文: RANDOMBETWEEN(最小数, 最大数)

例: RANDOMBETWEEN(1, 10) は 2 に解決されます。

REMOVEHTMLTAGS

テキスト文字列から HTML タグを削除します。

構文: REMOVEHTMLTAGS(“text”)

例: REMOVEHTMLTAGS(“<html> hello</html> “) は hello に解決されます。

置換

“テキスト” (occurrence_number) 内の “古いテキスト” の発生回数に基づいて、テキスト文字列の一部 (“古いテキスト”) を別のテキスト文字列 (“新しいテキスト”) で設定された回数 (number_of_replacements) に置き換えます。

構文: REPLACE(“text”, “old text”, “new text”, occurrence_number, case_sensitivity, number_of_replacements)

例: REPLACE(“ボックス内で考える”, “内側”, “外側”, 1, false, 1) ボックス外で思考するように解決されます。

REPLACEBYINDEX

指定した文字数に基づいて、テキスト文字列の一部 (“古いテキスト”) を別のテキスト文字列 (“新しいテキスト”) に置き換えます。

位置 (order_number) は 1 から始まります。

構文: REPLACE(“old text”, order_number, characters_number, “new text”)

例: REPLACEBYINDEX(“ボックス内で考える”, 7, 6, “外部”) は、ボックスの外で考えることを解決します。

REPLACEBYREGEXP

正規表現を使用してテキスト値を置き換えます。

ヒント:正規表現は、検索パターンを定義する一連の文字です。簡単な概要については、Microsoft の .NET 正規表現を参照してください。
注意:カスタムコーディング機能はそのまま提供されており、実装するにはプログラミングの知識が必要です。Qualtricsサポートでは、カスタムコーディングに関するサポートやコンサルティングを提供していません。その代わり、経験豊富なユーザーのコミュニティにいつでも質問することができます。カスタムコーディングサービスの詳細については、クアルトリクスの営業担当にお問い合わせください。

構文: REPLACEBYREGEXP(“text”, “regular expression for pattern matching”, “regular expression for replacement value”)

ヒント:バックスラッシュ(\)、二重引用符(”)、一重引用符(’)などの特殊文字はエスケープする必要があります(つまり、前にバックスラッシュを追加します)。たとえば、空白文字 (\s) に一致するパターンを使用する場合は、追加のバックスラッシュ (\\s) を使用してエスケープする必要があります。
例: REPLACEBYREGEXP(“Clarabank UK”, “(.)\\s(.)”, “$1;$2”) は Clarabank;UK に解決されます。

ラウンド

最も近い整数に丸めた数値を返します。

構文: ROUND(number)

例: ROUND(22.5) は 23 に解決されます。

検索

あるテキスト文字列 (“テキスト検索”) を別のテキスト文字列 (“テキスト内”) 内で検索し、”テキスト内” の最初の文字 (1 から始まる) から “テキスト検索” の開始位置の番号を返します。

検索を開始する “テキスト内” での文字の順序を指定することができます (1 から開始)。order_number を省略すると、1 とみなされます。

“テキスト内” に “テキスト検索” が見つからない場合は、-1 を返します。

構文: SEARCH(“テキスト検索”, “テキスト内”, order_number)

ヒント:この関数は大文字と小文字を区別しません。大文字/小文字を区別する検索を実行する場合は、FIND 関数を使用します。
例: SEARCH(“EASY”, “easy come, easy go”, 3) は 12 に解決されます。

スプリット

指定した文字列を、指定した区切り文字に基づいて部分文字列の配列に分割する。この関数は、出力値が文字列でなければならないため、JOINARRAY関数やELEMENTOFARRAY関数のパラメータとして使用することができます。

構文SPLIT(“文字列_to_split”, “_”)

SPLIT(“firstname_lastname”,”_”)は[“firstname”, “lastname”]に解決されます。

SUBSTITUTE

テキスト文字列の “旧テキスト” を “新規テキスト” に置き換えます。

置換する “古いテキスト” のオカレンスを指定できます。occurrence_number を指定すると、”old text” のインスタンスのみが置き換えられます。それ以外の場合は、テキスト内の “古いテキスト” が発生するたびに “新規テキスト” に変更されます。

構文: SUBSTITUTE(“text”, “old text”, “new text”, occurrence_number)

例: 最初に発生する “1” に “2” を代入します。SUBSTITUTE(“2019 年第 1 四半期”, “1”, “2”, 1) は 2019 年第 2 四半期に解決されます。
例: “1” の 2 番目のオカレンスを “2” で置き換えます。SUBSTITUTE(“2019 年第 1 四半期”, “1”, “2”, 2) は 2029 年第 1 四半期に解決されます。
例: “1” のすべてのオカレンスを “2” で置き換えます。SUBSTITUTE(“Quarter 1, 2019”, “1”, “2”) resolles to Quarter 2, 2029.

SUBSTR

文字列の最初の文字から始まり、指定された文字数 (1 から始まる) までのテキスト文字列の一部を返します。

構文: SUBSTR(“text”, order_number)

例: SUBSTR(“pracy makes perfect”, 9) 解決して実践します。

肩書き

テキスト文字列内の各単語の最初の文字を大文字にします。

構文: TITLECASE(“text”)

例: TITLECASE(“pracy makes perfect”) は Practice Makes Perfect に解決される。

TEXTTODATE

日付文字列を書式 YYYY-MM-DDThh:mm:ssZ の日付項目に変換します。

構文: TEXTTODATE(“date”, “date format”)

ヒント:日付形式は文字列で使用される形式を反映している必要があります。両方のパラメータが必要です。
例: TEXTTODATE(“2019-12-19”, “YYYY-MM-DD”) は 2019-12-19T00:00:00.000Z に解決されます。

TEXTTONUMBER

テキストを数値に変換します。

構文: TEXTTONUMBER(text)

例: TEXTTONUMBER(21) から 21

翻訳

受信データを翻訳します。

構文: TRANSLATE (“翻訳元言語コード”、”翻訳先言語コード”、”テキスト”)

注記:

例: TRANSLATE (“en”, “es”, “Hello world”) は Hola mundo に解決されます。

トリムレフト

テキスト文字列の左端からスペースを削除します。

構文: TRIMLEFT(“text”)

例: TRIMLEFT(”          hello”) は hello に解決されます。

トリムライト

テキスト文字列の右端からスペースを削除します。

構文: TRIMRIGHT(“text”)

例: TRIMRIGHT(“hello             “) は hello に解決されます。

大文字

テキストを大文字に変換します。

構文: UPPER(“text”)

例: UPPER(“hello”) は HELLO に解決されます。

演算子

以下の表に示す算術演算子と比較演算子を使用できます。

算術演算子

演算子 説明
+ 追加
減算/否定
* 乗算
/ 除算

たとえば、次の式は 2 つの数値の平均を返します。

(RATING1 + RATING2) / 2

比較演算子

演算子 説明
== 等しい
次の数より大きい
次の数より小さい
>= 次の数以上
<= 次の数以下
!= 次と等しくない

たとえば、次の式は、RATING が 3 以下の場合は “bad rating” を返し、RATING が 3 より大きい場合は “good rating” を返します。

IF(RATING <= 3, “bad rating”, “good rating”)

論理演算子

IF 関数またはジョブフィルタを使用する場合は、論理演算子を使用して複数の条件を指定します。

ヒント:必ず小文字で論理演算子を使用してください。
演算子 説明
“and” で区切られたすべての条件が真の場合、条件は真になります。
インチ 一覧表示された値のいずれかと一致する場合、条件は真です。

構文: in[“値 1”, “値 2”, “値 3”]

ヒント:複数の「or」演算子の代わりに使用します。
または “or” で区切られた条件のいずれかが真の場合、条件は真になります。

たとえば、COUNTRY フィールドに指定された値のいずれかが含まれている場合、次の式は “地中海” を返します。それ以外の場合は、”非地中海” が返されます。

IF(LOWER(COUNTRY) in [“france”, “portugal”, “italy”, “spain”, “greece”, “malta”, “cyprus”], “Mediterranian”, “Non-Mediterical”)

構文のヒント

無効な式を回避するには、以下のヒントに従ってください。

  • 1 つの式で複数の関数を組み合わせる場合は、開括弧数と閉括弧数が一致していることを確認してください。
    例: IF(GETDAYSBETWEEN(feedback_date, response_date) > 3, “遅延”, “遅延なし”)
  • 式で使用される関数ごとに、必要なすべての引数が存在する必要があります。たとえば、TODATE 関数が正しく動作するには、日付と日付形式の引数の両方が必要です。
  • 必ず関数、算術演算、または比較演算でサポートされている正しいデータ型を使用してください。たとえば、ABS 関数を正しく機能させるには、数値が必要であり、テキストフィールドや日付フィールドでは機能しません。
  • 式にドット (“.”) がある場合は、FIELD 関数と引用符 (‘単一’ または ‘ダブル’) でラップしてください。たとえば、”agentParticipants.0.agentLoginName” という名前のフィールドがある場合の潜在的な変換でのラップ方法は次のとおりです。
    IF(CONTAINS(LOWINS(LOWER(FIELD(“agentParticipants.0.agentLoginName”)), “bot”),”YES”, “NO”)

当サポートサイトの日本語のコンテンツは英語原文より機械翻訳されており、補助的な参照を目的としています。機械翻訳の精度は十分な注意を払っていますが、もし、英語・日本語翻訳が異なる場合は英語版が正となります。英語原文と機械翻訳の間に矛盾があっても、法的拘束力はありません。