Condividi tramite

matrice somma prodotto in vba

Anonimo
2017-10-22T20:38:05+00:00

buonasera

ho un problema con la formula in oggetto; la sintassi che ho provato è la seguente:

x= = Evaluate("=sumproduct(--(range(cells(2,4).address & "":"" & cells(var3,4).address), =""PH"")&--(range(cells(2,6).address & "":"" cells(var3,6.address), <>""PH"")");

mi restituisce #valore come risultato, c'è un' errore nella mia sintassi?

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2017-10-22T23:36:57+00:00

Ciai ringhio1975,

ho un problema con la formula in oggetto; la sintassi che ho provato è la seguente:

x= = Evaluate("=sumproduct(--(range(cells(2,4).address & "":"" & cells(var3,4).address), =""PH"")&--(range(cells(2,6).address & "":"" cells(var3,6.address), <>""PH"")");

mi restituisce #valore come risultato, c'è un' errore nella mia sintassi?

Credo che talvolta valga la pena essere verboso e rende la vita più semplice! 

Quindi, prova qualcosa del genere:

'=========>>

Option Explicit

'--------->>

Public Sub Tester()

    Dim SH As Worksheet

    Dim Rng1 As Range, Rng2 As Range

    Dim X As Variant

    Dim sAdd1 As String, sAdd2 As String

    Dim sStr As String

    Const sFoglio As String = "Foglio1"

    Const DQUOTE = """"      ' \ Un carattere "

    Const sCriterio As String = "PH"

    Const var3 = 8'\ ad esempio

    Set SH = ThisWorkbook.Sheets(sFoglio)

    With SH

        Set Rng1 = .Range(.Cells(2, 4), .Cells(var3, 4))

        Set Rng2 = .Range(.Cells(2, 6), .Cells(var3, 6))

    End With

    sAdd1 = Rng1.Address

    sAdd2 = Rng2.Address

     sStr = "=SUMPRODUCT(--(" & sAdd1 & "=" _

           & DQUOTE & sCriterio & DQUOTE _

           & "),--(" & sAdd2 & "=" _

           & DQUOTE & sCriterio & DQUOTE & "))"

    X = Evaluate(sStr)    

End Sub

'<<=========

Nota che, per evitare eventuali problemi dovuto a quale foglio dovesse essere attivo, ho esplicitamente qualificato tutti gli intervalli.

===

Regards,

Norman

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

1 risposta aggiuntiva

Ordina per: Più utili
  1. Anonimo
    2017-10-22T22:15:51+00:00

    Ciao,

    non è che magari tu volessi ottenere qualcosa del genere?

    Evaluate("=SUMPRODUCT(--(" & Range(Cells(2, 4), Cells(var3, 4)).Address & "=""PH""),--(" & Range(Cells(2, 6), Cells(var3, 6)).Address & "<>""PH""))")

    La risposta è stata utile?

    0 commenti Nessun commento