Newsgroup: it.comp.appl.access
Titolo: OT: Formula con Excel

 
E' un OT mostruoso, ma ci provo:
 
Ho poca dimistichezza con Excel, e dovrei ottenere in un foglio di calcolo 
un banale Somma(Qta*Prezzo)
Ovviamente <Qta> e <Prezzo> sono due belle colonne...
 
Ho risolto con una funzione personalizzata in Visual Basic che cicla le 
.Cells( ) e calcola, ma cerco una soluzione semplice, nativa che possa usare 
un utente finale.
Idee?
 
Ciao a tutti. 
 
 

Simone Calligaris formulated on Monday :

S'io ho ben la tua raola intesa...
 
Se Qta in A1-down e Prezzo in B1-down,
la formula per il prodotto sarà: =A1 * B1 down.
Ma questo solo se hai poche righe,
ché altrimenti la soluzione VBA è più appropriata.
Però con quel .Cells() non mi figuro niente di eccelso.
Me la faresti vedere?
 
Bruno
 
 

 Me la faresti vedere?
 
 
 
Per chiarire meglio ti esemplifico i dati:
 
      Codice |  Qta  |  Prezzo |
1    xyz       |  4      |   15,30 |
2    xyr       |  17    |   20,00 |
3    bcd      |   8     |   44,87 |
 
Vorrei ottenere il Totale finale, vale a dire la somma di Qta*Prezzo 
(nell'esempio = 760,16)
Per il momento, da vero analfabeta di Excel, ho creato in un modulo la 
funzione:
 
 
Public Function QtaPerPrezzo(ByVal Inizio As Long, ByVal Fine As Long) As 
Currency
 
  Dim N As Long, SommaQtaPerPrezzo As Currency
 
  With Worksheets("Foglio1")
 
        For N = Inizio To Fine
                 SommaQtaPerPrezzo = SommaQtaPerPrezzo + (.Cells(N, 2).Value 
* .Cells(N, 3).Value)
        Next N
 
  End With
 
  QtaPerPrezzo = SommaQtaPerPrezzo
 
End Function
 
 
Poi invocata nel foglio di lavoro:  =QtaPerPrezzo(1;3)
 
Quale alternativa meno arzigogolata suggerisci?
 
Saluti da Simone
 
 
 

 Saluti da Simone
 
Come funzione userei la seguente:
=======================================
Public Function Test1(StartCell As String) As Currency
Dim EndCell As Range, S As Currency, i
 
Set EndCell = Range(StartCell).End(xlDown)
For Each i In Range(Range(StartCell), EndCell)
    S = S + i * i(1, 2)
Next
Test1 = S
 
End Function
============================================
 
Come Formula:
=SUMPRODUCT(B2:B4,C2:C4)
 
Bruno
 
 

 Bruno
 
 
 
Che dire ... GRAZIE Bruno: a buon rendere   ;-)
 
 
 

 ...
 
Ciao Simone,
 
Secondo me per un utente finale il metodo più chiaro
sarebbe di usare un altra colonna per la moltiplicazione
e poi sommare i prodotti. Deve solo scrivere una volta
la formula =x*y, tirarla col mouse su tutte le righe e poi
cliccare sul simbolo della somma.
 
Però è anche possibile con una sola funzione/cella:
 
=MATR.SOMMA.PRODOTTO(C1:C3;D1:D3)
o forse nell'esempio intendi:
=MATR.SOMMA.PRODOTTO(C2:C4;D2:D4)
 
Vedi
http://office.microsoft.com/it-it/excel-help/matr-somma-prodotto-HP005209293.aspx
 
 
-- 
Ciao
Karl
*********
Access FAQ:  
http://www.donkarl.com/it
 
 

 
http://office.microsoft.com/it-it/excel-help/matr-somma-prodotto-HP005209293.aspx
 
 
 
 
Anzitutto grazie Karl,
 
Concordo assolutamente che per un utente finale sia meglio vedere la colonna 
di moltiplicazione.
E infatti era la soluzione adottata in quel foglio di calcolo.
 
Il mio è un fatto personale: ho sempre utilizzato poco Excel e volevo capire 
come implementare quella banalità in modo semplice.
La funzione MATR.SOMMA.PRODOTTO, come già suggeriva (nella versione English) 
Bruno Campanini, è perfetta.
 
Saluti da Simone
 
 
 

 ...
 
Oops, vedevo solo codice nel suo post...
Ammetto subito che ha vinto lui per evitare ogni inconveniente.
 
-- 
:-)


 Ammetto subito che ha vinto lui per evitare ogni inconveniente.
 
Ma quale vittoria Karl, quale inconveniente?
 
Mi fai solo una grande invidia... vorrei conoscere
la tua lingua come tu conosci la mia!
 
Ciao
Bruno