Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

FUNZIONE LIKE

Ultimo Aggiornamento: 11/05/2018 19:38
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 ..
[SM=x423021]

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

Funzione
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ù

=Rice(A2;$K$1)


Ciao By Sal [SM=x423051]


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

Ricerca dati
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 [SM=x423051]

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

Funzione
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 [SM=x423051]

se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 21:34. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com