| | Post: 1 | Registrato il: 22/02/2011
| Città: ROMA | Età: 53 | Utente Junior | 2013 | | OFFLINE | |
|
08/05/2018 12:15 | |
Ciao,
avrei la necessità di usare la funzione LIKE in excel, vedi esempio:
CELLA A1
ABABABAB MELE ABABAB (stringa qualsiasi alfanumerica)
CELLA A2
ABABABAB PERE ABABAB (stringa qualsiasi alfanumerica)
CELLA B1
SE CAMPO A1 CONTIENE "MELE" METTI "ME"; SE CAMPO A1 CONTIENE "PERE" METTI "PE"
CELLA B2
SE CAMPO A2 CONTIENE "MELE" METTI "ME"; SE CAMPO A2 CONTIENE "PERE" METTI "PE"
Avrei la necessità di mettere più condizioni non solo 2.
Come potrei fare?
Grazie saluti.
Fra |
|
| | Post: 3.429 | Registrato il: 28/06/2011
| Città: AGORDO | Età: 70 | Utente Master | 2013 | | OFFLINE | |
|
08/05/2018 12:50 | |
Per una 20° di opzioni
Faccio un esempio scrivi in J1 =mele,J2 =Pere, J3/J4/J5 ecc ecc
Ora in K, scrivi me, pe ecc ecc
Adesso vai in B1 è scrivi =CERCA.VERT(A1;H1:I5;2;FALSO)
Ora vai in alto dove vedi la formula, seleziona solo H1:I5 e premi F9
Adesso la tabella H1:I5 la puoi cancellare
EDIT un attimo, ho frainteso [Modificato da raffaele1953 08/05/2018 14:11] Excel 2013 |
| | Post: 3.430 | Registrato il: 28/06/2011
| Città: AGORDO | Età: 70 | Utente Master | 2013 | | OFFLINE | |
|
08/05/2018 17:00 | |
Allora due soluzioni VBa oppure formula
Sono sicuro che una matriciale sia meglio, però non sono capace
Ricominciando da zero , se scrivi in K1 pere, k2 mele ecc ecc
Solo se usi la formula in L metti me,pe ecc
Valida se esiste un solo spazio tra le sigle...
in B1 =INDICE( K1:L7;CONFRONTA(STRINGA.ESTRAI(A1;RICERCA(" ";A1;1)+1;RICERCA(CODICE.CARATT(254);SOSTITUISCI(A1;" ";CODICE.CARATT(254);LUNGHEZZA(A1)-LUNGHEZZA(SOSTITUISCI(A1;" ";""))))-RICERCA(" ";A1;1)-1); K1:K7;0);2)
Se desideri seleziona i caratteri rossi e premi F9, dopo elimini la tabella
il codice ci pensa lui a mettere i me,pe...
vb Option Explicit
Sub ricerca()
Dim Parola As String, strArray() As String
Dim Ur As Long, X As Long, Y As Long
Ur = Range("A" & Rows.Count).End(xlUp).Row
For X = 1 To Ur
strArray = Split(Cells(X, 1), " ")
For Y = LBound(strArray) To UBound(strArray)
Parola = Trim(strArray(Y))
If Application.WorksheetFunction.CountIf(Range("K1:K10"), Parola) > 0 Then
Cells(X, 2) = Mid(Trim(strArray(Y)), 1, 2)
End If
Next Y
Next
End Sub [Modificato da raffaele1953 08/05/2018 17:01] Excel 2013 |
| | Post: 1 | Registrato il: 22/02/2011
| Città: ROMA | Età: 53 | Utente Junior | 2013 | | OFFLINE | |
|
09/05/2018 11:41 | |
Ciao,
grazie per l'analisi.
La soluzione VBA è un po ostica per le mie conoscenze, ho provato a implementare la tua formula.
In allegato figura 1 il caso semplice dove nel campo ho messo solo il valore "MELE".
Figura 2 è il mio caso in cui "MELE " è dentro una stringa.
In entrambi i casi mi da errore ..
Sicuramente mi sfuggirà qualcosa di enorme :-)
Grazie, ciao.
Fra |
| | Post: 3.432 | Registrato il: 28/06/2011
| Città: AGORDO | Età: 70 | Utente Master | 2013 | | OFFLINE | |
|
09/05/2018 13:00 | |
Scusa, hai scritto che in A1 mettevi una stringa alfanumerica, pensavo (codice nome codice)
In A1, non puoi mettere solo la parola "mele", mà per esempio adgjfkvk MELE 4568984 (inoltre come da ex Tuo, dovrà essere in mezzo tra due codici)
La formula ricerca all'interno di questa stringa
(un spazio-un nome qualsiasi scritto nella tabella-un spazio)
Inoltre la tabella deve essere scritta unicamente in K1 a seguire
Ora se scrivi ABABABAB MELE ABABAB, la formula trova MELE
Se invece scrivi "Comprato 15 mele ieri sera", siccome nella frase ci sono 4 spazi, la formula non capisce più nulla.
Vedo se trovo un'altra soluzione tramite formula, secondo me rimane solo il VBA [Modificato da raffaele1953 10/05/2018 06:54] Excel 2013 |
| | Post: 3.436 | Registrato il: 28/06/2011
| Città: AGORDO | Età: 70 | Utente Master | 2013 | | OFFLINE | |
|
10/05/2018 15:13 | |
Nulla da fare, non riesco proprio a fare le Matriciali
In colonna N, riesco calcolare se è presente una parola, mà poi sono bloccato
Nell'allegato foglio1, una stupidata con 10 colonne d'appoggio
Nel Foglio2 il VBA Excel 2013 |
| | Post: 2 | Registrato il: 22/02/2011
| Città: ROMA | Età: 53 | Utente Junior | 2013 | | OFFLINE | |
|
11/05/2018 14:13 | |
Grazie mille per l'aiuto.
Sei stato molto gentile.
Ciao. |
| | Post: 5.378 | Registrato il: 14/11/2004
| Utente Master | Office 2019 | | OFFLINE |
|
11/05/2018 16:32 | |
Ciao una semplice Funzione per la ricerca, fatta alla buona, nel file di Raffaele che saluto
Function Rice(rrg, ddd)
If rrg Like "*" & ddd & "*" Then Rice = "OK"
End Function
allego anche il file, quello che scrivi nella cella verde viene evidenziato con "OK".
Questa la formaula da inserire nelle celle e trascinare giù
Ciao By Sal
se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui |
| | Post: 5.379 | Registrato il: 14/11/2004
| Utente Master | Office 2019 | | OFFLINE |
|
11/05/2018 16:41 | |
Ciao non ho letto tutto il post, ma mi sembra che voleva le iniziali della parola cercata, modifica la funzione con questa.
Function Rice(rrg, ddd)
Dim d
d = Mid(ddd, 1, 2)
If rrg Like "*" & ddd & "*" Then Rice = UCase(d)
End Function
Mette le prime due lettere
Ciao By Sal
se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui |
| | Post: 3.443 | Registrato il: 28/06/2011
| Città: AGORDO | Età: 70 | Utente Master | 2013 | | OFFLINE | |
|
11/05/2018 17:43 | |
Ciao by sal
Bella idea la Function (per chi sa scriverle)
Il problema era trovare quale parola scritta in F1:F10 fosse presente nella cella A1. Copiandoti ho creato la mia 1° Function, brutta da vedere e da gestire. Sai come fare un ciclo all'interno di essa?
Ho provato pure strArray() nulla, non ci riesco. vb Function Trovaaa(rrg, ddd)
ddd = Range("K1:K5")
If InStr(rrg, Range("K1")) > 0 Then Trovaaa = Mid(Trim(Range("K1")), 1, 2)
If InStr(rrg, Range("K2")) > 0 Then Trovaaa = Mid(Trim(Range("K2")), 1, 2)
If InStr(rrg, Range("K3")) > 0 Then Trovaaa = Mid(Trim(Range("K3")), 1, 2)
If InStr(rrg, Range("K4")) > 0 Then Trovaaa = Mid(Trim(Range("K4")), 1, 2)
If InStr(rrg, Range("K5")) > 0 Then Trovaaa = Mid(Trim(Range("K5")), 1, 2)
End Function Excel 2013 |
| | Post: 5.381 | Registrato il: 14/11/2004
| Utente Master | Office 2019 | | OFFLINE |
|
11/05/2018 19:38 | |
Ciao Raffaele, ce tutto un capitolo sulle funzioni e come crearle con relativi file di Help ed altro, ma purtroppo l'harddisk che le conteneva non funziona più e non ricordo più dove ho preso le informazioni.
ma tratta la funzione, come una macro con parametri, anche con cicli interni calcoli od altro alla fine il risultato lo restituisci scrivendo il nome della funzione ed il risultato dei dati impostati.
Ciao By Sal
se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui |
|
|