논리/엑셀 프로그래밍

유동참조 COUNTIF

섬그늘 2008. 11. 14. 13:44

http://kin.naver.com/detail/detail.php?d1id=1&dir_id=1050202&eid=DDs2egZxzPfnaEeoRsXYKZ2RvJxo4tBR

 

 

A

B

C

D

E

F

G

1

구분

101

102

103

104

105

106

2

2008-08-08

3

2008-08-09

4

2008-08-10

5

2008-08-11

6

2008-08-12

7

2008-08-13

8

2008-08-14

9

2008-08-15

10

 

 

 

 

 

 

 

11

 

101

 

103

 

 

106

12

2

 

 

 

 

 

 

13

2008-08-08

3

 

 

 

 

 

14

2008-08-10

 

 

 

 

 

 

 

질문 1은 위 예시의 11행을 어떻게 구성하느냐 하는 것과 같습니다. A13:A14 날짜 범위를 주면 각 열의 해당 날짜 행을 뒤져 모두 "빔"이 되는 열에만 그 방번호를 출력하도록 했습니다. 이건 행번호가 유동적일 때 그 범위를 주어 COUNTIF를 시행하면 되는 문제이지요. 아래 수식의 유동참조 기법을 참고, 응용해 보세요.

 

A12 =ROW(B1)+MATCH(A13,A2:A9,0) ; 행번호 계산의 일례. B11에 쓰임. 실전에선 필요 없음
B11 =IF(COUNTIF(INDIRECT(ADDRESS(ROW(B1)+MATCH($A13,$A2:$A9,0),COLUMN())):INDIRECT(ADDRESS(ROW(B1)+MATCH($A14,$A2:$A9,0),COLUMN())),"빔")=$A14-$A13+1,B1,"") ; G11까지 복사
B13 =COUNT(B11:G11) ; 해당 데이타의 개수

 

질문 2는 위 11행과 B13의 결과 값을 어떻게 장식하느냐의 문제겠습니다. 예로써 IF문을 써서 "방 없음"을 표시할 수 있겠지요. 조건부 서식을 써서 색상이 넣을 수도 있을 것이고 VBA를 써서 클릭하면 B13이 없을 때에만 "방 없음", 그렇지 않은 경우 유효성 검사 결과를 출력, 방 번호를 선택하게 할 수도 있을 겁니다. (그런 기법과 제가 별로 친한 사이가 아니라서리...생략합니다.)