Risultati da 1 a 6 di 6

Discussione: Gestire stringhe supeiori a 255 caratteri con CONFRONTA



  1. #1
    L'avatar di ouebgi
    Clicca e Apri
    Data Registrazione
    Feb 2016
    Località
    italia
    Messaggi
    15
    Versione Office
    2010
    Likes ricevuti
    0
    Likes dati
    0

    Gestire stringhe supeiori a 255 caratteri con CONFRONTA

    Ciao a tutti,
    sto cercando di usare le funzioni INDICE e CONFRONTA per cercare stringhe all'interno di elenco e restituirne la posizione.
    Ho visto che con stringhe di dimensioni superiori a 255 caratteri la formula restituisce errore e la limitazione è della funzione CONFRONTA (non ho trovato scritto da nessuna parte di questo limite, però l'ho veificato).

    La mia necessità è di ricercare delle descrizioni all'interno di un elenco A. Queste descrizioni hanno dimensioni variabili e a volte superiori a 255 caratteri e non possono essere ridotte. La stringa da confrontare (descrizione) è selezionata da un menu a discesa che propone appunto l'elenco A per la selezione. La formula (in cella diversa) INDICE(riferimento;CONFRONTA(valore;elencovalori;0)) legge la selezione (valore), la cerca in elencovalori e ne restituisce la posizione a INDICE che restituisce il parametro associato. Tutto funziona bene se la stringa è minore di 255 caratteri, se supeiore c'è errore.

    Vorrei evitare di ricorrere a VBA.
    Ora vorrei chiedere se qualcuno sa come suggerirmi di risolvere il problema, ho cercato in rete ma senza risultato.

    Ringrazio in anticipo x l'aiuto,

    ciao

  2. #2

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7146
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2063
    Likes dati
    1300
    Ciao,
    ti chiedo se la parte superiore ai 255 caratteri è importante per l'uso del CONFRONTA o no? Cioè le stringhe sono uguali fino al 255 carattere (come sai confronta da il risultato della prima riga che trova uguale)?
    Nel caso la parte superiore ai 255 caratteri non sia importante potresti usare sempre INDICE/CONFRONTA utilizzando l'escamotage di eliminare la parte in eccesso e fare eseguire il CONFRONTA, mantenendo invariato l'INDICE.

    Potresti usare la funzione RIMPIAZZA, per esempio se le stringhe fossero nell'intervallo A1:A6, la formula da usare sarebbe questa (matriciale):

    =INDICE($A$1:$A$6;CONFRONTA(RIMPIAZZA(A1;255;LUNGHEZZA(A1)-255;"");RIMPIAZZA($A$1:$A$6;255;LUNGHEZZA($A$1:$A$6)-255;"");0))

    Per una miglior chiarezza della mia risposta allego file.
    File Allegati File Allegati
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  3. #3
    L'avatar di ouebgi
    Clicca e Apri
    Data Registrazione
    Feb 2016
    Località
    italia
    Messaggi
    15
    Versione Office
    2010
    Likes ricevuti
    0
    Likes dati
    0
    Che dire? Funziona!
    Sei un grande ges, grazie.

    Per rispondere alla tua domanda, purtroppo tutta la stringa è importante, quindi anche la parte superiore ai 255 lo è, in quanto alcune stringhe si differenziano solo nella parte sopra i 255. Non posso quindi sopprimere la parte superiore.

    Ora, poiché con il RIMPIAZZA la formula da errore se la stringa è minore di 255, allora faccio un controllo sulla lunghezza, se è inferiore uso INDICE/CONFRONTA senza il RIMPIAZZA, altrimenti uso la tua.

    Grazie ancora.

  4. #4

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7146
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2063
    Likes dati
    1300
    Ciao,
    non gliela vorremo dar vinta?!! :167:

    Allora ho pensato ad un altro "stratagemma": spezziamo la stringa in due parti, una parte a sinistra di 250 caratteri e un'altra parte a destra della parte eccedente i 250 caratteri (spero che i caratteri in totale non siano più di 510 altrimenti dobbiamo spezzarla in tre parti!)

    Dopo, sempre assumendo come INDICE la stringa intera la confrontiamo con le due mezze stringhe e - sempre tenendo conto che le stringhe siano nell'intervallo A1:A6 verrebbe questa formula (ho usato il doppio indice per il confronta e quindi la formula è normale non matriciale):

    =SE.ERRORE(INDICE($A$1:$A$6;CONFRONTA(1;INDICE((SINISTRA(A1;250)=SINISTRA($A$1:$A$6;250))*(DESTRA(A1;LUNGHEZZA(A1)-LUNGHEZZA(SINISTRA(A1;250)))=DESTRA($A$1:$A$6;LUNGHEZZA($A$1:$A$6)-LUNGHEZZA(SINISTRA($A$1:$A$6;250)))););0));"")
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  5. #5
    L'avatar di ouebgi
    Clicca e Apri
    Data Registrazione
    Feb 2016
    Località
    italia
    Messaggi
    15
    Versione Office
    2010
    Likes ricevuti
    0
    Likes dati
    0
    Ciao ges,
    ottimo, grazie!
    Anche questa seconda soluzione funziona perfettamente.

    A questo punto ho 2 alternative funzionanti che mi risolvono il problema.

    Come diceva quel tizio: two is mei che one!

  6. #6

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7146
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2063
    Likes dati
    1300
    Grazie per il riscontro.
    Dovresti, per cortesia, segnare questa discussione come [RISOLTO]
    Vai nella barra dei menu, situata all'inizio di questa discussione, troverai il menu “Strumenti Discussione” quindi scegli “Segna questo Thread come risolto”
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

Discussioni Simili

  1. [Risolto] Come gestire molte forme (pulsanti)
    Di andreac81_ nel forum Domande su Excel in generale
    Risposte: 6
    Ultimo Messaggio: 14/03/17, 11:14
  2. Gestire risorse umane, appunatmenti
    Di livio1982 nel forum Domande su Excel in generale
    Risposte: 1
    Ultimo Messaggio: 20/02/17, 17:56
  3. [Risolto] Come gestire al meglio piu di 700 grafici...?
    Di Catwoman nel forum Domande sui Grafici di Excel
    Risposte: 84
    Ultimo Messaggio: 14/10/16, 22:39
  4. [Risolto] Gestire un database con excel
    Di funcool nel forum Domande su Excel VBA e MACRO
    Risposte: 11
    Ultimo Messaggio: 05/10/16, 17:27
  5. [Risolto] Gestire evento di una singola cella
    Di Alessandro nel forum Domande su Excel VBA e MACRO
    Risposte: 41
    Ultimo Messaggio: 28/09/16, 19:15

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •