[ 2007 의 COUNTIFS 를 대신하는 COUNTIFS2003 ] 에 대해 알아봅니다. COUNTIFS2003(영역,조건, 영역,조건, 영역,조건...) 으로 입력합니다. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
Ifs_K 시트 에 사용한 수식 입니다. by MicroSoft Excel v 2003 $ 가 있는 수식은 절대(혼합)참조로 셀 주소를 고정합니다. 참조하세요!! |
||||
No | 셀주소 | 왼쪽의 셀에 수식을 넣으면 오른쪽 결과가 나옵니다. (복사)를 누르면 셀의 수식이 클립보드(메모리)로 복사되는데, 익스플로러의 종류에 따라 (복사)가 작동이 안 될 수 있습니다. |
결과 | 수식을 |
1 | C26 | =SUM(C11:C25) | 2600 | |
2 | D13 | =SUMPRODUCT(($A$11:$A$25=D11)*($B$11:$B$25=E11)) | 2 | |
3 | D14 | =SUMPRODUCT(($A$11:$A$25="길동이")*($B$11:$B$25="서울")) | 2 | |
4 | D15 | =SUMPRODUCT(($A$11:$A$25="=D11")*($B$11:$B$25="=E11")) | 0 | |
5 | D16 | =SUMPRODUCT(($A$11:$A$25=D11)*($B$11:$B$25>=E11)) | 3 | |
6 | D17 | =SUMPRODUCT(($A$11:$A$25="길동이")*($B$11:$B$25>="서울")) | 3 | |
7 | D18 | =SUMPRODUCT(($A$11:$A$25="=D11")*($B$11:$B$25>="=E11")) | 0 | |
8 | D19 | =SUMPRODUCT(($A$11:$A$25=D11)*($B$11:$B$25< =E11)) | 3 | |
9 | D20 | =SUMPRODUCT(($A$11:$A$25="길동이")*($B$11:$B$25< ="서울")) | 3 | |
10 | D21 | =SUMPRODUCT(($A$11:$A$25="=D11")*($B$11:$B$25< ="=E11")) | 0 | |
11 | D22 | =SUMPRODUCT(($A$11:$A$25=D11)*($B$11:$B$25< >E11)) | 2 | |
12 | D23 | =SUMPRODUCT(($A$11:$A$25="길동이")*($B$11:$B$25< >"서울")) | 2 | |
13 | D24 | =SUMPRODUCT(($A$11:$A$25=D11)*($C$11:$C$25< =200)) | 3 | |
14 | D25 | =SUMPRODUCT(($A$11:$A$25=D11)*($C$11:$C$25< =F11)) | 3 | |
15 | E13 | =COUNTIFS2003($A$11:$A$25,D11,$B$11:$B$25,E11) | 2 | |
16 | E14 | =COUNTIFS2003($A$11:$A$25,"길동이",$B$11:$B$25,"서울") | 2 | |
17 | E15 | =COUNTIFS2003($A$11:$A$25,"=D11",$B$11:$B$25,"=E11") | 0 | |
18 | E16 | =COUNTIFS2003($A$11:$A$25,D11,$B$11:$B$25,">="&E11) | 3 | |
19 | E17 | =COUNTIFS2003($A$11:$A$25,"길동이",$B$11:$B$25,">=서울") | 3 | |
20 | E18 | =COUNTIFS2003($A$11:$A$25,"=D11",$B$11:$B$25,">="&"E11") | 0 | |
21 | E19 | =COUNTIFS2003($A$11:$A$25,D11,$B$11:$B$25,"< ="&E11) | 3 | |
22 | E20 | =COUNTIFS2003($A$11:$A$25,"길동이",$B$11:$B$25,"< =서울") | 3 | |
23 | E21 | =COUNTIFS2003($A$11:$A$25,"=D11",$B$11:$B$25,"< ="&"E11") | 0 | |
24 | E22 | =COUNTIFS2003($A$11:$A$25,D11,$B$11:$B$25,"< >"&E11) | 2 | |
25 | E23 | =COUNTIFS2003($A$11:$A$25,"길동이",$B$11:$B$25,"< >서울") | 2 | |
26 | E24 | =COUNTIFS2003($A$11:$A$25,D11,$C$11:$C$25,"< =200") | 3 | |
27 | E25 | =COUNTIFS2003($A$11:$A$25,"길동이",$C$11:$C$25,"< ="&F11) | 3 | |
28 | F13 | =D13=E13 | TRUE | |
29 | F13 셀의 수식을 여기에 복사하세요 -→ F13:F25 | |||
보시는 내용은 위의 표에 값이, 아래의 표에는 해당 셀의 수식이 있습니다. 첨부파일이 없습니다, 원하는 부분을 시트(셀)에 붙여 넣으세요. 도움이 되시기를 바랍니다. ※ 만일 수식에 사용된 공백때문에 오류(다른 값)가 나오면 공백을 확인바랍니다. |
2007 의 COUNTIFS 를 대신하는 COUNTIFS2003
COUNTIFS2003(영역,조건, 영역,조건, 영역,조건...) 으로 입력합니다.
Function COUNTIFS2003(ParamArray var() As Variant)
On Error Resume Next
Dim i7 As Double, LB As Double, UB As Double
Dim adr As Variant
LB = LBound(var)
UB = UBound(var)
If UB Mod 2 = 0 Then
COUNTIFS2003 = "Condition1,2 / 3,4"
Exit Function
End If
ReDim adr(LB To UB)
For i7 = LB To UB Step 2
adr(i7) = RT(var(i7), var(i7 + 1))
Next
COUNTIFS2003 = "=SUMPRODUCT(--(" & Join(adr, "),--(") & ")"
For i7 = LB To UB
COUNTIFS2003 = Replace(COUNTIFS2003, "--(),", "")
Next
COUNTIFS2003 = Replace(COUNTIFS2003, ",--()", ")")
COUNTIFS2003 = Application.Evaluate(COUNTIFS2003)
End Function
Function RT(vv, cc)
On Error Resume Next
RT = Application.Evaluate(cc)
If CStr(cc) = "" Then
RT = "" & vv.Address(External:=True) & "),--("
Else
If Not (IsError(RT)) Then
If IsEmpty(RT) Then
RT = vv.Address(External:=True) & "=""" & cc & """"
ElseIf IsNumeric(RT) Then
RT = vv.Address(External:=True) & "=" & cc
ElseIf IsDate(RT) Then
RT = vv.Address(External:=True) & "=" & cc
ElseIf TypeName(Range(cc)) = "Range" Then
If IsNumeric(RT) Then
RT = vv.Address(External:=True) & "=" & cc
Else
RT = vv.Address(External:=True) & "=""" & cc & """"
End If
Else
If IsNumeric(RT) Then
RT = vv.Address(External:=True) & RT
ElseIf IsDate(RT) Then
RT = vv.Address(External:=True) & RT
Else
RT = vv.Address(External:=True) & "=""" & RT & """"
End If
End If
Else
Select Case RT
Case CVErr(xlErrDiv0): GoTo ers
Case CVErr(xlErrNA): GoTo ers
Case CVErr(xlErrName): GoTo ers
Case CVErr(xlErrNull): GoTo ers
Case CVErr(xlErrNum): GoTo ers
Case CVErr(xlErrRef): GoTo ers
Case CVErr(xlErrValue): GoTo ers
End Select
End If
End If
Exit Function
ers:
If Err.Number = 13 Then
RT = "--(" & vv.Address(External:=True) & "),"""" & cc & """""
Else
If IsNumeric(cc) Then
RT = vv.Address(External:=True) & "=" & cc
Else
RT = vv.Address(External:=True) & GetRT(cc)
End If
End If
End Function
Function GetRT(RTstr)
Dim RTtemp1 As String
Dim RTtemp2 As String
Dim RTLeft As String
RTLeft = Left(RTstr, 1)
RTtemp1 = Mid(RTstr, 2)
RTtemp2 = Mid(RTtemp1, 2)
If IsNumeric(RTtemp1) Then
ElseIf IsDate(RTtemp1) Then
Else
RTtemp1 = """" & RTtemp1 & """"
End If
If IsNumeric(RTtemp2) Then
ElseIf IsDate(RTtemp2) Then
Else
RTtemp2 = """" & RTtemp2 & """"
End If
Select Case Left(RTstr, 2)
Case ">=": GetRT = ">=" & RTtemp2
Case "=>": GetRT = ">=" & RTtemp2
Case "<=": GetRT = "<=" & RTtemp2
Case "=<": GetRT = "<=" & RTtemp2
Case "<>": GetRT = "<>" & RTtemp2
Case Else
Select Case RTLeft
Case "=": GetRT = "=" & RTtemp1
Case ">": GetRT = ">" & RTtemp1
Case "<": GetRT = "<" & RTtemp1
Case Else
If IsNumeric(RTstr) Then
GetRT = "=" & RTstr
Else
GetRT = "=""" & RTstr & """"
End If
End Select
End Select
End Function
잘 안될 경우 메일 주시거나 리플 남겨주세요
'엑셀보조파일,기능,함수' 카테고리의 다른 글
숫자를 영어로 나타내는 사용자 함수 (NUM2DOLLAR) (0) | 2008.09.09 |
---|---|
여러 영역의 문자열 합치는 사용자 함수 (STRJOIN) (0) | 2008.09.07 |
엑셀 2007 에 있는 SUMIFS 를 2003 에서 ... SUMIFS2003 (1) | 2008.09.05 |
엑셀 2007 에 있는 IFERROR 를 2003 에서 ... IFERROR2003 (1) | 2008.09.04 |
배열수식, SUMPRODUCT 의 속도를 올리자 (0) | 2008.09.03 |
오즈맨의 Sheet to Web 2.00 (Sheet2Web) (0) | 2008.08.28 |
오즈맨의 Sheet to Web 1.9 Up (0) | 2008.08.19 |