내 문제는 매우 간단하지만 설명이 다소 복잡합니다.
4 개의 정수를 포함하는 4 개의 셀이 있는데, 이는 두 셀의 행 및 열 번호를 나타냅니다. 예 :
A B
1 54 23
2 154 123
그래서 우리는 두 개의 세포를 가지고 있습니다 :
- 셀 # 1 : 54 행, 23 열
- 셀 # 2 행 154, 열 123.
셀 # 1과 셀 # 2 사이의 모든 셀의 내용을 합산하려고합니다. 물론 실제 값이 아닌 관련 값을 포함하는 셀 A1, A2, B1, B2에 대한 참조를 원합니다. 이 합계를 셀 C3에 넣고 싶습니다.
VBA에서는 간단하지만 (긴하지만)
Range("C3").Cells = WorksheetFunction.Sum( _
Range(Cells(Cells(1,1),Cells(1,2)), _
Cells(Cells(2,1),Cells(2,2))))
VBA없이 어떻게합니까?
나는 같은 것을 시도했다 =SUM(ADDRESS(A1,B1),ADDRESS(A2,B2))
. 내 문제는 ADDRESS () 사용하면 텍스트를 반환한다는 것입니다. 이 텍스트를 SUM ()에 넣으면 오류가 반환됩니다.
답변
[편집-원래 질문을 잘못 읽었습니다.]
이를 수행하는 한 가지 방법은 OFFSET
함수를 사용하여 원하는 범위를 찾는 것입니다.
=SUM(OFFSET(A1,A1-1,B1-1,A2-A1+1,B2-B1+1))
OFFSET(A1,A1-1,B1-1)
는 행 및 열 번호가 A1 및 A2의 값인 하나의 셀 범위를 나타냅니다. 마지막 두 매개 변수 ( A2-A1+1
및 B2-B1+1
)는 새 범위의 행 및 열 수입니다.
답변
간접 및 주소는 일시적으로 사용됩니다. INDEX :
=SUM(INDEX(A:AAA,A1,B1):INDEX(A:AAA,A2,B2))
답변
작동하지 않는 것 같습니다.
=SUM(INDIRECT(ADDRESS(ROW(INDIRECT("R"&A1&"C"&B1,FALSE)),COLUMN(INDIRECT("R"&A1&"C"&B1,FALSE)))):INDIRECT(ADDRESS(ROW(INDIRECT("R"&A2&"C"&B2,FALSE)),COLUMN(INDIRECT("R"&A2&"C"&B2,FALSE)))))
셀 내용을 R1C1 스타일 참조 (즉 R54C23
) 로 변환합니다 . 거기서부터 고정 된 참조 (즉 $W$54
) 로 변환합니다 . 그런 다음 간접적으로 사용하여 SUM()
함수 에 연결 합니다.