Fungsi If dan Switch
Berlaku untuk: Kolom rumus aplikasi kanvas
Dataverse Alur desktop
Aplikasi berdasarkan
Power Pages
Power Platform model CLI
Menentukan apakah kondisi apa pun dalam rangkaian adalah true (If) atau hasil rumus cocok dengan nilai apa pun dalam rangkaian (Switch), lalu menghasilkan hasil atau mengeksekusi tindakan.
KETERANGAN
Fungsi If menguji satu atau beberapa kondisi hingga hasil true ditemukan. Jika hasil tersebut ditemukan, nilai yang sesuai akan dihasilkan. Jika hasil tersebut tidak ditemukan, nilai default akan dihasilkan. Dalam kedua kasus tersebut, nilai yang dihasilkan mungkin berupa string untuk ditampilkan, rumus untuk dievaluasi, atau bentuk hasil lainnya.
Fungsi Switch mengevaluasi rumus dan menentukan apakah hasilnya sesuai dengan nilai urutan yang Anda tentukan. Jika kecocokan ditemukan, nilai yang sesuai akan dihasilkan. Jika kecocokan tidak ditemukan, nilai default dihasilkan. 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(Condition,ThenResult,DefaultResult ), yang menyediakan "jika ... then … 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 melakukan penyarangan rumus If.
- Gunakan Switch untuk mengevaluasi satu kondisi terhadap beberapa kemungkinan kecocokan. Anda juga dapat menggunakan If dalam kasus ini, namun Anda harus mengulang rumus untuk setiap kecocokan yang dapat dilakukan.
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
Jika( Kondisi,KemudianHasil [, Hasil Default] )
If(Condition1,ThenResult1 [, Condition2,ThenResult2 , ... [, Hasil Default ] ] )
- 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. Jika Anda tidak menentukan argumen ini, kosong akan dihasilkan.
Switch(Rumus,Match1,Result1 [,Match2,Result2, ... [, Hasil Default ] ] )
- Rumus- Wajib. Rumus untuk dievaluasi untuk kecocokan. Rumus ini dievaluasi hanya sekali.
- Pertandingan - Wajib. Nilai untuk dibandingkan dengan hasil dari Formula. Jika ditemukan pencocokan tepat, Result yang sesuai akan dihasilkan.
- Hasil - Wajib. Nilai yang sesuai akan dihasilkan jika ditemukan pencocokan tepat.
- DefaultResult - Opsional. Jika pencocokan tepat tidak ditemukan, nilai ini akan dihasilkan. Jika Anda tidak menentukan argumen ini, kosong akan dihasilkan.
Contoh
Nilai dalam rumus
Pada contoh berikut, kontrol Slider (bernama Slider1) memiliki nilai 25.
Rumus | Description | Hasil |
---|---|---|
jika( slider1.Value = 25, "Hasil1") | Kondisi adalah true, dan hasil yang sesuai dihasilkan. | "Result1" |
jika( slider1.Value = 25, "Hasil1", "Hasil2") | Kondisi adalah true, dan hasil yang sesuai dihasilkan. | "Result1" |
Jika( Slider1.Value > 1000, "Hasil1" ) | Kondisi adalah false, dan tidak ada DefaultResult yang diberikan. | Kosong |
jika( slider1.Nilai > 1000, "Hasil1", "Hasil2") | Kondisi adalah false, dan tidak ada DefaultResult yang diberikan dan dihasilkan. | "Result2" |
jika( slider1.Value = 25, "Hasil1", Slider1.Nilai > 0, "Hasil2" ) | 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" |
jika( IsBlank( Slider1.Value ), "Hasil1", IsNumeric( Slider1.Nilai ), "Hasil2" ) | Kondisi pertama adalah false karena slider tidak kosong. Kondisi kedua adalah true karena nilai slider adalah angka, dan hasil yang sesuai dihasilkan. | "Result2" |
jika( slider1.Value > 1000, "Result1", Slider1.Value > 50, "Result2", "Result3") | Kondisi pertama dan kedua adalah false, DefaultResult diberikan dan dihasilkan. | "Result3" |
Beralih ( Slider1.Value, 25, "Hasil1") | Nilai slider sesuai dengan nilai pertama yang akan diperiksa, dan hasil yang sesuai akan dihasilkan. | "Result1" |
Beralih ( Slider1.Value, 20, "Hasil1", 25, "Hasil2", 30, "Hasil3") | Nilai slider sesuai dengan nilai kedua yang akan diperiksa, dan hasil yang sesuai akan dihasilkan. | "Result2" |
Beralih ( Slider1.Value, 20, "Hasil1", 10, "Hasil2", 0, "Hasil3", "Hasil Default") | 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. Jika FirstNameblank, 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
Tambahkan kontrol Input teks dan beri nama Text1 jika tidak memiliki nama tersebut secara default.
Dalam Text1, ketik 30.
Tambahkan kontrol Label dan atur properti Teks ke rumus ini:
Jika( Value(Text1.Text)20 < , "Pesan LEBIH BANYAK!", Value(Text1.Text) < 40, "Pesan lebih banyak!", Text1.Text )Kontrol Label akan menampilkan Urutan lainnya! karena nilai Text1 lebih dari 20 namun kurang dari 40.
Dalam Text1, ketik 15.
Kontrol Label akan menampilkan Urutan BANYAK lainnya! karena nilai Text1 kurang dari 20.
Dalam Text1, ketik 50.
Kontrol Label akan menampilkan nilai yang Anda ketik karena lebih dari 40.