COMPARE 関数はテキスト値を比較します。比較対象のテキスト値が同じ場合は 0 が返されます。一つ目のテキスト値の方が大きい場合は 1 が返され、一つ目のテキスト値の方が小さい場合は -1 が返されます。

テキスト値が同じ場合の条件付き書式のベースとして COMPARE を使用できます。

COMPARE(Text to compare 1, Text to compare 2 [, Comparison mode] [, Locale])

引数データ型説明
Text to compare 1 (必須)テキスト比較対象の最初のテキスト値
Text to compare 2 (必須)テキスト比較対象の二つ目のテキスト値
Comparison modeキーワード

使用する比較モード。

使用できるキーワードは IDENTICAL、PRIMARY、SECONDARY、TERTIARY です。

以下の「Comparison mode 引数のキーワード」セクションにはさらに詳しい情報があります。

Localeキーワード

使用するロケール。一部の言語にのみ影響します。

ISO 639 コードと ISO 3166 コードでは利用可能なロケールが異なります。

COMPARE 関数は数値を返します。

各キーワードの説明は以下のとおりです。 

キーワード説明
IDENTICALText to compare 1 引数と Text to compare 2 引数を比較して、あらゆる点で相互に一致するかどうかを確認します。
PRIMARY

Text to compare 1 引数と Text to compare 2 引数の基本文字を比較します。

選択したロケールに従って、テキスト値のアルファベット順が左から右に比較されます。

二つのテキスト値の先頭文字が同じで、いずれか一方の文字数の方が多い場合、文字数が多い方の文字列が大きいとみなされます。

SECONDARY

Text to compare 1 引数と Text to compare 2 引数の基本文字およびアクセントを比較します。

二つのテキスト値の基本文字が同じ場合、アクセントを含むテキスト値の方が大きいとみなされます。

TERTIARY

Comparison mode 引数を省略した場合のデフォルトのキーワードです。

Text to compare 1 引数と Text to compare 2 引数の基本文字、アクセント、大文字/小文字を比較します。

二つのテキスト値の基本文字とアクセントが同じで、いずれか一方に大文字が含まれている場合、大文字が含まれているテキスト値の方が大きいとみなされます。

Polaris では COMPARE 関数を使用できません。

Classic エンジンでは使用できます。

COMPARE(Top Salesperson North, Top Salesperson South)

Unicode や Java での照合と同様、あるテキスト値が別のテキスト値より大きい/小さいとみなされるかどうかは複数の条件に左右されます。

Comparison mode キーワードでは、テキスト値の基本文字、アクセント、大文字/小文字がそれぞれ比較されます。ただし、この動作は選択したロケールによって異なります。

キーワードとして SECONDARY か TERTIARY を使用してテキスト値のアクセント又は大文字/小文字を比較した場合、COMPARE 関数ではそれより前の条件も適用されます。たとえば、TERTIARY を使用してテキスト値の大文字/小文字を比較する場合、最初に基本文字とアクセントが比較されます。

Locale 引数では、Java 8 で利用可能なロケールに対応する ISO 言語コードを使用できます。次のいずれかを使用できます。

  • en、fr、de、tr などの、2 文字の ISO 639 言語コード
  • ISO 639 言語コードと ISO 3166 国コードを組み合わせた 4 文字のコード (en-us、fr-be、de-at、tr-tr など)。ただし、Anaplan では、en_us、fr_be、de_at、tr_tr となるように、ハイフン (-) をアンダースコア (_) に置き換える必要があります。

Locale 引数は特定の言語でしか機能しません。たとえば、コードが tr のトルコ語がこれに含まれます。トルコ語には「i」という文字に小文字 (ドットありとドットなし) と大文字 (ドットありとドットなし) の四つのバージョンがあります。

COMPARE 関数の Locale 引数によって、英字における位置など、文字の基本的なプロパティが変わる場合があります。以下は Locale 引数が COMPARE 関数に及ぼす影響のいくつかの例です。

  • 言語コードが英語を表す「en」の場合、デンマーク語の文字「ø」は「o」の基本文字とみなされます。言語コードがデンマーク語を表す「da」の場合、「ø」の基本文字はアクセント付き文字とみなされず、アルファベット順では「z」の後になります。
  • 言語コードが「sv」のスウェーデン語の場合、「v」と「w」は同じ文字とみなされます。
  • 言語コードが「lt」のリトアニア語の場合、アルファベット順で「y」の方が「j」より前になります。

EXACT

この例では列に時間があります。行にはライン アイテムが三つあります。最初の二つのライン アイテムには、「All Regions」と「North」で最も営業成績が高い従業員が表示されています。三つ目のライン アイテムには、「North」地域で最も営業成績が高い従業員が「All Regions」と同じかどうかを確認するために COMPARE を使用する式があります。


Jan 21Feb 21Mar 21
Top Sales All RegionsPeterRashidJenny
Top Sales NorthPeterPeterJohn

Top Sales in North?

COMPARE(Top Sales All Regions, Top Sales North)

01-1

この式では、Locale 引数のデフォルトの動作である、ISO 369 言語コード「en」を使用しています。

Jan 21」では、「All Regions」と「North」の両方でテキスト値が「Peter」となっています。「All Regions」と「North」でテキスト値が同じであるため、COMPARE では値として 0 が返されています。

Feb 21 では「All Regions」のテキスト値が「Rashid」で、「North」のテキスト値が「Peter」となっています。「Rashid」と「Peter」で先頭の文字が異なるため、COMPARE 関数ではこれらの文字を比較します。アルファベット順では「P」よりも「R」の方が順番が後であるため、テキスト値「Rashid」の方が大きいとみなされ、式では値として 1 が返されます。

Mar 21 では「All Regions」のテキスト値が「Jenny」で、「North」のテキスト値が「John」となっています。「Jenny」と「John」では先頭の文字がどちらも「J」であるため、比較では無視されます。つまり、それぞれのテキスト値の二つ目の文字が比較されます。アルファベット順では「o」よりも「e」の方が順番が前であるため、式ではテキスト値「John」の方が大きいとみなされ、値として -1 が返されます。

Comparison mode 引数にキーワードとして PRIMARY を使用すると、COMPARE 関数では二つのテキスト値における基本文字の違いを比較します。


Jan 21Feb 21Mar 21
Chosen Employee 1TimTimTim
Chosen Employee 2TimTomTam
COMPARE(Chosen Employee 1, Chosen Employee 2, PRIMARY)0-11

Comparison mode 引数にキーワードとして SECONDARY を使用すると、COMPARE 関数で次の処理が行われます。

  1. 二つのテキスト値における基本文字の違いを比較する。
  2. 基本文字に違いがない場合は、二つのテキスト値のアクセントを比較する。

Jan 21Feb 21Mar 21
Chosen Employee 1SorenSorenSøren
Chosen Employee 2SorenSørenSoren
COMPARE(Chosen Employee 1, Chosen Employee 2, SECONDARY)0-11

Comparison mode 引数にキーワードとして TERTIARY を使用すると、COMPARE 関数で次の処理が行われます。

  1. 二つのテキスト値における基本文字の違いを比較する。
  2. 基本文字に違いがない場合は、二つのテキスト値のアクセントを比較する。
  3. 基本文字またはアクセントに違いがない場合は、二つのテキスト値の大文字/小文字を比較する。

Jan 21Feb 21Mar 21
Chosen Employee 1FrankfrankFrank
Chosen Employee 2FrankFrankfrank
COMPARE(Chosen Employee 1, Chosen Employee 2, TERTIARY)0-11

こちらの例は、Comparison mode 引数が異なると COMPARE が返す結果がどのように変化するかを示したものです。


Primary differenceSecondary differenceTertiary difference
Text 1báÁ
Text 2aaá
COMPARE('Text 1', 'Text 2', PRIMARY)100
COMPARE('Text 1', 'Text 2', SECONDARY)110
COMPARE('Text 1', 'Text 2', TERTIARY)111

Locale 引数を使用すると、一部のコードでは COMPARE 関数における文字の処理方法が変化します。たとえば、スウェーデン語の言語コードである sv を使用した場合、「w」と「v」は同じ基本文字とみなされます。


Region
英語Sweden
SwedishSveden
COMPARE(English, Swedish, PRIMARY)1
COMPARE(English, Swedish, PRIMARY, sv)0