Fungsi If dan Switch

Berlaku untuk: Kolom rumus aplikasi Dataverse kanvas Alur desktop Aplikasi Power Platform berbasis 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, namun 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 "if ... then … Lain ..." pola terlihat pada 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 dihasilkan jika tidak ada kondisi adalah true, kecocokan tidak ditemukan, dan Anda tidak menentukan hasil default.

Sintaks

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

  • Condition – Wajib. Rumus untuk diuji untuk true. Rumus seperti biasanya berisi perbandingan operator (seperti <, >, dan =) dan fungsi uji seperti IsBlank dan IsEmpty.
  • ThenResult - Wajib. 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( Formula, Match1, Result1 [, Match2, Result2, ... [, DefaultResult ] ] )

  • Formula – Wajib. Rumus untuk dievaluasi untuk kecocokan. Rumus ini dievaluasi hanya sekali.
  • Match - Wajib. Nilai untuk dibandingkan dengan hasil dari Formula. Jika ditemukan pencocokan tepat, Result yang sesuai akan dihasilkan.
  • Result - 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
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. Jika FirstNameblank, rumus ini tidak akan berpengaruh. true

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. true

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. true

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.