Funksjonene If og Switch
Gjelder for: Formelkolonner for lerretsapper Dataverse Skrivebordsflyter CLI for modelldrevne apper Power Pages Power Platform
Bestemmer om eventuelle betingelser i et sett er sant (If) eller om resultatet av en formel samsvarer med en verdi i et sett (Switch) og returnerer deretter et resultat eller utfører en handling.
Beskrivelse
Funksjonen If tester én eller flere betingelser inntil et sann-resultat blir funnet. Hvis et slikt resultat blir funnet, returneres en tilsvarende verdi. Hvis ingen slike resultater blir funnet, returneres en standardverdi. I begge tilfeller kan den returnerte verdien være en streng for å vise, en formel for å evaluere eller en annen form for resultat.
Switch-funksjonen evaluerer en formel og bestemmer om resultatet samsvarer med en verdi i en rekkefølge som du angir. Hvis et treff finnes, returneres en tilsvarende verdi. Hvis det ikke finnes noen treff, returneres en standardverdi. I begge tilfeller kan den returnerte verdien være en streng for å vise, en formel for å evaluere eller en annen form for resultat.
If og Switch er veldig like, men du bør bruke den beste funksjonen for din situasjon:
- Bruk If til å evaluere en enkel betingelse. Den vanligste syntaksen for denne funksjonen er If( Condition, ThenResult, DefaultResult ), som gir det vanlige «hvis ... deretter … ellers ...» mønsteret som brukes i andre programmeringsverktøy.
- Bruk If til å evaluere flere ikke-relaterte betingelser. Du kan angi flere betingelser i Power Apps (i motsetning til Microsoft Excel) uten å måtte neste If-formler.
- Bruk Switch til å evaluere en enkel betingelse mot flere mulige treff. Du kan også bruke If i dette tilfellet, men du må gjenta formelen for hvert mulige treff.
Du kan bruke begge disse funksjonene i formler for virkemåte til å forgrene mellom to eller flere handlinger. Bare én gren utløser en handling. Betingelser og treff evalueres i rekkefølge, og de stopper hvis en betingelse er sann eller finner et treff.
Tom returneres hvis ingen betingelser er sanne, ingen treff blir funnet, og du ikke angir et standardresultat.
Syntaks
Hvis( Betingelse,SåResultat [, DefaultResult ] )
Hvis( Betingelse1; SåResultat1 [, Betingelse2; SåResultat2;... [, DefaultResult ] ] )
- Betingelser - Påkrevd. Formelen(e) til å teste for sann. Slike formler inneholder vanligvis sammenlignende operatorer (for eksempel <, > og =) og tester funksjoner som IsBlank og IsEmpty.
- DeretterResultater - Påkrevd. Den tilsvarende verdien skal returneres for en betingelse som evalueres til sann.
- DefaultResult – valgfritt. Verdien som skal returneres hvis ingen betingelser evalueres til sann. Hvis du ikke angir dette argumentet, returneres tom.
Bryter(Formel;Samsvar1; Resultat1[; Samsvar2; Resultat2 ;... [, DefaultResult ] ] )
- Formel - Påkrevd. Formelen som skal evalueres for treff. Denne formelen er evaluert bare én gang.
- Treff - Påkrevd. Verdier som skal sammenlignes med resultatet fra formelen. Hvis et nøyaktig treff blir funnet, returneres det tilhørende resultatet.
- Resultater - Påkrevd. Den tilsvarende verdien skal returneres når det er funnet et nøyaktig treff.
- DefaultResult – valgfritt. Hvis det ikke blir funnet et nøyaktig treff, returneres verdien. Hvis du ikke angir dette argumentet, returneres tom.
Eksempler
Verdier i formler
I eksemplene nedenfor har en Slider-kontroll (kalt Slider1) en verdi på 25.
Formel | Bekrivelse | Result |
---|---|---|
If( Slider1.Value = 25, "Resultat1" ) | Betingelsen er sann, og det tilsvarende resultatet returneres. | "Result1" |
If( Slider1.Value = 25, "Resultat1", "Resultat2" ) | Betingelsen er sann, og det tilsvarende resultatet returneres. | "Result1" |
If( Slider1.Value > 1000, "Resultat1" ) | Betingelsen er usann, og ingen DefaultResult ble angitt. | blank |
If( Slider1.Value > 1000, "Resultat1", "Resultat2" ) | Betingelsen er usann, et DefaultResult ble angitt, og det returneres. | "Result2" |
If( Slider1.Value = 25, "Result1", Slider1.Value > 0, "Result2" ) | Den første betingelsen er sann, og det tilsvarende resultatet returneres. Den andre betingelsen er også sann, men den evalueres ikke fordi den vises i argumentlisten senere enn en betingelse som evalueres til sann. | "Result1" |
If( IsBlank( Slider1.Value ), "Result1", IsNumeric( Slider1.Value ), "Result2" ) | Den første betingelsen er usann fordi glidebryteren ikke er tom. Den andre betingelsen er sann fordi verdien til glidebryteren er et tall, og det tilsvarende resultatet returneres. | "Result2" |
If( Glidebryter1.Verdi > 1000, "Resultat1", Glidebryter1.Verdi > 50, "Resultat2", "Resultat3") | Både første og andre betingelse er usann, DefaultResult ble angitt, og den returneres. | "Result3" |
Bryter ( Slider1.Value, 25, "Resultat1" ) | Verdien til glidebryteren samsvarer med den første verdien som skal kontrolleres, og det tilsvarende resultatet returneres. | "Result1" |
Bryter( Slider1.Value, 20, "Resultat1", 25, "Resultat2", 30, "Resultat3") | Verdien til glidebryteren samsvarer med den andre verdien som skal kontrolleres, og det tilsvarende resultatet returneres. | "Result2" |
Bryter( Slider1.Value, 20, "Resultat1", 10, "Resultat2", 0, "Resultat3", "DefaultResult") | Verdien til glidebryteren samsvarer ikke med en verdi som skal kontrolleres. DefaultResult ble angitt, slik at det returneres. | "DefaultResult" |
Forgrening i formler for virkemåte
I disse eksemplene har en Text input-kontroll kalt FirstName verdien «John» skrevet inn i den.
Formel | Beskrivelse | Resultat |
---|---|---|
If( ! IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ) ) | Betingelsen er sann, slik at Navigate-funksjonen kjører. Du kan bruke IsBlank-funksjonen til å teste om et obligatorisk skjemafelt er fylt ut. Hvis FirstName var blank, vil ikke denne formelen ha noen innvirkning. | sann Visningen er endret til Screen1. |
If( IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ), Back() ) | Uten !-operatoren, er betingelsen usann, slik at Navigate-funksjonen ikke kjøres. Back-funksjonen ble angitt som DefaultResult, slik at den kjører. | sann Visningen går tilbake til skjermbildet som tidligere ble vist. |
Switch( Fornavn.Tekst, "Carlos", Naviger( Screen1, ScreenTransition.None ), "Kirstin", Navigate( Screen2, ScreenTransition.None ), "John", Navigate( Screen3, ScreenTransition.None ) | Verdien for FirstName.Text sammenlignes mot «Carlos», «Kirstin» og «John» i den rekkefølgen. Appen finner et treff med «John», og går til Screen3. | sann Visningen er endret til Screen3. |
Trinnvis
Legg til en Text input-kontroll, og gi den navnet Text1 hvis den ikke har det navnet som standard.
Skriv 30 i Text1.
Legg til en Label-kontroll, og sett Text-egenskapen til denne formelen:
If( Verdi(Tekst1.Tekst) < 20, "Bestill MANGE flere!", Verdi(Tekst1.Tekst) < 40, "Bestill mer!", Tekst1.Tekst )Etikett-kontrollen viser Bestill mer!, fordi verdien av Tekst1 er mer enn 20, men mindre enn 40.
Skriv 15 i Text1.
Etikett-kontrollen viser Bestill mye mer!, fordi verdien av Tekst1 er mer enn 20, men mindre enn 20.
Skriv 50 i Text1.
Label-kontrollen viser verdien som du skrev inn fordi den er mer enn 40.