Funzione per selezione variabile di celle



  • Funzione per selezione variabile di celle
    di Ciano (utente non iscritto) data: 11/01/2018 15:17:59

    Buongiorno,
    una info, in quanto ho cercato anche su web ma con esiti negativi e cerco di spiegare brevemente:

    in una parte del foglio ho la funzione matricale per recuperare i dati univoci di una serie di celle in servizio ad un convalida dati
    =SE.ERRORE(INDICE($U$3582:$U$3600;CONFRONTA(0;INDICE(CONTA.SE($AZ$3581:AZ3581;$U$3582:$U$3600&""););0));"")

    siccome la colonna "U" verrebbe sempre implementata con dei valori (normalmente non numerici), anziché avere il campo fisso ""$U$3582:$U$3600" è possibile con una funzione avere l'inizio fisso e la fine del campo variabile fino all'ultimo dato inserito?

    Questo senza l'ausilio di una casella combinata (in quanto la tendina l'ho su tutte le celle a scendere sempre sulla colonna "U") e senza ausilio del VBA in quanto lo stesso foglio è usato per diversi anni e per ogni anno vorrei mantenere i valori separati... ammenochè non vi siano alternative.

    se non fosse possibile, continuo ancora con gli estremi del campo fissi, devo solo ricordarmi che quando arrivo al limite inferiore dovrò implementare il campo nei dati univoci con il numero di righe aggiuntive.

    spero di essermi spiegato
    grazie mille
    Ciano



  • di Luca73 data: 11/01/2018 16:01:21

    Cosa hai dopo la riga 3600....
    potresti pensare di usare come limite inferiore una riga molto piu bassa?
    Altrimenti dovresti pensare a contare le celle dopo la riga 3582 e usare la funzione scarto.

    Non conoscendo il problema e non avendo a disposizione un file risulta difficile, per me, darti ulteriori indicazioni.

    Ciao
    Luca






  • di Ciano (utente non iscritto) data: 11/01/2018 16:32:43

    hai perfettamente ragione Luca,
    scusa ora ho allegato un file esempio, sotto ho tutto vuoto

    ciao
    Ciano



  • di Dan1 (utente non iscritto) data: 11/01/2018 21:39:50

    Buonasera
    in convalida dati metti questa formula

    =SCARTO(AZ3582;;;MATR.SOMMA.PRODOTTO(--($AZ$3582:$AZ$3604<>"")))



  • di Ciano (utente non iscritto) data: 11/01/2018 21:53:58

    grazie Dan .... effettivamente non avevo pensato di torgliere gli spazi, in quanto sfruttavo anche la compilazione automatica nella colonna "U". Ora non ho il file con me.... domani mattina la metto subito in atto. Grazie mille.
    Quello che mi premeva ora, era l'eventuale soluzione per allungare il campo nella "funzione matricale" all'aumentare dei dati inseriti nella colonna "U".

    buona serata
    Ciano



  • di Dan1 (utente non iscritto) data: 11/01/2018 22:07:29

    Ciao
    scrivendo ho dimenticato di mettere il rif assoluto alla cella di partenza quindi

    =SCARTO($AZ$3582;;;MATR.SOMMA.PRODOTTO(--($AZ$3582:$AZ$3604<>"")))



  • di Ciano (utente non iscritto) data: 12/01/2018 08:59:03

    Ok Dan ... grazie ancora, la tua stringa funge benissimo;
    a questo punto ho variato la funzione matricale
    da: =SE.ERRORE(INDICE($U$3582:$U$3600;CONFRONTA(0;INDICE(CONTA.SE($AZ$3581:AZ3581;$U$3582:$U$3600&""););0));"")

    a: =SE.ERRORE(INDICE($U$3582:$U$3600;CONFRONTA(0;CONTA.SE($U$3582:$U$3600;"<"&$U$3582:$U$3600)-SOMMA(CONTA.SE($U$3582:$U$3600;AZ$3581:AZ3581));0));"")

    in questo modo almeno avrò il convalida dati in ordine alfabetico

    buona giornata
    Ciano



  • di Ciano (utente non iscritto) data: 12/01/2018 16:42:44

    Giorno a tutti
    ho trovato un palliativo e mi piacerebbe avere anche un vostro parere;
    siccome la colonna "A" viene aumentata all'occorrenza ho assegnato al range "A3582:A35xx" il nome NUM
    in zona neutra "BB3582" ho ricavato il numero dei valori del range NUM

    a questo punto ho modificato la funzione matricale con questa intestazione
    =SE.ERRORE(INDICE(SCARTO($U$3582; 0; 0; $BB$3582; 1);CONFRONTA(0;CONTA.SE(SCARTO($U$3582; 0; 0; $BB$3582; 1);"<"&SCARTO($U$3582; 0; 0; $BB$3582; 1))-SOMMA(CONTA.SE(SCARTO($U$3582; 0; 0; $BB$3582; 1);AZ$3581:AZ3581));0));"")

    praticamente vado ad assegnare un range variabile partendo dalla cella "U3582" e scendendo di tante righe quanto è il valore in "BB3582"

    mi sembra che funzioni, dovrò testarlo per bene

    allego anche il file con tutte le modifiche per eventuale vostra verifica
    grazie mille a tutti

    Ciano



  • di Ciano (utente non iscritto) data: 13/01/2018 09:16:17

    Raga ... scusate ancora, mi serve vostro aiuto
    navigando nell'web ho trovato anche questa formula:
    =SOMMA(INDIRETTO("R1C1:R1C"&C7;0))

    lavora con riferimenti relativi e non assoluti; somma una serie di celle con colonne variabili di un dato numero.
    Ho capito che la formula lavora dalla prima cella "A1" (e la si potrebbe anche modificare) e proseguendo sulla prima riga "R1" raggiunge il limite di colonne "C" con il numero in "C7".
    Fino a qua tutto bene ma ....
    ho fatto delle prove e non riesco a convertire la formula in modo che faccia la somma in Verticale (con righe variabili) anziche in orizzontale, sempre mantenedo la stessa struttura con riferimenti relativi.

    mi aiutate cortesemente?
    grazie mille
    Ciano



  • di Albatros54 data: 13/01/2018 11:12:53

    Prova cosi

    =SOMMA(INDIRETTO("R1C1:R"&C7&"C1";0))

    ciao
    albatros54





  • di Ciano (utente non iscritto) data: 13/01/2018 11:23:20

    Ok ... grazie mille ... funge
    sbagliavo nell'inserimento delle "&" e sono andato in palla ..... non ci sono arrivato al: &"C1"

    metto la risoluzione della discussione
    per ora mi arrangio con quello che ho trovato, se dovesse servirmi altro ci risentiamo...ahahah

    grazie a tutti

    Ciano



  • di Ciano (utente non iscritto) data: 13/01/2018 11:24:36

    non ha funzionato qualcosa nella spulcia, riprovo con la spunta a discussione risolta