ISFIRSTOCCURRENCE 関数は、リスト ディメンションで最初に見つかった値に対してブール値 TRUE を返します。

たとえば、データからリストを作成する際に、ISFIRSTOCCURRENCE を使用して重複を防ぐことができます。

ISFIRSTOCCURRENCE(Values to compare, List dimension to search)

引数データ型説明
Values to compare数値、ブール値、日付、時間軸、リスト、又はテキスト最初の出現を検索する値
List dimension to searchリスト

Value to find 引数の最初の出現を検索するリスト

ターゲット ライン アイテムのディメンションである必要があります。

ISFIRSTOCCURRENCE 関数は結果をブール値で返します。

Polaris では、Time リストで ISFIRSTOCCURRENCE 関数を使用できます。Classic エンジンでは使用できません。

さらに、Classic エンジンとは異なり、Polaris では ISFIRSTOCCURRENCE 関数に 5,000 万セルの制限がありません。

Polaris では、ディメンション引数をターゲット ライン アイテムのいずれかのディメンションと一致している必要があります。たとえば、リストのサブセットをディメンション引数として使用することはできません。Classic エンジンではこれが当てはまりません。 

注記:ディメンション性が高いモデルの場合、Polaris では ISFIRSTOCCURRENCE のパフォーマンスが低下することがわかっています。Polaris では ISFIRSTOCCURRENCE を使用しないことが強く推奨されています。

ISFIRSTOCCURRENCE(Product, Contracts)

ISFIRSTOCCURRENCE 関数を使ってユーザー リストを参照できます。ただし、ユーザー リスト内の特定のユーザーは、内容が変化して式が無効になる可能性がある本番データであるため参照できません。

General Lists にあるように、ISFIRSTOCCURRENCE 関数は親リストではなくリーフ リストの順番を参照します。つまり、アイテムの最初の出現がモジュール内のリストで最初に表示されない場合があるということです。リストの順番は「リストの整理」で説明されている操作で変更できます。

サーバーを遅くする大規模なデータ セットの検索を防ぐため、人為的に上限が設定されています。上限は 5,000 万セルに設定されています。5,000 万超のセルを対象に ISFIRSTOCCURRENCE 関数が使用されると、そのモデルはロールバックし通知が表示されます。

5,000 万セルという上限は、集計値または時間バージョンのリストには適用されません。つまり、集計されていないセルが 5,000 万個未満であれば、セルの数が 5,000 万個以上あるライン アイテムでも ISFIRSTOCCURRENCE 関数が使用できます。

ISFIRSTOCCURRENCE 関数の対象となるセルの数が増えるにつれ、計算にかかる時間も比例して長くなります。

この例では、「Contracts」リストが行に表示されており、ライン アイテムが列に表示されています。ライン アイテムには各契約に関する情報が含まれています。「Is first occurrence?」ライン アイテムでは、ISFIRSTOCCURRENCE 関数を使用して各製品の最初の契約を特定しています。


ProductTransaction amount

Is first occurrence?

ISFIRSTOCCURRENCE(Product, Contracts)

Contract 1Peaches1,216.40
Contract 2Peaches864.20
Contract 3Peaches2.165.60
Contract 4Bananas3,485.00
Contract 5Bananas1.692.10
Contract 6Peaches1,451.20

有効な式であれば Values to compare 引数として使用できます。この例では、「Transactions」リストが行に表示されており、ライン アイテムが列に表示されています。

各取引にはそこから引かれる手数料があります。ISFIRSTOCCURRENCE 関数は減算後の各値の最初の出現を特定するために使用します。


Transaction valueTransaction fee

First occurrence of transaction value

ISFIRSTOCCURRENCE(('Transaction value' - 'Transaction fee'), Transactions) 

Transaction 11,00025
Transaction 21,100125
Transaction 350010
Transaction 455060
Transaction 51,05075