안녕하세요. 오즈맨 입니다.
 시트명은 STEP1 입니다.
 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
BCDEFGHIJKLMN
상품 현황   상품 현황    
             
수량단가금액 금액2 수량단가금액 금액2  
100 100 10,000  10,000  100 100 10,000 =H5*I510,000 =PRODUCT(H5:I5) 
10 200 2,000  2,000  10 200 2,000 =H6*I62,000 =PRODUCT(H6:I6) 
300 500 150,000  150,000  300 미정#VALUE!=H7*I7300 =PRODUCT(H7:I7) 
합계 162,000  162,000  합계 #VALUE! 12,300  12,000 
             
      =SUM(J5:J7)    
      =SUM(L5:L7)  
      =SUMPRODUCT(H5:H7,I5:I7)
             
    수량*단가 인 경우
    숫자와 문자를 곱하면 오류가 납니다
    따라서 오류가 있는 경우 합을 구할 수 없죠
    그러나 product 함수는 숫자가 아닌 값은 없는 셈 칩니다
    그렇다고 0 으로 취급하지는 않습니다
    계산 자체를 하지 않는것입니다
     
    이렇게 product 한 결과의 합을 구하는것이 sumproduct 입니다
     
    사용자의 의도대로 수량 영역*단가영역의 결과를 보면
    #VALUE!=SUMPRODUCT(H5:H7*I5:I7)
    역시나 오류가 납니다
    두 영역의 각 값을 곱하라고 사용자가 시킨 때문이죠
             
    그러나 곱하는건 내가 할테니 곱할 영역만 주세요
    이런 경우는 프로그램은 계산 을 하게되고 그 결과가 만들어집니다
    12,000 =SUMPRODUCT(H5:H7,I5:I7)
    따라서 원하는 결과를 만들려면  수식을 아래와 같이 사용합니다.
      =SUMPRODUCT( 영역 , 영역 )


STEP1
시트 에 사용한 수식
입니다. by MicroSoft Excel v 2007
   $ 가 있는 수식은 절대(혼합)참조로 셀 주소를 고정합니다. 참조하세요!!
No셀주소왼쪽의 셀에 수식을 넣으면 오른쪽 결과가 나옵니다.
(복사)를 누르면 셀의 수식이 클립보드(메모리)로 복사되는데,
익스플로러의 종류에 따라 (복사)가 작동이 안 될 수 있습니다.
결과수식을
1D5=B5*C510,000 
2 D5  셀의 수식을 여기에 복사하세요 -→ 
D5:D7,J5:J7
  
3F5=PRODUCT(B5:C5)10,000 
4 F5  셀의 수식을 여기에 복사하세요 -→ 
F5:F7,L5:L7
  
5K5=MyFormula(J5)=H5*I5
6 K5  셀의 수식을 여기에 복사하세요 -→ 
K5:K7,M5:M7,G24,G30
  
7D8=SUM(D5:D7)162,000 
8 D8  셀의 수식을 여기에 복사하세요 -→ 
D8,F8,J8,L8
  
9N8=SUMPRODUCT(H5:H7,I5:I7)12,000 
10H10=MyFormula(J$8)=SUM(J5:J7)
11H11=MyFormula(L$8)=SUM(L5:L7)
12H12=MyFormula(N$8)=SUMPRODUCT(H5:H7,I5:I7)
13F24=SUMPRODUCT(H5:H7*I5:I7)#VALUE!
14F30=SUMPRODUCT(H5:H7,I5:I7)12,000 

   보시는 내용은 위의 표에 값이, 아래의 표에는 해당 셀의 수식이 있습니다.   
   첨부파일을 참조하시구요 원하는 부분을 시트(셀)에 붙여 넣으세요.(사용자정의함수가 있습니다)
     도움이 되시기를 바랍니다.

   참고로 SUMPROODUCT 함수는   =SUMPRODUCT( 영역 , 영역 , 영역 ) 으로도 응용 가능합니다

   첨부 파일을 참조 바랍니다.

   아울러 http://ozman.tistory.com/103 도 참조해보셔요


                                                  


SUMPRODUCT이해.xlsm


Posted by 오즈맨스머프


                                                  
  안녕하세요. 오즈맨 입니다.
 시트명은 십진수 입니다.
[ 10진수를 2진수로 변환하기(내장함수 한계극복) ] 예제 입니다.
 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
ABCDEF
십진수변환한2진수사용자함수결과비교결과참고(변환후길이)
      
100000001 8 
1000000010 8 
1100000011 8 
10000000100 8 
10100000101 8 
      
0000000100000001같음8 
0000001000000010같음8 
0000001100000011같음8 
0000010000000100같음8 
510 #NUM!111111110#NUM!9자릿수지정 오류
511 #NUM!111111111#NUM!9자릿수지정 오류
      
510 111111110111111110같음9내장함수 한계
511 111111111111111111같음9내장함수 한계
512 #NUM!1000000000#NUM!10 
513 #NUM!1000000001#NUM!10 
1,234,567 #NUM!100101101011010000111#NUM!21 


십진수
시트 에 사용한 수식
입니다. by MicroSoft Excel v 2003
   $ 가 있는 수식은 절대(혼합)참조로 셀 주소를 고정합니다. 참조하세요!!
No셀주소왼쪽의 셀에 수식을 넣으면 오른쪽 결과가 나옵니다.
(복사)를 누르면 셀의 수식이 클립보드(메모리)로 복사되는데,
익스플로러의 종류에 따라 (복사)가 작동이 안 될 수 있습니다.
결과수식을
1B3=DEC2BIN(A3)1
2 B3  셀의 수식을 여기에 복사하세요 -→ 
B3:B7,B16:B20
  
3C3=Dec_Bin(A3)00000001
4 C3  셀의 수식을 여기에 복사하세요 -→ 
C3:C7,C9:C14,C16:C20
  
5E3= LEN(C3)8
6 E3  셀의 수식을 여기에 복사하세요 -→ 
E3:E7,E9:E14,E16:E20
  
7B9=DEC2BIN(A9,8)00000001
8 B9  셀의 수식을 여기에 복사하세요 -→ B9:B14  
9D9=IF(B9=C9,"같음","다름")같음
10 D9  셀의 수식을 여기에 복사하세요 -→ 
D9:D14,D16:D20
  

   보시는 내용은 위의 표에 값이, 아래의 표에는 해당 셀의 수식이 있습니다.   
   첨부파일이 없습니다, 원하는 부분을 시트(셀)에 붙여 넣으세요.
     도움이 되시기를 바랍니다.


     엑셀 프로그램에서는 2진수 기준 8자리
     10진수 기준 511 까지 사용 가능합니다. (도움말 참조하세요 !!!  )



                                                  
                                                                                                       
해결한  사용한 사용자정의함수 코드입니다

Option Explicit

Function Dec_Bin(Dec_Value As Double, Optional HisLen As Double = 8) As String' === 모듈 시작
' CodeBy [ 오즈맨 ] , Date : 2015-06-23
Dim His_Dec As Currency
Dim ii      As Double
Dim AdStrr  As String
        His_Dec = Abs(Dec_Value)
    For ii = 1 To 2
        If His_Dec = 0 Then
        Else
            Dec_Bin = CStr(His_Dec Mod 2) & Dec_Bin
            His_Dec = His_Dec \ 2
                ii = ii - 1
        End If
    Next
        
        If HisLen - Len(Dec_Bin) > 0 Then
            AdStrr = String(HisLen - Len(Dec_Bin), "0")
            Dec_Bin = AdStrr & Dec_Bin
        End If
            If Dec_Value < 0 Then Dec_Bin = "-" & Dec_Bin
        
End Function         ' ___ 모듈 종료




Posted by 오즈맨스머프