J'essaie de me frayer un chemin dans certains scripts VBA. J'ai trouvé ce code en ligne qui permet à une fonction SumIf de se produire lorsqu'une seule condition est remplie. Je voudrais l'élargir à deux peut-être trois conditions.
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
Pour clarifier, je voudrais répondre à plusieurs conditions dans plusieurs gammes . Ie condition1 dans la plage D2: D200 et la condition2 et la condition 3 dans la plage H2: H200 .
En outre, les plages peuvent avoir des valeurs partiellement différentes dans le sens spécifique, mais remplissent la condition de manière globale, c.-à-d. Condition1 = "Jan", la plage D2: D200 contient des dates telles que "1er janvier, 2 janvier, 3 janvier", etc. Toutes les dates dans le "" répondre à la condition. SUMIFS ne permet pas une sélection de chaîne tronquée pour les valeurs de cellule. Ie sélectionne chaque ligne qui a "Jan" même si elle contient d'autres valeurs comme "1,2,3"
S'il vous plaît aider!
la source
SUMIFS()
?SUBTOTAL
fonction dans Excel? Il peut ignorer les valeurs cachées et peut être associéSUMPRODUCT
à la création de votre addition conditionnelle pour les lignes visibles uniquement. Cela peut éliminer le besoin de votre FDU.Réponses:
En supposant que vos données contiennent du texte et non des dates formatées
d-mmm
, ceci devrait vous aider à démarrer:Ou si vous avez des dates réelles:
B1: B2 est la plage à additionner et A1: A2 est la plage de critères.
Notez que
SUMIFS()
comprend les lignes cachées, donc si l' exclusion de cellules cachées fait partie de vos critères dont vous aurez besoinSUBTOTAL()
ouAGGREGATE()
comme mentionné ci - dessus.la source