인접 셀의 서식을 기반으로 합산 (Microsoft Excel)
Srinivas는 A 열과 B 열 모두에 데이터가 있습니다. B 열의 값을 합산해야합니다. A 열에있는 해당 셀의 셀 형식이 노란색입니다. 예를 들어 A17 셀의 형식이 노란색이면 B17 셀의 값이 합계에 포함되어야합니다.
인터넷 (ExcelTips 포함)에는 셀의 색상 또는 기타 형식을 기반으로 조건부 합산을 수행 할 수있는 수많은 매크로가 있습니다. 그러나이 요구는 문제가되는 셀의 색상이 아니라 왼쪽에있는 셀의 색상이라는 점에서 다릅니다. 이것은 다음과 같이 매크로를 사용하여 수행 할 수 있습니다.
Function SumNextYellow(ByVal r As Range) Dim c As Range Dim a As Double For Each c In r If c.Offset(0, -1).Interior.ColorIndex = 6 Then 'Yellow a = a + c.Value End If Next c SumNextYellow = a End Function
이 함수는 워크 시트 수식에서 사용할 수 있으며 범위 참조를 인수로받습니다. 그런 다음 범위의 각 셀을 단계별로 이동하고 왼쪽에있는 셀이 노란색이면 값이 합계에 포함됩니다. (매크로에 사용 된 ColorIndex는 적용 가능한지 확인하기 위해 Excel 버전에서 테스트해야합니다. 버전에 따라 다를 수 있습니다.)
훨씬 더 강력한 예제가 다음 목록에 나와 있습니다. 이 함수는 사용할 서식의 샘플을 나타내는 인수와 함께 하나 이상의 셀 범위를 허용합니다.
Function ColorConditionSum(cSample As Excel.Range, rng As Excel.Range) ' This Function returns sum of values in rng.Columns(2) if ' corresponding cell in rng.Columns(1) is colored with sample ' color (cSample cell) ' Arguments: cSample = cell colored by sample color ' rng = cell range to be processed (2 columns) Dim rngCol2 As Excel.Range Dim rngConstants As Excel.Range Dim rngFormulas As Excel.Range Dim lColorIndex As Long Dim MySum As Double Dim area As Excel.Range Dim c As Excel.Range ColorConditionSum = False If Not TypeOf cSample Is Excel.Range Then Exit Function '>>> lColorIndex = cSample.Interior.ColorIndex MySum = 0 Set rngCol2 = Nothing If TypeOf rng Is Excel.Range Then If rng.Columns.Count < 2 Then Exit Function '>>> On Error Resume Next For Each area In rng.Areas If rngCol2 Is Nothing Then Set rngCol2 = area.Columns(2).SpecialCells(xlCellTypeConstants, 1) If rngCol2 Is Nothing Then Set rngCol2 = area.Columns(2).SpecialCells(xlCellTypeFormulas, 1) Else Set rngCol2 = Application.Union( _ rngCol2, area.Columns(2).SpecialCells(xlCellTypeFormulas, 1)) End If Else Set rngCol2 = Application.Union( _ rngCol2, area.Columns(2).SpecialCells(xlCellTypeConstants, 1)) Set rngCol2 = Application.Union( _ rngCol2, area.Columns(2).SpecialCells(xlCellTypeFormulas, 1)) End If Next area For Each area In rngCol2.Areas For Each c In area.Cells With c.Offset(0, -1) If .Interior.ColorIndex = lColorIndex Then MySum = MySum + c.Value End If End With Next c Next area End If ColorConditionSum = MySum End Function
워크 시트에서 다음과 같은 방식으로이 함수를 사용합니다.
=ColorConditionSum(A10, A12:B22)
이 경우은 일치하려는 내부 색상이있는 셀이고 A12 : B22는 평가할 셀 범위입니다. 범위의 두 번째 열에서 값을 가져오고 첫 번째 열의 셀에서 서식을 확인합니다.
_ 참고 : _
이 페이지 (또는 ExcelTips 사이트의 다른 페이지)에 설명 된 매크로를 사용하는 방법을 알고 싶다면 유용한 정보가 포함 된 특별 페이지를 준비했습니다.
link : / excelribbon-ExcelTipsMacros [새 브라우저 탭에서 특별 페이지를 열려면 여기를 클릭하세요]
.
_ExcelTips_는 비용 효율적인 Microsoft Excel 교육을위한 소스입니다.
이 팁 (3298)은 Microsoft Excel 97, 2000, 2002 및 2003에 적용됩니다. 여기에서 Excel (Excel 2007 이상)의 리본 인터페이스에 대한이 팁의 버전을 찾을 수 있습니다.
link : / excelribbon-Summing_Based_on_Formatting_in_Adjacent_Cells [인접 셀의 서식에 따라 합산]
.