SEARCH
Restituisce il numero del carattere in corrispondenza del quale viene prima trovato un carattere o una stringa di testo specifica, leggendo da sinistra a destra. La ricerca non fa distinzione tra maiuscole e minuscole e distinzione tra caratteri accentati e accentati.
Sintassi
SEARCH(<find_text>, <within_text>[, [<start_num>][, <NotFoundValue>]])
Parametri
Termine | Definizione |
---|---|
find_text |
Testo che si desidera trovare. È possibile usare caratteri jolly, ovvero il punto interrogativo (?) e l'asterisco (*) , in find_text . Un punto interrogativo corrisponde a qualsiasi carattere singolo. Un asterisco corrisponde a qualsiasi sequenza di caratteri. Se si desidera trovare un punto interrogativo o un asterisco effettivo, digitare una tilde (~) prima del carattere. |
within_text |
Testo in cui si desidera cercare find_text o una colonna contenente testo. |
start_num |
(facoltativo) Posizione del carattere in within_text in cui si desidera iniziare la ricerca. Se omesso, 1. |
NotFoundValue |
(facoltativo, ma fortemente consigliato) Valore che deve essere restituito quando l'operazione non trova una sottostringa corrispondente, in genere 0, -1 o BLANK(). Se non specificato, viene restituito un errore. |
Valore restituito
Numero della posizione iniziale della prima stringa di testo dal primo carattere della seconda stringa di testo.
Osservazioni:
La funzione di ricerca non fa distinzione tra maiuscole e minuscole. La ricerca di "N" troverà la prima occorrenza di 'N' o 'n'.
La funzione di ricerca è sensibile all'accento. La ricerca di "á" troverà la prima occorrenza di 'á' ma nessuna occorrenza di 'a', 'à' o le versioni maiuscole 'A', 'Á'.
È possibile usare la funzione SEARCH per determinare la posizione di una stringa di testo o di un carattere all'interno di un'altra stringa di testo e quindi utilizzare la funzione MID per restituire il testo oppure usare la funzione REPLACE per modificare il testo.
Se non è possibile trovare il
find_text
inwithin_text
, la formula restituisce un errore. Questo comportamento è simile a Excel, che restituisce #VALUE se la sottostringa non viene trovata. I valori Null inwithin_text
verranno interpretati come stringa vuota in questo contesto.Questa funzione non è supportata per l'uso in modalità DirectQuery quando viene usata nelle colonne calcolate o nelle regole di sicurezza a livello di riga.
Esempio
La query di DAX seguente trova la posizione della prima lettera di "ciclo" nella stringa contenente il nome del rivenditore. Se non viene trovato, viene restituito Blank.
SEARCH non fa distinzione tra maiuscole e minuscole. In questo esempio, se viene usato "cycle" o "Cycle" nell'argomento find_text
, i risultati vengono restituiti per entrambi i casi. Usare FIND per la distinzione tra maiuscole e minuscole.
Gli esempi in questo articolo possono essere usati con il modello adventure works DW 2020 di Power BI Desktop di esempio. Per ottenere il modello, vedere DAX modello di esempio.
EVALUATE
CALCULATETABLE (
ADDCOLUMNS (
TOPN ( 10, SUMMARIZE('Reseller', [Reseller], [Business Type])),
"Position of cycle", SEARCH ( "cycle", 'Reseller'[Reseller], 1, BLANK () )
),
'Reseller'[Business Type] IN { "Specialty Bike Shop", "Value Added Reseller", "Warehouse"}
)
Restituisce:
Reseller | Business Type | Posizione di "cycle" |
---|---|---|
Volume Bike Sellers | Magazzino | |
Mass Market Bikes | Valore aggiunto rivenditore | |
Twin Cycles | Valore aggiunto rivenditore | 6 |
Rich Department Store | Magazzino | |
Rental Gallery | Specialty Bike Shop | |
Budget Toy Store | Magazzino | |
Global Sports Outlet | Magazzino | |
Online Bike Catalog | Magazzino | |
Caschi e cicli | Valore aggiunto rivenditore | 13 |
Jumbo Bikes | Specialty Bike Shop |