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

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

ISFIRSTOCCURRENCE(Values to compare, List dimension to search)

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

Values to compare 引数の最初の出現を検索するリスト。

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

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 関数の対象となるセルの数が増えるにつれ、計算にかかる時間も比例して長くなります。

この例では、行にリスト「Shipments」があり、列に次のライン アイテムがあります。

  • Product: 「Products」リストのリストデータ型
  • Shipment date: 日付データ型
  • Is first shipment?: ブール値データ型

ライン アイテム「Is first shipment?」には ISFIRSTOCCURRENCE() 式が含まれています。この式は各出荷の製品をチェックし、その製品の最初の出荷に TRUE のフラグを設定します。同じ製品のその後の出荷はすべて FALSE になります。


ProductShipment dateIs first shipment?
ISFIRSTOCCURRENCE(Product, Shipments)
S1Apple01/06/2025

true

S2Banana01/05/2025

true

S3Apple08/06/2025
S4Apple19/06/2025
S5Orange22/05/2025

true

S6Banana12/06/2025

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


ProductTransaction amountIs first occurrence?
ISFIRSTOCCURRENCE(Product, Contracts)
Contract 1Peaches1,216.40

true

Contract 2Peaches864.20
Contract 3Peaches2.165.60
Contract 4Bananas3,485.00

true

Contract 5Bananas1.692.10
Contract 6Peaches1,451.20

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

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


Transaction valueTransaction feeFirst occurrence of transaction value
ISFIRSTOCCURRENCE(('Transaction value' - 'Transaction fee'), Transactions) 
Transaction 11,00025

true

Transaction 21,100125
Transaction 350010

true

Transaction 455060
Transaction 51,05075