EndsWith 関数と StartsWith 関数
適用対象: キャンバス アプリ デスクトップ フロー Dataverse 数式列 モデル駆動型アプリ Power Pages Power Platform CLI
あるテキスト文字列が、別のテキスト文字列で始まっているか、または終わっているかをテストします。
内容
EndsWith 関数は、あるテキスト文字列が別のテキスト文字列で終わるかどうかをテストします。
StartsWith 関数は、あるテキスト文字列が別のテキスト文字列で始まるかどうかをテストします。
どちらの関数のテストでも大文字と小文字は区別されません。 どちらの戻り値もブール値 true または false です。
アプリ内でデータを検索するには、Filter 関数と共に EndsWith および StartsWith を使用します。 また、in 演算子または Search 関数を使用すると、先頭や末尾だけでなく、テキスト文字列の中も検索できます。 アプリのニーズや特定のデータ ソースで、委任 できる関数に応じて、関数を選ぶことができます。 これらの関数のいずれかを委任できない場合は、作成時にこの制限に関して警告する委任に関する警告画面が表示されます。
構文
EndsWith( テキスト, 終了テキスト )
- テキスト – 必須。 テストするテキスト。
- EndText – 必須。 Text の末尾の検索に使用するテキスト。 EndText が空の文字列の場合、EndsWith は true を返します。
開始テキスト( テキスト, 開始テキスト )
- テキスト – 必須。 テストするテキスト。
- StartText – 必須。 Text の先頭で検索するテキスト。 StartText が空の文字列の場合、StartsWith は true を返します。
例
計算式 | 内容 | 結果 |
---|---|---|
EndsWith( "Hello World", "world" ) | "Hello World" が "world" で終わるかどうかを調べます。 このテストでは、大文字と小文字が区別されません。 | 真実 |
EndsWith( "さようなら", "良い" ) | "Good bye" が "good" で終わるかどうかをテストします。 EndText の引数 ("good") は、テキストの中に表れますが、末尾にはありません。 | 間違い |
EndsWith( "いつもこんにちは"、"こんにちは" ) | "Always say hello" が "hello" で終わるかどうかをテストします。 | 真実 |
EndsWith( "さようなら", "" ) | "Bye bye" が、空のテキスト文字列 (Len は 0 を返します) で終わるかどうかをテストします。 Filter 式を使用して条件を緩和している場合、EndsWith は、ここでは true を返すように定義されます。 | 真実 |
計算式 | 内容 | 結果 |
---|---|---|
StartsWith( "Hello World", "hello" ) | "Hello World" が "hello" で始まるかどうかをテストします。 このテストでは、大文字と小文字が区別されません。 | 真実 |
StartsWith( "さようなら", "こんにちは" ) | "Good bye" が "hello" で始まるかどうかをテストします。 | 間違い |
StartsWith( "いつもこんにちは"、"こんにちは" ) | "Always say hello" が "hello" で始まるかどうかをテストします。 "hello" はテキスト内に出現しますが、先頭にはありません。 | 間違い |
StartsWith( "さようなら", "" ) | "Bye bye" が、空のテキスト文字列 (Len は 0 を返します) で始まるかどうかをテストします。 Filter 式を使用して条件を緩和している場合、StartsWith は、ここでは true を返すように定義されます。 | 真実 |
検索のユーザー エクスペリエンス
多くのアプリでは、検索ボックスに 1 つ以上の文字を入力して、大きなデータ セット内のレコードの一覧をフィルター処理することができます。 入力すると、一覧には、検索条件に一致するレコードのみが表示されます。
このトピックの残りの部分にある例では、次のデータを含む Customers という一覧を検索した場合の結果を示しています。
このデータ ソースをコレクションとして作成するには、Button コントロールを作成し、その OnSelect プロパティを次の数式に設定します。
ClearCollect( 顧客、テーブル ( { 名前: "Fred Garcia"、会社: "Northwind Traders" }、 { 名前: "Cole Miller"、会社: "Contoso" }、 { 名前: "Glenda Johnson"、会社: "Contoso" }、 { 名前: "Mike Collins"、会社: "Adventure Works" }、 { 名前: "Colleen Jones"、会社: "Adventure Works" } ) )
この例に示すように、画面下部にあるギャラリー コントロールにレコードの一覧を表示できます。 画面の上部には、ユーザーが関心のあるレコードを指定できるように、SearchInput という名前のText input コントロールを追加できます。
ユーザーが SearchInput に文字を入力すると、ギャラリーの結果は自動的にフィルター処理されます。 この場合、ギャラリーは、(会社の名前ではなく) 顧客の名前が SearchInput の文字シーケンスで始まるレコードを表示するように構成されています。ユーザーが検索ボックスに co と入力した場合、ギャラリーには次の結果が表示されます。
Name 列に基づいてフィルター処理するには、ギャラリー コントロールの Items プロパティを次の数式のいずれかに設定します。
計算式 | 内容 | 結果 |
---|---|---|
フィルター(顧客、StartsWith(名前、SearchInput.Text)) | Customers データ ソースで、検索文字列が Name 列の先頭に出現するレコードをフィルター処理します。 このテストでは、大文字と小文字が区別されません。 ユーザーが検索ボックスに co と入力した場合、ギャラリーには、Colleen Jones と Cole Miller が表示されます。 ギャラリーに Mike Collins が表示されないのは、そのレコードの Name 列の先頭に検索文字列がないためです。 | |
フィルター(顧客、名前内のSearchInput.Text) | Customers データ ソースで、検索文字列が Name 列のどこかに出現するレコードをフィルター処理します。 このテストでは、大文字と小文字が区別されません。 ユーザーが検索ボックスに co と入力した場合、ギャラリーには、Colleen Jones、Cole Miller、Mike Collins が表示されます。これは、検索文字列が、これらすべてのレコードの Name 列のどこかに出現しているためです。 | |
検索(顧客、SearchInput.Text、「名前」) | in 演算子を使用した場合と同様、Search 関数は、各レコードの Name 列内で一致を検索します。 列名を二重引用符で囲む必要があることに注意してください。 |
Name 列だけでなく Company 列を含めるように検索範囲を広げることができます。
計算式 | 内容 | 結果 |
---|---|---|
フィルター(顧客、StartsWith(名前、SearchInput.Text) || StartsWith(会社、SearchInput.Text)) | Customers データ ソースで、Name 列または Company 列の先頭に検索文字列 (たとえば、co) があるレコードをフィルター処理します。 どちらか一方の StartsWith 関数が true の場合、|| 演算子 は true になります。 | |
フィルター (顧客、名前のSearchInput.Text || 会社のSearchInput.Text) | Customers データ ソースで、Name 列または Company 列の中に検索文字列 (たとえば、co) が含まれているレコードをフィルター処理します。 | |
検索(顧客、SearchInput.Text、「名前」、「会社」) | in 演算子を使用した場合と同様、Search 関数は、Customers データ ソースで、Name 列または Company 列の中に検索文字列 (たとえば、co) が含まれているレコードを検索します。 複数の列と複数の in 演算子を指定する場合は、Filter よりも Search 関数の方が読み書きが簡単です。 列の名前を二重引用符で囲む必要があることに注意してください。 |