Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Excel - Coordinate, fascia, valori, riferimenti.

    Ciao a tutti, ho una piccola cosa da chiedere su Excel. Riporterò direttamente la mia questione per far capire meglio il problema. Ho una matrice, su una colonna ci sono dei valori, su quella adiacente ci sono le persone associate ai valori.
    Io voglio creare delle fasce, dunque voglio mettere in una cella un valore, e in un'altra un altro valore, e voglio avere la somma delle persone dal primo valore all'ultimo. Sono riuscito ad ottenere solo le persone associate al primo valore + le persone associate all'ultimo valore. Come faccio ad aggiungere quelle associate ai valori intermedi?

  2. #2
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,686
    Ciao e benvenuto.
    Non capisco bene come è configurata la cosa ma ti chiedo se puoi utilizzare un semplice filtro su una selezione di celle. In tal caso, una volta attivato il filtro per quelle due colonne, puoi filtrare la colonna dei valori utilizzando l'opzione "Filtra per numeri > Tra...". A quel punto ti si aprirà una finestrella dove impostare i due valori limite, ed eventuali altre impostazioni.

    Ora la questione è: sai usare lo strumento filtro? In tal caso, può andare bene come soluzione?

    Diversamente dovresti chiarire meglio il contesto del tuo progetto, così da capire meglio quali eventuali soluzioni possano essere più adatte.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  3. #3
    Non la conoscevo, ma non sembra andare. Ripeto il mio problema in maniera più specifica. Supponiamo che ci siano persone con reddito tra 1001 e 2000, altre fra 2001 e 3000, e così via. Metto in una colonna questi valori [1000,2000,3000,...,70000]. Nella colonna adiacente metto le persone con reddito tra 1001 e 2000, tra 2001 e 3000 e così via, dunque la seconda colonna è [1212,499,512,...,n]. Quindi data questa matrice A, il numero A(1,1) = 1212 mi dice che queste persone hanno reddito tra 1001 e 2000. Ora io voglio scrivere in una cella un valore qualsiasi della prima colonna ad es. 1000, e in un'altra cella voglio scriverne un altro, ad esempio 3000. Voglio una maniera con la quale Excel mi restituisca la somma delle persone con reddito tra 1001 e 3000, dunque 1212+499+512. Ovviamente il tutto deve essere variabile. Con la funzione CERCA riesco a ricavarmi solo i valori agli estremi dell'intervallo di persone, in questo esempio riesco a ricavarmi 1212 e 512, ma non riesco a trovare un modo per farmi dare quello intermedio.

  4. #4
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,686
    Non avevo capito ti servisse fare la somma matematica, pensavo volessi semplicemente ottenere tutti i valori compresi tra i due limiti.

    Continuo però a fare fatica nel cercare di capire la situazione che hai descritto nell'ultimo post. Non riesco a capire bene la relazione tra la prima colonna [1000,2000,3000,...,70000] e la seconda [1212,499,512,...,n].. perdonami ma sono a corto di comprendonio.

    Ad ogni modo, sempre che abbia capito quale sia l'obiettivo, provo a darti una soluzione.

    Segui questi passi:

    - colonna A: supponiamo ci sia la lista di valori

    - cella D2: la nomini come "min" e sarà la cella in cui inserire il valore minimo

    - cella E2: la nomini come "max" e sarà la cella dove inserire il valore massimo

    - colonna B: sulla prima cella inserisci la formula =SE(E(A:A>=min;A:A<=max);A:A) quindi estendi la cella verso il basso fino a comprendere l'ultimo valore in riferimento alla colonna A, in modo che quella formula sia riportata per l'intera colonna fin dove ti serve.

    - cella D5: inserisci la formula =SOMMA(B:B)

    La struttura (con le formule) sarà quindi una cosa del genere:

    A
    B
    C
    D
    E
    1
    1234 =SE(E(A:A>=min;A:A<=max);A:A) min
    max
    2
    345 =SE(E(A:A>=min;A:A<=max);A:A) 1000 2000
    3
    1300 =SE(E(A:A>=min;A:A<=max);A:A)
    4
    3400 =SE(E(A:A>=min;A:A<=max);A:A) somma
    5
    6700 =SE(E(A:A>=min;A:A<=max);A:A) =SOMMA(B:B)
    6
    5600 =SE(E(A:A>=min;A:A<=max);A:A)
    7
    560 =SE(E(A:A>=min;A:A<=max);A:A)
    8
    1800 =SE(E(A:A>=min;A:A<=max);A:A)
    9
    1000 =SE(E(A:A>=min;A:A<=max);A:A)

    Ribadisco che dovrai nominare le due celle in cui inserire i due limiti. Questo per semplificare la stesura delle formule. Se ti serve sapere come si nominano le celle, vedi qui.

    Il risultato sarà una cosa del genere:
    A
    B
    C
    D
    E
    1
    1234 1234 min
    max
    2
    345 FALSO 1000 2000
    3
    1300 1300
    4
    3400 FALSO somma
    5
    6700 FALSO 5334
    6
    5600 FALSO
    7
    560 FALSO
    8
    1800 1800
    9
    1000 1000

    Ovviamente potrai rendere nascosta la colonna B.

    Spero di aver compreso il tuo intento. Se non è così, prova a rispondere usando la "Modalità avanzata" dell'editor e formulare un esempio concreto con una tabella come ho fatto su questo post.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  5. #5
    Ti sei avvicinato moltissimo, ma mi manca il passaggio più importante. Scusami se mi sono spiegato male.

    A B C D E
    1000 1212 1000 3000 2243
    2000 499 1000 4000 2366
    3000 532 3000 4000 655
    4000 123

    Allora. Io ho le due colonne A e B. Se in una cella come C1 metto un valore e D1 metto un altro valore, voglio la somma da B1 a B3, perché i valori da A1 a A3 sono compresi tra il valore in C1 e il valore in D1. Infatti E1 = B1 + B2 + B3. Invece E2 = B1 + B2 + B3 + B4. E così via.
    Sostanzialmente dovrebbe essere una cosa del tipo IF Ai<=D1 && Ai>=C1 THEN sum = sum + Bi. Questo farei in C++ o in altri linguaggi, dove i varia da 0 a 4 e sum parte da 0. Spero che ora sia più chiaro, scusami per la mia incapacità di esporre il problema.

  6. #6
    Sono riuscito a farlo tramite il tuo aiuto, cambiando il codice =SE(E(A:A>=min;A:A<=max);A:A) con =SE(E(A:A>=min;A:A<=max);B:B), lascio comunque la risposta precedente nel caso possa servire ai posteri.

  7. #7
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,686
    Ora ho capito... col disegnino ci sono arrivato

    Sono riuscito a farlo tramite il tuo aiuto, cambiando il codice =SE(E(A:A>=min;A:A<=max);A:A) con =SE(E(A:A>=min;A:A<=max);B:B), lascio comunque la risposta precedente nel caso possa servire ai posteri.
    Bene, certo, basterà riempire una terza colonna con quella formula, così come da te modificata, e da lì ci si va a recuperare i valori filtrati per poi sommarli. Tutto chiaro

    Buon proseguimento


    EDIT: ..ci stavo ragionando. In realtà per ogni coppia di valori (min, max) ti servirà una nuova colonna dove mettere la formula adattata per la relativa coppia di valori... era giusto una riflessione dell'unaeventi
    Ultima modifica di KillerWorm; 16-05-2016 a 01:17
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  8. #8
    Esatto, potrei farmi una macro, no?

  9. #9
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,686
    No, nel delirio delle dueunquarto ti do un'altra soluzione più ottimale, senza bisogno di inserire ulteriori colonne ma usando la funzione SCARTO().

    Partiamo dal presupposto che nella colonna A i valori siano in ordine crescente e che per i valori min e max sia possibile inserire solo i valori presenti nella colonna A (cosa che puoi comunque controllare impostando la "Convalida dati" per quelle celle).

    A questo punto prendiamo l'ultima tabella da te postata. Lasciamo perdere le celle nominate e usiamo semplicemente i riferimenti C:C per considerare i valori minimi e D:D per quelli massimi.

    Nella prima cella della colonna E inserisci questa formula, che fa tutto il lavoro:
    codice:
    =SOMMA(SCARTO(B:B;CONFRONTA(C:C;A:A;0)-1;0;CONFRONTA(D:D;A:A;0)-CONFRONTA(C:C;A:A;0)+1;1))
    Ora non ti resta che espanderla verso il basso fin dove ti serve, fin dove hai scritto le varie coppie min e max.

    Fai qualche controllo per verificare che i calcoli siano corretti.
    Se poi hai bisogno ti spiego cosa fa questa formula.
    Ultima modifica di KillerWorm; 16-05-2016 a 02:16
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  10. #10
    Avevo risolto facendo una macro che mi copiasse il contenuto di una cella di una colonna per 80 celle successive sulla stessa colonna. E facendo manualmente i cambi con i vari min_i e max_i. Ho provato il tuo codice, che domani mattina studierò meglio, e devo dire che funziona fino a quando i valori di A non cambiano il loro incremento e passano da +1000 a +5000. Da A1 ad A2 c'è una differenza di 1000, tra A64 e A65 c'è una differenza di 5000. Da lì infatti non mi da nessun valore.

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.