Bagikan melalui


If dan Switch fungsi

Berlaku untuk: Aplikasi Kanvas Copilot Studio Desktop mengalir kolom rumus Dataverse Aplikasi berbasis model Power Platform CLI Fungsi Dataverse Power Pages

Menentukan apakah ada kondisi dalam set yang benar (If) atau hasil rumus cocok dengan nilai apa pun dalam satu set (Switch) lalu mengembalikan hasil atau menjalankan tindakan.

KETERANGAN

Fungsi menguji If satu atau beberapa kondisi hingga hasil yang benar ditemukan. If hasil seperti itu ditemukan, nilai yang sesuai dikembalikan. If tidak ada hasil seperti itu yang ditemukan, nilai default dikembalikan. Dalam kedua kasus tersebut, nilai yang dihasilkan mungkin berupa string untuk ditampilkan, rumus untuk dievaluasi, atau bentuk hasil lainnya.

Fungsi mengevaluasi Switch rumus dan menentukan apakah hasilnya cocok dengan nilai apa pun dalam urutan yang Anda tentukan. If kecocokan ditemukan, nilai yang sesuai dikembalikan. If tidak ada kecocokan yang ditemukan, nilai default dikembalikan. Dalam kedua kasus tersebut, nilai yang dihasilkan mungkin berupa string untuk ditampilkan, rumus untuk dievaluasi, atau bentuk hasil lainnya.

If dan Switch sangat mirip, tetapi Anda harus menggunakan fungsi terbaik untuk situasi Anda:

  • Gunakan If untuk mengevaluasi satu kondisi. Sintaks yang paling umum untuk fungsi ini adalah If( Kondisi, ThenResult, DefaultResult ), yang menyediakan umum "jika ... kemudian... Yang lain ..." pola yang terlihat di alat pemrograman lainnya.
  • Gunakan If untuk mengevaluasi beberapa kondisi yang tidak terkait. Di Power Apps (tidak seperti Microsoft Excel), Anda dapat menentukan beberapa kondisi tanpa harus menumpuk If rumus.
  • Gunakan Switch untuk mengevaluasi satu kondisi terhadap beberapa kemungkinan kecocokan. Anda juga dapat menggunakan If dalam hal ini, tetapi Anda harus mengulangi rumus untuk setiap kemungkinan kecocokan.

Anda dapat menggunakan kedua fungsi ini dalam rumus perilaku untuk mencabangkan antara dua tindakan atau lebih. Hanya satu cabang yang akan memicu tindakan. Kondisi dan kecocokan dievaluasi secara berurutan, dan akan berhenti jika kondisi true atau kecocokan ditemukan.

Kosong dikembalikan jika tidak ada kondisi yang benar, tidak ada kecocokan yang ditemukan, dan Anda tidak menentukan hasil default.

Sintaks

If( Kondisi, ThenResult [, DefaultResult ] )
If( Condition1, ThenResult1 [, Condition2, ThenResult2, ... [ , DefaultResult ] ] )

  • Kondisi - Wajib. Rumus untuk diuji untuk true. Rumus seperti biasanya berisi perbandingan operator (seperti <, >, dan =) dan fungsi uji seperti IsBlank dan IsEmpty.
  • ThenResults - Diperlukan. Nilai yang sesuai untuk menghasilkan kondisi yang dievaluasi ke true.
  • DefaultResult - Opsional. Nilai yang akan dihasilkan jika tidak ada kondisi yang dievaluasi ke true. If Anda tidak menentukan argumen ini, kosong dikembalikan.

Switch( Rumus, Match1, Result1 [, Match2, Result2, ... [, DefaultResult ] ] )

  • Rumus- Wajib. Rumus untuk dievaluasi untuk kecocokan. Rumus ini dievaluasi hanya sekali.
  • Pertandingan - Wajib. Nilai untuk dibandingkan dengan hasil dari Formula. If kecocokan yang tepat ditemukan, Hasil yang sesuai dikembalikan.
  • Hasil - Wajib. Nilai yang sesuai akan dihasilkan jika ditemukan pencocokan tepat.
  • DefaultResult - Opsional. If kecocokan yang tepat tidak ditemukan, nilai ini dikembalikan. If Anda tidak menentukan argumen ini, kosong dikembalikan.

Contoh

Nilai dalam rumus

Pada contoh berikut, kontrol Slider (bernama Slider1) memiliki nilai 25.

Rumus KETERANGAN Hasil
If( Slider1.Value = 25, "Result1" ) Kondisi adalah true, dan hasil yang sesuai dihasilkan. "Result1"
If( Slider1.Value = 25, "Result1", "Result2" ) Kondisi adalah true, dan hasil yang sesuai dihasilkan. "Result1"
If( Slider1.Value > 1000, "Result1" ) Kondisi adalah false, dan tidak ada DefaultResult yang diberikan. Kosong
If( Slider1.Value > 1000, "Result1", "Result2" ) Kondisi adalah false, dan tidak ada DefaultResult yang diberikan dan dihasilkan. "Result2"
If( Slider1.Value = 25, "Result1", Slider1.Value > 0, "Result2" ) Kondisi pertama adalah true, dan hasil yang sesuai dihasilkan. Kondisi kedua adalah true, namun tidak dievaluasi karena muncul nanti dalam daftar argumen daripada kondisi yang dievaluasi ke true. "Result1"
If( IsBlank( Slider1.Value ), "Result1", IsNumeric( Slider1.Value ), "Result2" ) Kondisi pertama adalah false karena slider tidak kosong. Kondisi kedua adalah true karena nilai slider adalah angka, dan hasil yang sesuai dihasilkan. "Result2"
If( Slider1.Value > 1000, "Result1", Slider1.Value > 50, "Result2", "Result3") Kondisi pertama dan kedua adalah false, DefaultResult diberikan dan dihasilkan. "Result3"
Switch( Slider1.Value, 25, "Result1" ) Nilai slider sesuai dengan nilai pertama yang akan diperiksa, dan hasil yang sesuai akan dihasilkan. "Result1"
Switch( Slider1.Value, 20, "Result1", 25, "Result2", 30, "Result3" ) Nilai slider sesuai dengan nilai kedua yang akan diperiksa, dan hasil yang sesuai akan dihasilkan. "Result2"
Switch( Slider1.Value, 20, "Result1", 10, "Result2", 0, "Result3", "DefaultResult" ) Nilai slider tidak sesuai dengan nilai yang akan diperiksa. DefaultResult diberikan, sehingga dihasilkan. "DefaultResult"

Percabangan dalam rumus perilaku

Dalam contoh ini, kontrol Input teks bernama FirstName memiliki nilai "John" yang diketik ke dalamnya.

Rumus KETERANGAN Hasil
If( ! IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ) ) Kondisi true, sehingga fungsi Navigate berjalan. Anda dapat menggunakan fungsi IsBlank untuk menguji apakah bidang formulir yang diperlukan telah diisi. If FirstNamekosong, rumus ini tidak akan berpengaruh. benar

Tampilan diubah ke Screen1.
If( IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ), Back() ) Tanpa operator !, kondisinya adalah false, sehingga fungsi Navigate tidak berjalan. Fungsi Back diberikan sebagai DefaultResult, sehingga berjalan. benar

Tampilan kembali ke layar yang sebelumnya ditampilkan.
Switch( FirstName.Text, "Carlos", Navigate( Screen1, ScreenTransition.None ), "Kirstin", Navigate( Screen2, ScreenTransition.None ), "John", Navigate( Screen3, ScreenTransition.None ) ) Nilai FirstName.Text dibandingkan dengan "Carlos", "Kirstin", dan "John" dalam urutan tersebut. Kecocokan ditemukan dengan "John", sehingga aplikasi menavigasi ke Screen3. benar

Tampilan diubah ke Screen3.

Langkah demi langkah

  1. Tambahkan kontrol Input teks dan beri nama Text1 jika tidak memiliki nama tersebut secara default.

  2. Dalam Text1, ketik 30.

  3. Tambahkan kontrol Label dan atur properti Teks ke rumus ini:
    If( Value(Text1.Text) < 20, "Order MANY more!", Value(Text1.Text) < 40, "Order more!", Text1.Text )

    Kontrol Label akan menampilkan Urutan lainnya! karena nilai Text1 lebih dari 20 namun kurang dari 40.

  4. Dalam Text1, ketik 15.

    Kontrol Label akan menampilkan Urutan BANYAK lainnya! karena nilai Text1 kurang dari 20.

  5. Dalam Text1, ketik 50.

    Kontrol Label akan menampilkan nilai yang Anda ketik karena lebih dari 40.