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)
制約
セルの上限
サーバーを遅くする大規模なデータ セットの検索を防ぐため、人為的に上限が設定されています。上限は 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 になります。
| Product | Shipment date | Is first shipment?ISFIRSTOCCURRENCE(Product, Shipments) | |
| S1 | Apple | 01/06/2025 | true |
| S2 | Banana | 01/05/2025 | true |
| S3 | Apple | 08/06/2025 | |
| S4 | Apple | 19/06/2025 | |
| S5 | Orange | 22/05/2025 | true |
| S6 | Banana | 12/06/2025 |
一般的な例
この例では、「Contracts」リストが行に表示されており、ライン アイテムが列に表示されています。ライン アイテムには各契約に関する情報が含まれています。「Is first occurrence?」ライン アイテムでは、ISFIRSTOCCURRENCE 関数を使用して各製品の最初の契約を特定しています。
| Product | Transaction amount | Is first occurrence?ISFIRSTOCCURRENCE(Product, Contracts) | |
| Contract 1 | Peaches | 1,216.40 | true |
| Contract 2 | Peaches | 864.20 | |
| Contract 3 | Peaches | 2.165.60 | |
| Contract 4 | Bananas | 3,485.00 | true |
| Contract 5 | Bananas | 1.692.10 | |
| Contract 6 | Peaches | 1,451.20 |
Values to compare 引数がある式の例
有効な式であれば Values to compare 引数として使用できます。この例では、「Transactions」リストが行に表示されており、ライン アイテムが列に表示されています。
各取引にはそこから引かれる手数料があります。ISFIRSTOCCURRENCE 関数は減算後の各値の最初の出現を特定するために使用します。
| Transaction value | Transaction fee | First occurrence of transaction valueISFIRSTOCCURRENCE(('Transaction value' - 'Transaction fee'), Transactions) | |
| Transaction 1 | 1,000 | 25 | true |
| Transaction 2 | 1,100 | 125 | |
| Transaction 3 | 500 | 10 | true |
| Transaction 4 | 550 | 60 | |
| Transaction 5 | 1,050 | 75 |