|
Login

TOPIC: Scrivere "CONTIENE" nelle formule

Re:Scrivere 10 years 4 weeks ago #393

  • lorenzotdm
  • lorenzotdm's Avatar
  • OFFLINE
  • Junior Boarder
  • Posts: 27
  • Karma: 0
Grazie mille Gianclaudio, ho però bisogno di un'altro particolare, in allegato trovi l'esempio, in pratica è come fare una ricerca con testo libero, tu diciti la parola chiave e il sistema mi deve dare l'elenco.
Grazie per il gentile supporto a tutti.

Attachment prova-20091113.xls not found

Attachments:
The administrator has disabled public write access.

Re:Scrivere 10 years 4 weeks ago #395

  • Gianclaudio
  • Gianclaudio's Avatar
  • OFFLINE
  • Platinum Boarder
  • Posts: 397
  • Karma: 23
in questo caso, le formule sono molto problematiche...

Credo che si possa aggirare in questo modo:
1) usi CONFRONTA per trovare la prima parola > riporti il dato e tieni conto della riga
2) usi SCARTO per definire un intervallo che parta dalla riga di cui al punto 1 e cerchi nuovamente
3) vai a due etc

Che dici?
The administrator has disabled public write access.

Re:Scrivere 10 years 4 weeks ago #396

  • lorenzotdm
  • lorenzotdm's Avatar
  • OFFLINE
  • Junior Boarder
  • Posts: 27
  • Karma: 0
Gianclaudio, sono come i bambini, potresti indicare le formule sul file excel allegato precedentemente?
The administrator has disabled public write access.

Re:Scrivere 10 years 4 weeks ago #398

  • psassi
  • psassi's Avatar
  • OFFLINE
  • Fresh Boarder
  • Posts: 2
  • Karma: 0
Sub Lista_parole()
nrr = Range("c2:c14").Rows.Count
Lista = ""
Range("C2").Select
For i = 1 To nrr

MyCheck = ActiveCell.Value Like "*asso*"
If MyCheck Then
Lista = Lista & " " & ActiveCell.Value
End If
ActiveCell.Offset(1, 0).Select

Next i
Range("d2") = Lista
End Sub

Questa macro restituisce nella cella D2 la lista delle parole nel range C2:c14 contenenti la stringa asso
The administrator has disabled public write access.

Re:Scrivere 10 years 4 weeks ago #401

  • Gianclaudio
  • Gianclaudio's Avatar
  • OFFLINE
  • Platinum Boarder
  • Posts: 397
  • Karma: 23
Ciao psassi,
apprezzatissima la macro, ma cerchiamo di usare le formule il piu' possibile.
Molto elegante, comunque. Complimenti :)

2218, ti allego un file che ho creato partendo dalla tua richiesta.
Devi nascondere le colonne B, F, G e H: io le ho lasciate aperte per permetterti di capire i passaggi.

Il problema che potresti avere e' trovare due parole identiche. In condizioni normali questo manda in crisi tutte le funzioni di ricerca e riferimento.
Per questo la prima cosa da fare e' creare una colonna di appoggio in cui fondi il valore della riga in cui si trova la parola con la parola stessa (colonna B ).
Otterrai "asso5", "asso7", ecc. Queste saranno le VERE parole da cercare. Il risultato finale e' solo la parola che sta accanto (a sx) di queste.

Per semplicita' evidenzio anche le ricorrenze (cella G1) che capisco usando un semplice CONTA.SE. Puoi mettere queste celle con il font in bianco cosi' l'utente non le vede o le puoi nascondere.

Le ricorrenze mi servono per crare un elenco numerato (cella E8) e successive. Il limite e' che ipotizzo non piu' di 10 righe, ma se copi verso il basso ne ottieni quante ne vuoi.

Da F7 a I7 ci sono formule abbastanza semplici. In caso chiedi e ti sara' risposto.

La parte piu' interessante inizia in F8.
Qui cerco la parola trovata in precedenza su un range che creo usando SCARTO e imponendo a Excel di partire da B1 + il numero di riga in cui ho trovato la parola precedente. Quindi B6. Aggiungo come limite 20000 (assumo che il tuo db non sia piu' lungo... in caso lo fosse forse stai usando il programma sbagliato).
Quindi cerco la parola precedente nel range B6:B2000 e questo esclude la possibilita' di trovare la stessa parola nuovamente.

In G8 cerco la posizione della parola in generale con gli asterischi (con CONFRONTA) e aggiungo la riga della posizione della parola precedente. Ottengo un nuovo limite inferiore che usero' poi.

In H8 riporto la parola "vera" usando la colonna A. Quando Excel trova un errore lo riporta nelle righe in cui non esiste alcuna ricorrenza (vedi i vari N/D). Per questo in I8 evito di mostrare errori usando la funzione SE abbinata a VAL.ERRORE.

Nella realta' di solito condenso le formule in una o due al max, e evito che Excel faccia calcoli se so che c'e' un errore, ma per chiarezza l'ho evitato altrimenti dovevo usare troppi SE (e qualche MA ;-))

Ciao,
G.

Attachment Usare_Excel_come_db_ricerca.xls not found

Attachments:
Last Edit: 10 years 4 weeks ago by Gianclaudio.
The administrator has disabled public write access.

Re:Scrivere 10 years 4 weeks ago #407

  • lorenzotdm
  • lorenzotdm's Avatar
  • OFFLINE
  • Junior Boarder
  • Posts: 27
  • Karma: 0
Pensavo di saper usare excel, ma vedendo cosa siete capaci di fare Voi mi sento ridicolo. Ho analizzato quanto da Te sviluppato e debbo dire che sei veramente in gamba, grazie mille, e grazie anche a Psassi la sua macro direi che è splendida.
Due geni veramente, complimenti ad entrambi.
The administrator has disabled public write access.
Time to create page: 0.376 seconds