Addizione con condizioni



  • Addizione con condizioni
    di mikele(1985) (utente non iscritto) data: 18/04/2013 08:17:29

    ciao a tutti, avrei bisogno di una mano per un'operazione di somma un tantino complessa..spero possiate aiutarmi.
    Devo sommare i valori di un intervallo a queste condizioni:
    se la cella è vuota deve sommare il numero 7,6
    se la cella contiene un testo deve sommare il numero 0
    se la cella contiene un numero lo deve sommare a il numero 7.6 al numero scritto

    es.
    A1 =
    A2 = ciao
    A3 = 1

    Totale = 16.2 cioè (7.6)+(0)+(1+7.6) = 16.2

    Spero di essere stato chiaro....
    Grazie



  • di Vecchio Frac data: 18/04/2013 08:58:19

    Hai descritto perfettamente i passi necessari mediante un corretto pseudocodice.
    Ora non ti resta che tradurlo in VBA con una breve sequenza For e un piccolo test If doppio.





  • di totygno71 data: 18/04/2013 09:27:09

    @ Michele...
    scusa la curistà... ma è un compito per scuola???



  • di Vecchio Frac data: 18/04/2013 09:29:03

    totygno mi stupisci... la tua perspicacia sta raggiungendo livelli aulici ^_^
    (secondo me sì... è un compito scolastico ed un utile esercizio)





  • di totygno71 data: 18/04/2013 09:37:02

    Mjjj meno male.....
    stavo per postare la soluzione comprensiva di "PULSANTONE" ^_^ (faccina sorridente)



  • di Vecchio Frac data: 18/04/2013 09:39:10

    Io ho appena scritto almeno due soluzioni diverse tra loro, con approcci diversi, e funzionanti ^_^





  • di totygno71 data: 18/04/2013 09:44:25

    Secondo me mancano di pulsantone U_U
    Comunque la data affianco al nick tipo mikele1985 è lesivo della privacy degli utenti ^_^



  • di Vecchio Frac data: 18/04/2013 09:50:08

    La seconda soluzione non usa nessun ciclo For... ed è molte volte più veloce (su cinquantamila righe, 3 centesimi contro cinque decimi della prima soluzione)





  • di Vecchio Frac data: 18/04/2013 09:52:02

    Magari non è la data di nascita ma di fidanzamento ^_^
    ...se mi metti un altro pulsantone a stellona non apro neanche :o)





  • di Mister_x (utente non iscritto) data: 18/04/2013 10:13:22

    ciao
    vecchio frac, totygno,
    stavo anch'io per dare la risposta senza l'utilizzo di VB ma con le funzioni di excel, quando ho letto del vostro intervento dicendo che forse era in ambito scolastico.
    comunque voglio dare uno spunto al nostro mikele di quali funzioni in sequenza deve utilizzare senza mettere i parametri di ricerca e calcolo

    nel suo caso per la somma in A4
    =Matr.somma.prodotto()+Matr.somma.prodotto()+conta.se()*7,6

    quindi rimaniamo sempre in attesa di sviluppi da parte di mikele prima di postare il file di prova con la funzione senza l'usilio di VBA

    ciao da Mister_x





  • di Vecchio Frac data: 18/04/2013 10:17:23

    Ciao mister_x,
    la tua competenza con le formule è sempre un valore aggiunto che mi aspetto puntualmente e di cui sono molto contento perchè io non le padroneggio molto bene :)
    Sono d'accordo anch'io di restare un attimo in sospeso e di condividere successivamente le nostre soluzioni.





  • di mikele(1985) (utente non iscritto) data: 18/04/2013 10:53:05

    ciao,
    innanzitutto grazie mille a tutti per l'attenzione.
    In realtà non è un compito in classe ma una cosa che mi serve per controllare dei dati al lavoro...
    Non ho molta dimestichezza con le formule perciò chiedo a Mister_X , se possibile, di scrivere la formula completa....altrimenti potrei impazzire

    grazie ancora a tutti



  • di mikele(1985) (utente non iscritto) data: 18/04/2013 11:31:33

    ci siamo quasi....

    siamo arrivati a questa formula


    =MATR.SOMMA.PRODOTTO(--(A1:A3="")*7,6)+SOMMA(A1:A3)+MATR.SOMMA.PRODOTTO(--(VAL.NUMERO(A1:A3)=VERO)*7,6)


    ora però, c'è una complicazione:
    queste somme dovrebbero subire un ulteriore controllo:

    A1 = B1= Mario
    A2 = ciao B2= Mario
    A3 = 1 B3= Carlo

    A4=Mario B4=7.6
    A5=Carlo B5=8.6


    praticamente mi serve dividere il valore totale delle somme da A1 ad A3 imputandole ad una od un'altr persona a seconda di cioò che è riportato nelle celle B1,B2 e B3 opportunamente confrontate con A4 e A5
    In questo caso , il totale per Mario è 7.6 perchè somma solo A1 e A2 e lo fa perchè prende a riferimento la cella A4


    che ne pensate?



  • di Vecchio Frac data: 18/04/2013 11:31:54

    cit. " chiedo a Mister_X , se possibile, di scrivere la formula completa"
    ---> uff... formulas vs VBA : 1-0
    .
    .
    .






  • di totygno71 data: 18/04/2013 12:21:05

    W VBA M formule!!!! ^_^



  • di Mister_x (utente non iscritto) data: 18/04/2013 13:21:01

    ciao

    sperando che mikele abbia la versione di excel 2007 o sup. la formula che mi e' scaturita e' questa dato che per il confronto di valori ho dovuto utilizzare la funzione CONTA.PIU.SE() , la quale nelle versini precedenti non e' contemplata e MATR.SOMMA.PRODOTTO() in quel caso mi dava un errore di #VALORE
    PS esiste sempre il VBA, problemi 0
    in B4 e poi trascinato
    =MATR.SOMMA.PRODOTTO((B$1:B$3=A4)*(A$1:A$3="")*7,6)+SOMMA.SE(B$1:B$3;A4;A$1:A$3)+CONTA.PIÙ.SE(B$1:B$3;A4;A$1:A$3;">0")*7,6

    Mario
    ciao Mario
    1 Carlo
    Mario 7,6
    Carlo 8,6

    ciao da Mister_x

    PS sarebbe buona cosa sempre allegare la versione di excel che si utilizza per una risposta mirata




  • Addizione con condizioni
    di mikele(1985) (utente non iscritto) data: 22/04/2013 15:23:39



    Grazie mille per l'impegno e la pazienza.
    Un sola cosa, funziona tutto ma non per valori negativi

    se si può risolvere va bene altrimenti...non so


  • Addizione con condizioni
    di mikele(1985) (utente non iscritto) data: 22/04/2013 15:24:11



    Grazie mille per l'impegno e la pazienza.
    Un sola cosa, funziona tutto ma non per valori negativi

    se si può risolvere va bene altrimenti...non so



  • di Mister_x (utente non iscritto) data: 22/04/2013 16:11:33

    ciao

    penso che la tua richiesta sia nel caso che carlo al posto di avere un numero positivo abbia un numero negativo
    quindi ammettendo che carlo adesso a un valore di 1 e il risultato e' che abbiamo 8,6
    se carlo ha un -1 il suo valore di corrispondenza sarebbe di 6,6
    se e' questo che intendi per valore negativo la formula cambia in questo senso

    in B4=MATR.SOMMA.PRODOTTO((B$1:B$3=A4)*(A$1:A$3="")*7,6)+SOMMA.SE(B$1:B$3;A4;A$1:A$3)+MATR.SOMMA.PRODOTTO((B$1:B$3=A4)*(A$1:A$3<>0))*7,6

    Mario
    ciao Mario
    -1 Carlo
    Mario 15,2
    Carlo 6,6

    ciao da Mister_x

     
    B4=MATR.SOMMA.PRODOTTO((B$1:B$3=A4)*(A$1:A$3="")*7,6)+SOMMA.SE(B$1:B$3;A4;A$1:A$3)+MATR.SOMMA.PRODOTTO((B$1:B$3=A4)*(A$1:A$3<>0))*7,6





  • Addizione con condizioni
    di mikele(1985) (utente non iscritto) data: 22/04/2013 16:41:18

    provato, con i valori negativi funziona solo per "carlo" infatti 6.6 è corretto.
    Per "mario", inserendo "-1" in A1 dovremmo avere solo 6.6

    A1 = -1 B1= Mario
    A2 = ciao B2= Mario
    A3 = -1 B3= Carlo

    A4=Mario B4=6.6
    A5=Carlo B5=6.6



  • di Mister_x (utente non iscritto) data: 23/04/2013 09:51:40

    ciao

    la formula in questo caso, non avendo a disposizione valori diversi da quelli gia' passati, va modifificata in questo modo

    B4=MATR.SOMMA.PRODOTTO((B$1:B$3=A4)*(A$1:A$3="")*7,6)+SOMMA.SE(B$1:B$3;A4;A$1:A$3)+MATR.SOMMA.PRODOTTO((B$1:B$3=A4)*(VAL.NUMERO(A$1:A$3)=VERO))*7,6

    e trascinata

    -1 Mario
    ciao Mario
    -1 Carlo
    Mario 6,6
    Carlo 6,6

    ciao da Mister_x
     
    =MATR.SOMMA.PRODOTTO((B$1:B$3=A4)*(A$1:A$3="")*7,6)+SOMMA.SE(B$1:B$3;A4;A$1:A$3)+MATR.SOMMA.PRODOTTO((B$1:B$3=A4)*(VAL.NUMERO(A$1:A$3)=VERO))*7,6





  • Addizione con condizioni
    di mikele(1985) (utente non iscritto) data: 23/04/2013 11:16:48

    ottimo!
    grazie mille!!!!! sei stato gentilissimo e sopratutto pazientissimo!
    ti devo un caffè...almeno..