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.
Viene restituito il numero del carattere in corrispondenza del quale viene rilevato per la prima volta un carattere specifico o una stringa di testo, leggendo da sinistra a destra. Nella ricerca non viene effettuata la distinzione tra maiuscole e minuscole, mentre è rilevante quella tra caratteri accentati e non accentati.
Sintassi
SEARCH(<find_text>, <within_text>[, [<start_num>][, <NotFoundValue>]])
Parametri
Nome |
Definizione |
|---|---|
find_text |
Testo che si desidera trovare. In find_text è possibile utilizzare caratteri jolly: il punto interrogativo (?) e l'asterisco (*). Un punto interrogativo corrisponde a qualsiasi singolo carattere; un asterisco corrisponde a qualsiasi sequenza di caratteri. Se si desidera trovare un punto interrogativo o un asterisco effettivi, digitare una tilde (~) prima del carattere. |
within_text |
Testo, o una colonna contenente testo, in cui si desidera cercare find_text. |
start_num |
(facoltativo) La posizione del carattere in within_text in corrispondenza della quale si desidera iniziare la ricerca. Se omessa, è pari a 1. |
NotFoundValue |
(facoltativo) Il valore che deve essere restituito quando l'operazione non trova una sottostringa corrispondente, in genere 0, -1 o BLANK(). |
Valore restituito
Numero della posizione iniziale della prima stringa di testo a partire dal primo carattere della seconda stringa di testo.
Osservazioni
Per la funzione di ricerca non viene fatta distinzione tra maiuscole e minuscole. La ricerca di "N" restituirà la prima occorrenza di "N" o "n".
Per la funzione di ricerca viene fatta distinzione tra caratteri accentati e non accentati. La ricerca di "á" restituirà la prima occorrenza di 'á' ma non di 'a', 'à' o della versione maiuscola 'A', 'Á'.
Grazie a questa funzione è possibile individuare una stringa di testo all'interno di una seconda stringa di testo e restituire la posizione iniziale della prima stringa.
È possibile utilizzare la funzione SEARCH per determinare la posizione di un carattere o di una stringa di testo all'interno di un'altra stringa di testo e quindi specificare la funzione MID per ottenere il testo o la funzione REPLACE per modificarlo.
Se non è possibile trovare find_text in within_text, la formula restituisce un errore. Questo comportamento è analogo a quello di Excel, in cui viene restituito #VALORE se la sottostringa non viene trovata. I valori Null in within_text saranno interpretati come una stringa vuota in questo contesto.
È possibile che tramite questa funzione DAX vengano restituiti risultati diversi se utilizzata in un modello distribuito e su cui vengono quindi eseguite query in modalità DirectQuery. Per ulteriori informazioni sulle differenze semantiche della modalità DirectQuery, visitare il sito Web all'indirizzo https://go.microsoft.com/fwlink/?LinkId=219171.
Esempio: Eseguire la ricerca all'interno di una stringa
Descrizione
La formula seguente consente di trovare la posizione della lettera "n" nella parola "printer".
Codice
=SEARCH("n","printer")
Commenti
La formula restituisce 4 perché "n" è il quarto carattere della parola "printer".
Esempio: Eseguire la ricerca all'interno di una colonna
Descrizione
È possibile utilizzare un riferimento di colonna come argomento di SEARCH. Nella formula seguente viene trovata la posizione del carattere "-" (trattino) nella colonna [PostalCode].
Codice
=SEARCH("-",[PostalCode])
Commenti
Il risultato restituito è una colonna di numeri che indicano la posizione di indice del trattino.
Esempio: Gestione degli errori con SEARCH
Descrizione
La formula nell'esempio precedente avrà esito negativo se la stringa di ricerca non viene trovata in ogni riga della colonna di origine. Nell'esempio successivo viene pertanto dimostrato come utilizzare IFERROR con la funzione SEARCH, per assicurarsi che venga restituito un risultato valido per ogni riga.
Nella formula seguente viene trovata la posizione del carattere "-" all'interno della colonna e viene restituito -1 se la stringa non viene trovata.
Codice
= IFERROR(SEARCH("-",[PostalCode]),-1)
Commenti
Si noti che il tipo di dati del valore utilizzato come output degli errori deve corrispondere al tipo di dati del tipo di output non degli errori. In questo caso, fornire un valore numerico da restituire come output nel caso di un errore, poiché SEARCH restituisce un valore intero.
Tuttavia, è anche possibile restituire un valore vuoto (stringa vuota) utilizzando BLANK() come secondo argomento di IFERROR.