내 시간표인 Excel 스프레드시트가 있습니다. 이는 거의 항상 연결된 셀인 몇 가지 작업이 있다는 것을 의미하며 때로는 20개의 셀을 연결하고 때로는 2개만 연결합니다.예
모든 셀은 1시간이므로 무게가 측정된 셀 수를 세고 싶었습니다. 즉, 셀 마녀가 단 하나의 셀인 경우 하나로 계산되고, 3개가 연결되어 있으면 3으로 계산됩니다. 따라서 예시 그림에서 셀 개수는 S1:3, S2:4, S3입니다. 2, 구절4:6
오랫동안 검색했지만 문제를 해결하는 기능을 찾지 못했습니다. 내가 찾은 최고는 이지만 =countif(B4:H19, "Subject1")
여기서는 세 개의 연결된 셀을 기반으로 하는 셀이 하나로 계산됩니다. 이 문제를 해결하도록 도와주시겠어요?
미리 답변해 주셔서 감사합니다!
답변1
실제로 귀하가 공유한 스크린샷에는 병합된 셀과 병합되지 않은 셀이 모두 포함되어 있으므로 이 문제에는 수식 대신 VBA 매크로가 필요합니다.
Function MergedCellCount(ByRef Rng As Range, ByVal Criteria As Variant)
Dim c As Long
Dim Cell As Range
Dim n As Long
Dim r As Long
Application.Volatile
For c = 1 To Rng.Columns.Count
For r = 1 To Rng.Rows.Count
Set Cell = Rng.Cells(r, c)
If Cell.MergeCells = True And (Rng.Columns(c).Column = Cell.MergeArea.Column) Then
If Cell = Criteria Then
n = n + Cell.MergeArea.Count
r = r + (Cell.MergeArea.Rows.Count - 1)
End If
End If
Next r
Next c
MergedCellCount = n
End Function
Function unMergedCellCount(ByRef Rng As Range, ByVal Criteria As Variant)
Dim c As Long
Dim Cell As Range
Dim n As Long
Dim r As Long
Application.Volatile
For c = 1 To Rng.Columns.Count
For r = 1 To Rng.Rows.Count
Set Cell = Rng.Cells(r, c)
If Cell.MergeCells <> True And (Rng.Columns(c).Column = Cell.MergeArea.Column) Then
If Cell = Criteria Then
n = n + Cell.MergeArea.Count
r = r + (Cell.MergeArea.Rows.Count - 1)
End If
End If
Next r
Next c
unMergedCellCount = n
End Function
작동 방식:
누르거나Alt+F11또는 탭을 선택한 다음아르 자형클릭하고 메뉴에서 히트V코드야.
씨오피 &피이 VBA 매크로를 확인하세요.
누르다Alt+Q시트로 돌아가려면
이제 통합 문서를 매크로 사용 파일로 저장하십시오
*.xlsm
.셀에 이 수식을 입력
K2
하고 채워주세요.=MergedCellCount(H$2:H$17,J2)+unMergedCellCount(H$2:H$17,J2)
필요에 따라 셀 참조를 조정합니다.