Acquista i nostri libri consigliati su Amazon.it
+ Rispondi al messaggio
Pagina 2 di 2 primaprima 12
Visualizzazione dei risultati da 11 a 19 su 19

Condizione trovare valore in fogli diversi

  1. #11
    Sgrubak ora è in linea Scribacchino
    Quote Originariamente inviato da Tanzyn Visualizza il messaggio
    Il codice è presente solo in due dei tre fogli e quando è vuoto in uno dei due deve dare "NO".
    Che è una quarta casistica...

    Hai provato quindi ad adattare la formula, vero? Sai che per la "pappa pronta" bacchettano anche me...

  2. #12
    GiuseppeMN non è in linea Scribacchino
    Buon pomeriggio @Tanzyn.

    @Tanzyn, in risposta #8, scrive:
    ... Anche mettendo il punto alla fine di ogni nome nei singoli fogli e toglierlo nell'intermezzo fra X, Y e Z (non ". " ma " "), nel caso in cui Y1 fosse vuoto mi restituirebbe doppio spazio fra il nome in X1 e il nome in Z1. Potrei anche soprassedere, ma il risultato del concatena poi va copiato in un altro documento (una web app) e non è proprio bello da vedere. ...
    Come puoi ben vedere nell'immagine allegata alla risposta #7 in Colonna "B" la stringa riporta i Nominativi senza ". " finale.
    Per fare ciò la Formula a cui avevo pensato comprendeva l'istruzione:
     STRINGA.ESTRAI
    
    tramite la quale escludevo gli ultimi due caratteri.


    A disposizione.

    Giuseppe

  3. #13
    Tanzyn non è in linea Novello
    Quote Originariamente inviato da Sgrubak Visualizza il messaggio
    Che è una quarta casistica...

    Hai provato quindi ad adattare la formula, vero? Sai che per la "pappa pronta" bacchettano anche me...
    Non ti seguo, non è una quarta condizione; le condizioni sono sempre le tre che hai espresso tu:
    1) Il valore è stato trovato;
    2) il valore è vuoto;
    3) L'errore #N/D perché il valore non c'è.

    Va bene non dare la pappa pronta, ma almeno mettere l'acqua nel pentolino. La formula che hai proposto tu restituisce "NO" se uno dei tre CERCA.VERT è uguale a zero oppure un errore, invece a me serve che se uno dei tre è un errore lo ignori e concateni gli altri due.

    Ho provato così ma il risultato è sempre "No"

    =SE(SE.ERRORE(O(E(C2>0;D2>0;E2>0));VERO);"No";CONCATENA(C2;". ";D2;". ";E2))
    
    Ho anche provato a inserire un CERCA.VERT nidificato in un SE.ERRORE nelle colonne di servizio
    =SE.ERRORE(CERCA.VERT(A2;Foglio3!$A$2:$B$5;2;FALSO);"/ ")
    
    ma nel CONCATENA
    =CONCATENA(C2;". ";D2;". ";E2)
    
    Mi restituisce "Marco. pippo. " con lo spazio finale, perché appunto non ignora l'errore.

    Quote Originariamente inviato da GiuseppeMN Visualizza il messaggio
    Buon pomeriggio @Tanzyn.

    @Tanzyn, in risposta #8, scrive:


    Come puoi ben vedere nell'immagine allegata alla risposta #7 in Colonna "B" la stringa riporta i Nominativi senza ". " finale.
    Per fare ciò la Formula a cui avevo pensato comprendeva l'istruzione:
     STRINGA.ESTRAI
    
    tramite la quale escludevo gli ultimi due caratteri.


    A disposizione.

    Giuseppe
    iao Giuseppe, ho provato a studiare la funzione INDIRETTO, ma non ho capito come applicarla al mio caso dato che non ho un nome univoco definito

    Applicando però, come dicevo prima, il CERCA.VERT nidificato in un SE.ERRORE nelle colonne di servizio
    =SE.ERRORE(CERCA.VERT(A2;Foglio3!$A$2:$B$5;2;FALSO);"/")
    
    e successivamente STRINGA.ESTRAI con un TROVA, sono effettivamente riuscito a togliere il "/" alla fine. Il problema è quando il "/" restituito dal SE.ERRORE si trova nel mezzo piuttosto che alla fine...

  4. #14
    GiuseppeMN non è in linea Scribacchino
    Buona sera @Tanzyn.
    @Tanzyn in #8, scrive:
    ...il foglio 4 ha già altre 8 colonne. ...
    Nel Foglio di lavoro "Foglio4" ho aggiunto otto Colonne, vedi immagine in allegato.
    Nome:   Indiretto.jpg
Visite:  24
Grandezza:  36.5 KB
    Nella Cella "K2" potresti provare a sostituire la tua Formula con:
     =SE.ERRORE(CERCA.VERT($A2;INDIRETTO(K$1&"!$A2:$H1300");2;0)&". ";"")
    
    da copiare nel Range K2:M5

    In Cella "B2" potresti provare ad utilizzare la Formula:
    =SE($K2=". ";"NO";STRINGA.ESTRAI(($K2&$L2&$M2);1;LUNGHEZZA($K2&$L2&$M2)-2))
    
    da copiare nelle Celle sottostanti.

    Fai sapere se può essere una possibile soluzione.


    Buona serata.

    Giuseppe

  5. #15
    Sgrubak ora è in linea Scribacchino
    Quote Originariamente inviato da Tanzyn Visualizza il messaggio
    ma nel CONCATENA
    Mi restituisce "Marco. pippo. " con lo spazio finale, perché appunto non ignora l'errore.
    E tu gestisci l'eventualità direttamente nella formula:
    =CONCATENA(C2; SE(VAL.ERRORE(D2);"";". ");D2;SE(VAL.ERRORE(E2);"";". ");E2)
    
    Così facendo, concateni il punto solo se dopo non hai un errore...

    P.S: la formula [O(E(C2>0;D2>0;E2>0))] non ha senso... Così ritornerà sempre il risultato della [E]. La [O] è inutile...

  6. #16
    Tanzyn non è in linea Novello
    Quote Originariamente inviato da GiuseppeMN Visualizza il messaggio
    Buona sera @Tanzyn.
    @Tanzyn in #8, scrive:

    Nel Foglio di lavoro "Foglio4" ho aggiunto otto Colonne, vedi immagine in allegato.
    Allegato 2726
    Nella Cella "K2" potresti provare a sostituire la tua Formula con:
     =SE.ERRORE(CERCA.VERT($A2;INDIRETTO(K$1&"!$A2:$H1300");2;0)&". ";"")
    
    da copiare nel Range K2:M5

    In Cella "B2" potresti provare ad utilizzare la Formula:
    =SE($K2=". ";"NO";STRINGA.ESTRAI(($K2&$L2&$M2);1;LUNGHEZZA($K2&$L2&$M2)-2))
    
    da copiare nelle Celle sottostanti.

    Fai sapere se può essere una possibile soluzione.


    Buona serata.

    Giuseppe
    Ciao Giuseppe, sì è una buona soluzione e funziona correttamente anche se, in tutta sincerità ho difficoltà a capire l'indiretto nidificato nel CERCA.VERT. Ma è un modo per studiarmelo.

    Quote Originariamente inviato da Sgrubak Visualizza il messaggio
    E tu gestisci l'eventualità direttamente nella formula:
    =CONCATENA(C2; SE(VAL.ERRORE(D2);"";". ");D2;SE(VAL.ERRORE(E2);"";". ");E2)
    
    Così facendo, concateni il punto solo se dopo non hai un errore...
    La formula per come l'hai scritta non funziona, perché comunque anche se non concatena il punto in presenza di un errore, trova concatena comunque l'errore che trova in C2, D2 o E2. Ti allego lo screenshot per capire cosa intendo:

    P.S. come fai a caricare l'immagine come allegato?

    Però, ispirandomi alla tua soluzione ho creato una cosa di questo tipo:
    Nelle colonne di servizio ho nidificato il CERCA.VERT in un SE.ERRORE, come spiegato nel post #13, inserendo un "/" in caso di errore.

    Dopo di che ho creto questo CONCATENA:
    =SE(O(C2=0;D2=0;E2=0);"NO";CONCATENA( SE(C2="/";"";C2);SE(D2="/";"";". "); SE(D2="/";"";D2);SE(E2="/";"";". "); SE(E2="/";"";E2)))
    
    Adesso posso anche provare a nidificare il cerca.vert direttamente nei SE del CONCATENA e togliere le colonne di servizio. La formula rimane comunque piuttosto semplice.

    Grazie a entrambi per i suggerimenti.
    Ultima modifica di Tanzyn; 27-01-2021 13:45 

  7. #17
    Sgrubak ora è in linea Scribacchino
    Quote Originariamente inviato da Tanzyn Visualizza il messaggio
    Però, ispirandomi alla tua soluzione ho creato una cosa di questo tipo:
    Nelle colonne di servizio ho nidificato il CERCA.VERT in un SE.ERRORE, come spiegato nel post #13, inserendo un "/" in caso di errore.
    Ottimo! Lieto di averti aiutato. L'esempio di Giuseppe studialo che lui ha sempre delle ottime idee.
    A mettere la ciliegina sulla torta, ti basta strutturare il CONCATENA così:
    =CONCATENA(C2; SE(VAL.ERRORE(D2);"";". ");SE.ERRORE(D2;"");SE(VAL.ERRORE(E2);"";". ");SE:ERRORE(E2;""))
    
    Che adopera la logica che hai già applicato.
    Come ti dicevo, devi valutare con attenzione se la sostituzione dei CERCA.VERT va a rallentare il ricalcolo del foglio di lavoro.

  8. #18
    Tanzyn non è in linea Novello
    Quote Originariamente inviato da Sgrubak Visualizza il messaggio
    Ottimo! Lieto di averti aiutato. L'esempio di Giuseppe studialo che lui ha sempre delle ottime idee.
    A mettere la ciliegina sulla torta, ti basta strutturare il CONCATENA così:
    =CONCATENA(C2; SE(VAL.ERRORE(D2);"";". ");SE.ERRORE(D2;"");SE(VAL.ERRORE(E2);"";". ");SE:ERRORE(E2;""))
    
    Che adopera la logica che hai già applicato.
    Come ti dicevo, devi valutare con attenzione se la sostituzione dei CERCA.VERT va a rallentare il ricalcolo del foglio di lavoro.
    Sì, in pratica evito il SE.ERRORE nei CERCA.VERT. Dovendo provare a nidificarli e togliere le tre colonne probabilmente questa soluzione è più "elegante".
    La lentezza nel ricalcolo non dipende anche dal computer? Volevo provare anche a metterlo su sharepoint per condividerlo con i colleghi, quindi devo anche valutare se rallenta in quel caso.

    Edit: scusate mi è venuta un'altra idea. Vorrei fare in modo che, se uno o due dei tre CERCA.VERT dà errore, vada a prendere il nome del foglio dove si è verificato e lo inserisca in un CONCATENA. In sostanza creare una risposta del tipo: "Foglio1+Foglio3". Ammesso che esista una funzione che legga il nome del foglio, avete suggerimenti su come poter fare una cosa del genere?
    Ultima modifica di Tanzyn; 27-01-2021 16:16 

  9. #19
    Sgrubak ora è in linea Scribacchino
    Quote Originariamente inviato da Tanzyn Visualizza il messaggio
    scusate mi è venuta un'altra idea. Vorrei fare in modo che, se uno o due dei tre CERCA.VERT dà errore, vada a prendere il nome del foglio dove si è verificato e lo inserisca in un CONCATENA.
    Adatta i SE.ERRORE nella CONCATENA in modo che al posto di una stringa vuota restituisca il nome del foglio, ammesso che tu voglia vedere il risultato sempre nelle stesse celle in cui fai comparire i valori finali.
    Se invece stai usando la soluzione di Giuseppe, ti basta far riportare l'argomento della funzione INDIRETTO.

+ Rispondi al messaggio
Pagina 2 di 2 primaprima 12

Potrebbero interessarti anche ...

  1. Trovare Valori diversi
    Da m0sc4rd0 nel forum Microsoft Access
    Risposte: 8
    Ultimo Post: 13-04-2020, 19:21
  2. Trovare il valore minimo e il valore massimo in un datatable
    Da ettore71 nel forum Visual Basic .Net
    Risposte: 4
    Ultimo Post: 11-02-2017, 00:17
  3. Eseguire codice su fogli diversi
    Da Ssandro nel forum Microsoft Excel
    Risposte: 7
    Ultimo Post: 25-01-2017, 15:24
  4. VBA Conservare valore variabile tra fogli diversi
    Da attila666 nel forum Microsoft Excel
    Risposte: 6
    Ultimo Post: 10-12-2015, 12:13
  5. Risposte: 16
    Ultimo Post: 23-05-2013, 14:19