Fungsi If dan Switch
Digunakan untuk: Lajur formula aplikasi Dataverse kanvas Aliran desktop CLI Aplikasi dipacu Power Pages Power Platform model
Menentukan sama ada sebarang keadaan dalam set adalah benar (Jika) atau hasil formula sepadan dengan nilai dalam set (Tukar) dan kemudian mengembalikan hasil atau melaksanakan tindakan.
Penerangan
Fungsi If menguji satu atau lebih keadaan sehingga hasil benar ditemui. Jika hasil seperti itu ditemui, nilai yang sepadan dikembalikan. Jika tiada hasil seperti itu ditemui, nilai lalai yang sepadan dikembalikan. Dalam mana-mana kes, nilai yang dikembalikan mungkin rentetan untuk ditunjukkan, formula untuk menilai atau bentuk hasil yang lain.
Fungsi Switch menilai formula dan menentukan sama ada hasilnya sepadan dengan sebarang nilai dalam urutan yang anda tentukan. Jika padanan ditemui, nilai yang sepadan dikembalikan. Jika tiada padanan ditemui, nilai lalai dikembalikan. Dalam mana-mana kes, nilai yang dikembalikan mungkin rentetan untuk ditunjukkan, formula untuk menilai atau bentuk hasil yang lain.
Jika dan Switch sangat serupa, tetapi anda harus menggunakan fungsi terbaik untuk situasi anda:
- Gunakan Jika untuk menilai syarat tunggal. Sintaks yang paling biasa untuk fungsi ini ialah If(Condition,ThenResult,DefaultResult ), yang menyediakan "jika ... kemudian … Yang lain ..." corak yang dilihat dalam alat pengaturcaraan lain.
- Gunakan Jika untuk menilai pelbagai syarat yang tidak berkaitan. Dalam Power Apps (tidak seperti Microsoft Excel), anda boleh menentukan berbilang syarat tanpa perlu bersarang formula Jika.
- Gunakan Tukar untuk menilai syarat tunggal terhadap berbilang padanan yang mungkin. Anda boleh juga menggunakan Jika dalam kes ini tetapi anda perlu mengulangi formula untuk setiap kemungkinan padanan.
Anda boleh menggunakan fungsi ini dalam formula tingkah laku untuk mencabang antara dua atau lebih tindakan. Hanya satu cabang yang akan mencetuskan tindakan. Syarat dan padanan dinilai mengikut urutan dan ia berhenti jika syarat benar atau padanan ditemui.
Kosong dikembalikan jika tiada syarat yang benar, tiada padanan ditemui dan anda tidak menentukan hasil lalai.
Sintaks
Jika( Syarat,KemudianHasil [, Hasil Lalai])
Jika(Syarat1,KemudianKeputusan1 [, Syarat2,KemudianKeputusan2 , ... [, Hasil Lalai ] ] )
- Syarat - Diperlukan. Formula untuk diuji benar. Formula seperti itu biasanya mengandungi perbandingan operators (seperti <, > dan =) dan uji fungsi seperti IsBlank dan IsEmpty.
- KemudianKeputusan - Diperlukan. Nilai yang sepadan untuk dikembalikan untuk syarat yang dinilai menjadi benar.
- DefaultResult - Pilihan. Nilai yang akan dikembalikan jika tidak ada syarat yang dinilai untuk benar. Jika anda tidak menentukan argumen, kosong akan dikembalikan.
Suis(Formula,Padanan1,Keputusan1 [, Padanan2,Keputusan2 , ... [, Hasil Lalai ] ] )
- Formula - Diperlukan. Formula untuk menilai pertandingan. Formula ini dinilai sekali sahaja.
- Perlawanan - Diperlukan. Nilai untuk dibandingkan dengan hasil daripada Formula. Jika padanan tepat ditemui, Hasil yang sepadan dikembalikan.
- Keputusan - Diperlukan. Nilai yang sepadan untuk dikembalikan apabila pemadanan tepat dijumpai.
- DefaultResult - Pilihan. Jika pemadanan tepat tidak ditemui, nilai ini akan dikembalikan. Jika anda tidak menentukan argumen, kosong akan dikembalikan.
Contoh
Nilai dalam formula
Dalam contoh berikut, kawalan Gelangsar (dinamakan Slider1) yang mempunyai nilai 25.
Formula | Description | Keputusan |
---|---|---|
jika( gelangsar1.Nilai = 25, "Keputusan1" ) | Syarat adalah benar, dan hasil yang sepadan akan dikembalikan. | "Result1" |
Jika( Slider1.Nilai = 25, "Keputusan1", "Keputusan2") | Syarat adalah benar, dan hasil yang sepadan akan dikembalikan. | "Result1" |
Jika( Slider1.Value > 1000, "Hasil1" ) | Syarat adalah palsu dan tiada DefaultResult telah diberikan. | Kosong |
Jika( Slider1.Value > 1000, "Result1", "Result2") | Syarat adalah palsu, DefaultResult telah diberikan dan ia akan dikembalikan. | "Result2" |
jika( Slider1.Value = 25, "Hasil1", Slider1.Nilai > 0, "Hasil2") | Syarat pertama adalah benar, dan hasil yang sepadan akan dikembalikan. Syarat kedua juga adalah benar, tetapi tidak dinilai kerana ia muncul kemudian dalam senarai argumen daripada syarat yang dinilai benar. | "Result1" |
Jika( IsBlank( Slider1.Value ), "Result1", IsNumeric( Slider1.Value ), "Result2" ) | Syarat pertama adalah palsu kerana gelangsar bukanlah kosong. Syarat kedua adalah benar kerana nilai gelangsar adalah nombor dan hasil yang sepadan dikembalikan. | "Result2" |
jika( Slider1.Value > 1000, "Result1", Slider1.Value > 50, "Result2", "Result3") | Kedua-dua syarat pertama dan kedua adalah palsu, DefaultResult telah diberikan dan dikembalikan. | "Result3" |
Suis( Slider1.Value, 25, "Hasil1") | Nilai gelangsar sepadan dengan nilai pertama untuk disemak dan hasil yang sepadan dikembalikan. | "Result1" |
Suis( Slider1.Value, 20, "Result1", 25, "Result2", 30, "Result3") | Nilai gelangsar sepadan dengan nilai kedua untuk disemak dan hasil yang sepadan dikembalikan. | "Result2" |
Suis( Slider1.Value, 20, "Result1", 10, "Result2", 0, "Result3", "DefaultResult") | Nilai gelangsar tidak sepadan dengan sebarang nilai untuk disemak. DefaultResult telah diberikan, jadi ia dikembalikan. | "DefaultResult" |
Percabangan dalam formula tingkah laku
Dalam contoh ini, kawalan Input teks dinamakan FirstName mempunyai nilai "John" yang ditaip ke dalamnya.
Formula | Penerangan | Hasil |
---|---|---|
Jika( ! IsBlank( FirstName.Text ), Navigasi( Screen1, ScreenTransition.None ) ) | Syarat adalah benar, maka fungsi Navigate dijalankan. Anda oleh menggunakan fungsi IsBlank untuk menguji sama ada medan borang yang diperlukan telah diisi. Jika FirstName adalah blank, formula ini tidak akan memberi kesan. | Benar Paparan ditukar menjadi Screen1. |
Jika( IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ), Back() ) | Tanpa operator !, syarat adalah palsu, maka fungsi Navigasi tidak berjalan. Fungsi Back telah disediakan sebagai DefaultResult, maka ia dijalankan. | Benar Paparan kembali ke skrin yang sebelumnya ditunjukkan. |
Switch( FirstName.Text, "Carlos", Navigate( Screen1, ScreenTransition.None ), "Kirstin", Navigate( Screen2, ScreenTransition.None ), "John", Navigate( Screen3, ScreenTransition.None ) ) | Nilai FirstName.Text dibandingkan dengan "Saiful", "Kirstin" dan "John" dalam susunan. Padanan ditemui bersama "John", maka aplikasinya menavigasi ke Screen3. | Benar Paparan ditukar menjadi Screen3. |
Langkah demi langkah
Tambah kawalan Input teks dan namakannya Text1 jika tidak mempunyai nama tersebut secara lalai.
Dalam Text1, taipkan 30.
Tambah kawalan Label, dan tetapkan sifat Teks ke formula ini:
Jika( Nilai(Teks1.Teks)20 < , "Pesan BANYAK lagi!", Nilai(Teks1.Teks)40 < , "Pesan lebih banyak!", Teks1.Teks )Kawalan label menunjukkan Pesan lagi! kerana nilai Text1 adalah lebih daripada 20 tetapi kurang daripada 40.
Dalam Text1, taipkan 15.
Kawalan label menunjukkan Pesan BANYAK lagi! kerana nilai Text1 adalah kurang daripada 20.
Dalam Text1, taipkan 50.
Kawalan Label menunjukkan nilai yang ditaip oleh anda kerana ia lebih daripada 40.