Código VBA para instrução SUMIF - Necessidade de criar condições adicionais

0

Estou tentando passar por alguns scripts do VBA. Eu encontrei este código on-line que permite que uma função SumIf ocorra quando uma condição única é atendida. Eu gostaria de expandi-lo para duas ou três condições.

    Function SumIfVisible(rng As Range, condition, rngSum As Range) As Double  
Dim i As Long
 For i = 1 To rngSum.Count

If rng(i) = condition And rngSum(i).EntireRow.Hidden = False Then
  SumIfVisible = SumIfVisible + rngSum(i)
End If
 Next I
End Function

Para esclarecer, gostaria de conhecer várias condições em vários intervalos . Ou seja Condição1 no intervalo D2: D200 e condição2 e condição 3 em intervalo H2: H200 .

Além disso, os intervalos podem ter valores parciais diferentes no sentido específico, mas atendem à condição holisticamente, ou seja, condition1="Jan", intervalo D2: D200 contém datas como "1-Jan , 2-Jan, 3-Jan "etc. Todas as datas no" "atendem à condição. SUMIFS não permitem uma seleção de cadeia truncada para valores de célula. Ou seja selecione cada linha que tenha "Jan", mesmo que contenha outros valores como "1,2,3"

Por favor, ajude!

    
por clearguise 25.01.2016 / 08:37

1 resposta

0

Supondo que seus dados contenham texto e não datas formatadas para parecerem com d-mmm , isso deve ajudá-lo a começar:

=SUMIFS(B1:B2,A1:A2,"*Jan")

Ou se você tiver datas reais:

=SUMIFS(B1:B2,A1:A2,">=1/1/2016",A1:A2,"<=1/31/2016")

B1: B2 é o intervalo para somar e A1: A2 é o intervalo de critérios.

Tenha em atenção que SUMIFS() inclui linhas ocultas, pelo que, se excluir as células ocultas fizer parte dos seus critérios, necessitará de SUBTOTAL() ou AGGREGATE() , conforme mencionado acima.

    
por 26.01.2016 / 15:23