'ƒtƒBƒ‹ƒ^”͈͗pSUMIFŠÖ”i’ᑬ’ˆÓj ' =MySumIfVisible(ƒŠƒXƒg”͈Í,ŒŸõ”͈̗͂ñ”Ô†,ŒŸõðŒ,‡Œv”͈̗͂ñ”Ô†) Function MySumIfVisible(range1 As Object, field1, value1, sumField) Dim range2 As Range, r As Range Dim a As Double Set range2 = Application.Intersect(range1.Worksheet.UsedRange, range1) If range2 Is Nothing Then Exit Function For Each r In range2.Rows If Not (r.Hidden) Then a = a + Application.SumIf(r.Cells(1, field1), _ value1, r.Cells(1, sumField)) End If Next MySumIfVisible = a End Function 'ƒtƒBƒ‹ƒ^”͈͗pSUMIFŠÖ” ˆê’vðŒ‚Ì‚Ý”Åi’ᑬ’ˆÓj ' =MySumIfVisible2(ƒŠƒXƒg”͈Í,ŒŸõ”͈̗͂ñ”Ô†,ŒŸõðŒ’l,‡Œv”͈̗͂ñ”Ô†) Function MySumIfVisible2(range1 As Object, filed1, value1, sumField) Dim range2 As Range, r As Range Dim a As Double Set range2 = Application.Intersect(range1.Worksheet.UsedRange, range1) If range2 Is Nothing Then Exit Function For Each r In range2.Rows If Not (r.Hidden) Then If r.Cells(1, filed1).Value = value1 Then _ a = a + r.Cells(1, sumField).Value End If Next MySumIfVisible2 = a End Function