Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a: App
Canvas Copilot Studio
Flussi
desktop Colonne formula
di Dataverse App basate su modello Funzioni powerverse dell'interfaccia
della riga di comando
di Power Platform
Power Pages
Determina se qualsiasi condizione in un set è true (If) o il risultato di una formula corrisponde a qualsiasi valore in un set (Switch) e restituisce un risultato o esegue un'azione.
Descrizione
La If funzione verifica una o più condizioni fino a quando non viene trovato un risultato vero . If tale risultato viene trovato, viene restituito un valore corrispondente. If non viene trovato alcun risultato di questo tipo, viene restituito un valore predefinito. In entrambi i casi, il valore restituito potrebbe essere una stringa da visualizzare, una formula da valutare o un altro tipo di risultato.
La Switch funzione valuta una formula e determina se il risultato corrisponde a qualsiasi valore in una sequenza specificata. If viene trovata una corrispondenza, viene restituito un valore corrispondente. If non viene trovata alcuna corrispondenza, viene restituito un valore predefinito. In entrambi i casi, il valore restituito potrebbe essere una stringa da visualizzare, una formula da valutare o un altro tipo di risultato.
If e Switch sono molto simili, ma è consigliabile usare la funzione migliore per la situazione:
- Usare If per valutare una singola condizione. La sintassi più comune per questa funzione è If( Condition, ThenResult, DefaultResult ), che fornisce il comune "if ... then… else ..." criterio visto in altri strumenti di programmazione.
- Usare If per valutare più condizioni non correlate. In Power Apps (a differenza di Microsoft Excel) è possibile specificare più condizioni senza dover annidare If formule.
- Usare Switch per valutare una singola condizione rispetto a più corrispondenze possibili. È anche possibile usare If in questo caso, ma è necessario ripetere la formula per ogni possibile corrispondenza.
È possibile usare entrambe le funzioni nelle formule di comportamento per creare un ramo tra due o più azioni. Solo un ramo attiverà un'azione. Le condizioni e le corrispondenze vengono valutate nell'ordine e si interrompono se una condizione è true o se viene trovata una corrispondenza.
Blank viene restituito se nessuna condizione è vera, non vengono trovate corrispondenze e non si specifica un risultato predefinito.
Sintassi
If( Condition, ThenResult [, DefaultResult ] )
If( Condition1, ThenResult1 [, Condition2, ThenResult2, ... [ , DefaultResult ] ] )
- Condizioni - Obbligatorio. Formula o formule da verificare per true. Queste formule solitamente contengono operatori di confronto, ad esempio <, > e =, e verificano funzioni quali IsBlank e IsEmpty.
- ThenResults - Obbligatorio. Il valore corrispondente da restituire per una condizione che restituisce true.
- DefaultResult - Facoltativo. Il valore da restituire se nessuna condizione viene valutata come true. If non si specifica questo argomento, viene restituito vuoto .
Switch( Formula, Match1, Result1 [, Match2, Result2, ... [, DefaultResult ] ] )
- Formula - Obbligatorio. Formula da valutare per ogni corrispondenza. Questa formula viene valutata una sola volta.
- Corrispondenze - Obbligatorio. Valori da confrontare con il risultato di Formula. If viene trovata una corrispondenza esatta, viene restituito il risultato corrispondente.
- Risultati - Obbligatorio. Il valore corrispondente da restituire quando viene trovata una corrispondenza esatta.
- DefaultResult - Facoltativo. If non viene trovata una corrispondenza esatta. Questo valore viene restituito. If non si specifica questo argomento, viene restituito vuoto .
Esempi
Valori nelle formule
Negli esempi seguenti un controllo Slider denominato Slider1 ha il valore 25.
| Formula | Descrizione | Result |
|---|---|---|
| If( Slider1.Value = 25, "Result1" ) | La condizione è true, quindi viene restituito il risultato corrispondente. | "Result1" |
| If( Slider1.Value = 25, "Result1", "Result2" ) | La condizione è true, quindi viene restituito il risultato corrispondente. | "Result1" |
| If( Slider1.Value > 1000, "Result1" ) | La condizione è false e DefaultResult non è stato specificato. | vuoto |
| If( Slider1.Value > 1000, "Result1", "Result2" ) | La condizione è false, DefaultResult è stato specificato e restituito. | "Result2" |
| If( Slider1.Value = 25, "Result1", Slider1.Value > 0, "Result2" ) | La prima condizione è true, quindi viene restituito il risultato corrispondente. Anche la seconda condizione è true, ma non viene valutata perché viene visualizzata in un secondo momento nell'elenco di argomenti rispetto a una condizione che restituisce true. | "Result1" |
| If( IsBlank( Slider1.Value ), "Result1", IsNumeric( Slider1.Value ), "Result2" ) | La prima condizione è false perché il dispositivo di scorrimento non è blank. La seconda condizione è true perché il valore del dispositivo di scorrimento è un numero e quindi viene restituito il risultato corrispondente. | "Result2" |
| If( Slider1.Value > 1000, "Result1", Slider1.Value > 50, "Result2", "Result3") | Sia la prima sia la seconda condizione sono false, è stato specificato e restituito DefaultResult. | "Result3" |
| Switch( Slider1.Value, 25, "Result1" ) | Il valore del dispositivo di scorrimento corrisponde al primo valore da controllare e viene restituito il risultato corrispondente. | "Result1" |
| Switch( Slider1.Value, 20, "Result1", 25, "Result2", 30, "Result3" ) | Il valore del dispositivo di scorrimento corrisponde al secondo valore da controllare e viene restituito il risultato corrispondente. | "Result2" |
| Switch( Slider1.Value, 20, "Result1", 10, "Result2", 0, "Result3", "DefaultResult" ) | Il valore del dispositivo di scorrimento non corrisponde a nessun valore da controllare. DefaultResult è stato specificato e quindi viene restituito. | "DefaultResult" |
Creazione di rami nelle formule di comportamento
In questi esempi un controllo Text input denominato FirstName contiene il valore "John".
| Formula | Descrizione | Result |
|---|---|---|
| If( ! IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ) ) | La condizione è true, quindi viene eseguita la funzione Navigate. È possibile usare la funzione IsBlank per verificare se è stato specificato un campo modulo obbligatorio. If FirstName era vuoto, questa formula non avrebbe alcun effetto. |
VERO La visualizzazione viene modificata a Screen1. |
| If( IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ), Back() ) | Senza l'operatore !, la condizione è false, quindi la funzione Navigate non viene eseguita. La funzione Back è stata specificata come DefaultResult, quindi viene eseguita. |
VERO La visualizzazione torna alla schermata visualizzata in precedenza. |
| Switch( FirstName.Text, "Carlos", Navigate( Screen1, ScreenTransition.None ), "Kirstin", Navigate( Screen2, ScreenTransition.None ), "John", Navigate( Screen3, ScreenTransition.None ) ) | Il valore di FirstName.Text viene confrontato con "Carlos", "Kirstin" e "John" in questo ordine. Viene trovata una corrispondenza con "John", quindi l'app passa a Screen3. |
VERO La visualizzazione viene modificata a Screen3. |
Procedura dettagliata
Aggiungere un controllo Text input e denominarlo Text1 se non ha tale nome per impostazione predefinita.
In Text1 digitare 30.
Aggiungi un controllo Label e impostane la proprietà Text sulla formula seguente:
If( Value(Text1.Text) < 20, "Order MANY more!", Value(Text1.Text) < 40, "Order more!", Text1.Text )Il controllo Label mostra Ordina di più! poiché il valore di Text1 è maggiore di 20 ma minore di 40.
In Text1 digitare 15.
Il controllo Label mostra Ordina MOLTO di più! poiché il valore di Text1 è minore di 20.
In Text1 digitare 50.
Il controllo Label mostra il valore digitato perché è superiore a 40.