'오즈맨의 이야기들'에 해당되는 글 90건

  1. 2019.09.09 Function : Last Column , Last Row
  2. 2016.03.02 수식에서의 -- 역할 및 SUMPRODUCT 함수 예제 입니다. 1
  3. 2015.06.23 10진수를 2진수로 변환하기(내장함수 한계극복)
  4. 2015.05.14 숫자... 지수형식 오류
  5. 2015.04.19 피벗 비슷한 기능 구현하기 Similar PIVOT Code Create...
  6. 2015.01.06 vba 를 사용해서 mdb 생성에 필요한 데이터형식 인수
  7. 2014.11.19 SpecialCells Error ...
  8. 2014.08.21 사용자 함수를 찾는 vba 코드 입니다 (2)
  9. 2014.08.07 [ Rank 계산 수식 ] 예제
  10. 2011.04.20 수식없이 집계??? 피벗이 모야??? 5
  11. 2011.04.09 오즈맨의 숫자 -> 날짜 변경 해법 1
  12. 2011.02.03 한반도에 퍼지는 역행침식 현상 1
  13. 2010.11.18 왕초 + 용녀 의 후예 이름이 생기다...
  14. 2010.08.18 2010-08/17 방송예정이던 PD수첩 보도자료 전문
  15. 2009.08.09 유동적인 영역의 차트 만들기 1
  16. 2009.06.01 문자가 다른곳에 있는지 확인하는 조건부 서식 사용 예제 3
  17. 2009.05.26 사용자 함수를 찾는 vba 코드 입니다.
  18. 2009.05.21 엑셀에서 Lotus123 형식 사용하기??? 1
  19. 2009.03.29 [ 문자열 비교하는 사용자 함수 ] 예제 입니다. 1
  20. 2009.03.24 Word, Excel 및 PowerPoint 2007 파일 형식용 Microsoft Office 호환팩 2
  21. 2009.03.22 20090321정모영상 2
  22. 2009.03.11 lrc파일 시간 편집기 (가사파일 시간 조정) 5
  23. 2009.03.04 지정한 목록 을입력할 수 있는 유효성 검사 기능(2007) 2
  24. 2009.02.25 2007에서2003의 개체선택 기능 사용하기
  25. 2009.02.24 매크로 기록중지 도구가 이상해졌으면???
  26. 2009.02.12 만 단위로 금액 표시하기 - 예제 입니다.
  27. 2009.02.10 수식에서 사용하는 -- 의 역할 예제 입니다. 1
  28. 2009.01.23 매크로 보안 안전하게 - 2 인증서 있는 파일 사용하기 3
  29. 2009.01.23 매크로 보안으로 안전하게 인증서 -1 인증서 만들기 사용하기 지우기
  30. 2009.01.20 금 캐기 심심풀이 땅콩 ^^

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.



                                                  

  안녕하세요. 오즈맨 입니다.
 시트명은 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 오즈맨스머프


가끔은 아주 가끔은 애먹을 일이 있으면 보게 됩니다
숫자가 지수형식으로 display 됨으로 인한 오류 사전 예방입니다


Option Explicit


Sub NumericCheck()' === 모듈 시작
' CodeBy [ 오즈맨 ] , Date : 2015-05-14
' 배열내 숫자가 오류인지 아닌지를 검사할 임시 배열입니다.
Dim tmpVarr(1 To 20, 1 To 4)
Dim iip As Double
For iip = 1 To 20
     tmpVarr(iip, 1) = Rnd
     tmpVarr(iip, 2) = Rnd
     tmpVarr(iip, 3) = tmpVarr(iip, 2) - tmpVarr(iip, 1)
     tmpVarr(iip, 4) = "=rc[-1]-rc[-2]"
Next
Cells(1, 1).Resize(21, 5).ClearContents
Cells(1, 1).Resize(20, 4).Value = tmpVarr

Call ErrChk(tmpVarr)

End Sub         ' ___ 모듈 종료



Sub ErrChk(His_Variant As Variant)' === 모듈 시작
' CodeBy [ 오즈맨 ] , Date : 2015-05-14
' 배열내 숫자가 오류인지 아닌지를 검사합니다.
' 오류로 반환되는 경우에는 숫자의 형식을 미리 확인합니다.
Dim i_i   As Double
Dim j_j   As Double
Dim chkkV As String
Dim cnt_i As Double, cnt_j As Double
Dim AnswUniq   As New Collection

If TypeName(His_Variant) = "Variant()" Then
Else
     If IsNumeric(His_Variant) = True Then
          chkkV = "'" & His_Variant
               If chkkV Like "*E*" Then
                    If Mid(chkkV, 3, 1) = "." Then
                         AnswUniq.Add "Value Error =  " & Mid(chkkV, 2)
                    End If
               End If
     End If
     If AnswUniq.Count <> 0 Then GoTo Error_Found_OZman
End If

cnt_i = UBound(His_Variant, 1)
cnt_j = UBound(His_Variant, 2)

For i_i = 1 To cnt_i
For j_j = 1 To cnt_j
     If IsNumeric(His_Variant(i_i, j_j)) = True Then
          chkkV = "'" & His_Variant(i_i, j_j)
               If chkkV Like "*E*" Then
                    If Mid(chkkV, 3, 1) = "." Then
                         AnswUniq.Add "Error R/C " & i_i & "/" & j_j & "= " & Mid(chkkV, 2) & " ~~ " & CDec(Mid(chkkV, 2))
                    End If
               End If
     End If
Next
Next
     If AnswUniq.Count <> 0 Then GoTo Error_Found_OZman


Exit Sub


Error_Found_OZman:
cnt_i = AnswUniq.Count

Debug.Print
Debug.Print
Debug.Print "Errrrrr", Now
For i_i = 1 To cnt_i
     Debug.Print AnswUniq(i_i)
Next

Debug.Print "See Again"
Debug.Print

MsgBox "Numeric   Error   Check Again   ", vbOKOnly, "Special Module By OZMAN"

End Sub         ' ___ 모듈 종료


Posted by 오즈맨스머프


아주 재미난 로직을 소개합니다

현재값을 바탕으로 미래를 예측하는 시나리오에 적합한 로직입니다

피벗테이블을 사용한
지역별, 부서별 합을 구하는 방법은  아주 훌륭한 기능인데요

부서별 인원을 구한 이후에 
만들어진 결과를 가지고 특정 부서의 인원을 늘리고자 한다면
그리고 그 이후의 총 인원 변화를 예상하려 한다면

피벗의 경우는 원본 데이터의 일부를 수정 한 다음 피벗 갱신 을 해야합니다
어디를 수정할지 그리고 갱신은 언제 누를 지 답답합니다

해서...
결과물을 피벗과 같은 형태로 만들되  ,  부분합 부분만 수식을 만든 다음
특정 부서의 인원(부분합 부분이 아니겠습니다)을 변경할 때 총 인원이 자동으로 늘어나는

그런 로직입니다.

로직의 요약은 이렇습니다
실제 데이터 원본이 존재합니다.
조건별로 부분합이 있는 집계를 구합니다.

만들어진 결과는 일테면 지역별 성별 인원수 인 경우는
지역별 소계(부분합)는 존재합니다 ----------------------------- 수식
지역의 성별 인원은 피벗 처럼 값으로 결과를 만들어냅니다 ---------- 값

만들어진 결과 중에서 부분합 부분은 수식이어야 하고
"값" 부분을 변경하면 "수식" 부분이 자동 계산되어 전체의 값 변동을 즉시 알수 있도록 함이 목적입니다.
데이터 원본은 건드리지 않고 특정 부서의 인원을 바꾸면 전체 인원이 얼마나 되나
를 볼수 있는 로직입니다.   기대치 확보나, 시뮬레이션 가동에 유용합니다.

0123456789


주요 코드입니다


Option Explicit




Sub Excute_Expect()' === 모듈 시작
' CodeBy [ 오즈맨 ] , Date : 2015-04-19

Dim MyySheet   As Worksheet

Set MyySheet = ThisWorkbook.Sheets("DATA")

Call Range_Clear

MsgBox "Ready~~"

Call PivotSumUP(RngSource:=MyySheet.Range("$C$5").CurrentRegion, AnswerRng:=MyySheet.Range("P5"), SubTotal_At_Top:=False)

Call PivotSumUP(RngSource:=MyySheet.Range("$C$5").CurrentRegion, AnswerRng:=MyySheet.Range("AC5"), SubTotal_At_Top:=True)

End Sub         ' ___ 모듈 종료


Sub PivotSumUP(RngSource As Range, AnswerRng As Range, SubTotal_At_Top As Boolean)' === 모듈 시작
' CodeBy [ 오즈맨 ] , Date : 2015-04-19
Dim ii    As Double
Dim jj    As Double
Dim Work_Sheet      As Worksheet
Dim Sort_Sheet      As Worksheet
Dim Uniq_Count      As Double
Dim Rows_Count      As Double           ' 원본의 ROWS
Dim Found__Row      As Double           ' 찾는 INDEX NUMBER
Dim Found_Colm      As Double

Dim MySource        As Variant          ' 피벗의 원본

Dim Uniq_Value      As New Collection   ' ANSW 용 UNIQ , Fixed 문자열
Dim FixedValue      As Variant
Dim Sort_Value      As Variant          ' 쏘트용 값    INSERT -> Uniq_Value

Dim EditRange  As Range
Dim FixString  As String
Dim tmpString  As String      ' UNIQ 만들때 사용하는 임시변수
Dim MyAnswers  As Variant     ' 최종 결과
Dim tmp_Array  As Variant     ' SORT 이후를 ANSW 로 보낼 임시변수

Dim Sort_Range As Range

Dim Has_Gross_Total As Boolean
Dim Top_Gross_Total As Boolean


     Has_Gross_Total = True
     Top_Gross_Total = False ' True
     

Dim Gross_total_Top  As String



FixString = "_|_"


Application.ScreenUpdating = False

Set Work_Sheet = RngSource.Parent
Set Sort_Sheet = Sheets("sheet3") ' Worksheets.Add
'''Work_Sheet.Activate



     MySource = RngSource.Value
     Rows_Count = UBound(MySource, 1)
     
On Error Resume Next
ReDim FixedValue(1 To Rows_Count) As Variant
ii = 1
     For jj = 2 To 4
          tmpString = tmpString & FixString & MySource(ii, jj)
     Next
          FixedValue(ii) = tmpString
          Uniq_Value.Add tmpString, tmpString

For ii = 2 To Rows_Count
     tmpString = ""
     For jj = 2 To 4
          tmpString = tmpString & FixString & MySource(ii, jj)
          Uniq_Value.Add tmpString, tmpString
     Next
          FixedValue(ii) = tmpString
Next

Uniq_Count = Uniq_Value.Count
ReDim Sort_Value(1 To Uniq_Count, 1 To 2)
For ii = 1 To Uniq_Count
     Sort_Value(ii, 1) = Uniq_Value(ii)
     Sort_Value(ii, 2) = Uniq_Value(ii) & "Z"
Next


Set Sort_Range = Sort_Sheet.Range("A1")
Sort_Range.Resize(Uniq_Count, 2).EntireColumn.ClearContents
Sort_Range.Resize(Uniq_Count, 2) = Sort_Value

     If Has_Gross_Total = True Then
          If Top_Gross_Total = True Then
               Gross_total_Top = "Top"
          Else
               Gross_total_Top = "Bottom"
          End If
     
     ElseIf Has_Gross_Total = False Then
               Gross_total_Top = "No"
     End If



If Gross_total_Top = "Top" Then
          Sort_Range.Offset(Uniq_Count, 0).Resize(1, 2) = "'"
          Uniq_Count = Uniq_Count + 1
End If

If SubTotal_At_Top = True Then
          Sort_Range.Resize(Uniq_Count, 2).SortSpecial key1:=Sort_Range(1, 1), Order1:=xlAscending, Header:=xlYes
Else
          Sort_Range.Resize(Uniq_Count, 2).SortSpecial key1:=Sort_Range(1, 2), Order1:=xlAscending, Header:=xlYes
End If


If Gross_total_Top = "Bottom" Then
          Sort_Range.Offset(Uniq_Count, 0).Resize(1, 2) = "'"
          Uniq_Count = Uniq_Count + 1
End If


Sort_Value = Sort_Range.Resize(Uniq_Count, 1).Value

ReDim MyAnswers(1 To Uniq_Count, 1 To 5)

Set Uniq_Value = Nothing

For ii = 1 To Uniq_Count
     Uniq_Value.Add ii, Sort_Value(ii, 1)
Next
     Uniq_Value.Add ii, ""

For ii = 1 To Uniq_Count
     Found_Colm = InStrRev(Sort_Value(ii, 1), FixString) - 1
     If Found_Colm >= 0 Then
     
     tmpString = Left(Sort_Value(ii, 1), Found_Colm)
     Found__Row = Uniq_Value(tmpString)
          ' 누적
          MyAnswers(Found__Row, 4) = MyAnswers(Found__Row, 4) & "+R[" & ii - Found__Row & "]C"
          MyAnswers(Found__Row, 5) = MyAnswers(Found__Row, 5) & "+R[" & ii - Found__Row & "]C"
     
     End If

     
     tmp_Array = Split(Sort_Value(ii, 1), FixString)
     For jj = 1 To 3
          MyAnswers(ii, jj) = tmp_Array(jj)
     Next
Next


For ii = 2 To Rows_Count
     Found__Row = Uniq_Value(FixedValue(ii))
     ' 인원수
     MyAnswers(Found__Row, 4) = MyAnswers(Found__Row, 4) + 1
     ' 인건비
     MyAnswers(Found__Row, 5) = MyAnswers(Found__Row, 5) + MySource(ii, 5)
Next


For ii = 2 To Uniq_Count
     If Left(MyAnswers(ii, 4), 1) = "+" Then
          MyAnswers(ii, 4) = "=" & Mid(MyAnswers(ii, 4), 2)
          MyAnswers(ii, 5) = "=" & Mid(MyAnswers(ii, 5), 2)
     End If
Next

For ii = Uniq_Count To 2 Step -1
     For jj = 1 To 3
          If MyAnswers(ii, jj) = MyAnswers(ii - 1, jj) Then
          MyAnswers(ii, jj) = Empty
          End If
     Next
Next

If Gross_total_Top = "Top" Then
     MyAnswers(2, 1) = "총계"
ElseIf Gross_total_Top = "Bottom" Then
     MyAnswers(Uniq_Count, 1) = "총계"
Else
End If

MyAnswers(1, 4) = "인원"
MyAnswers(1, 5) = "인건비"

With AnswerRng.Resize(Uniq_Count, 5)
     .EntireColumn.ClearContents
     .EntireColumn.Interior.ColorIndex = xlNone
     
     .Formula = MyAnswers
     .Interior.ColorIndex = 15
     .NumberFormat = "#,#"
End With

Set EditRange = AnswerRng(1, 4).Resize(Uniq_Count, 2).SpecialCells(xlCellTypeConstants, xlNumbers)
EditRange.Interior.ColorIndex = xlNone

Application.ScreenUpdating = True

Application.DisplayAlerts = False
Application.DisplayAlerts = True


End Sub         ' ___ 모듈 종료


플래시 파일이 잘 안 보이면 그냥 다운로드 하세요

If cannot flash file... download movie...

PivotFormula4Simm.exe


예제 데이터와 코드가 있는 파일입니다.

here sample data and vba code...

PivotFormulaNew.xls





Posted by 오즈맨스머프


                                                  
vba 를 사용해서 mdb 생성에 필요한 데이터형식 인수

상수

숫자

종류

비고

dbBoolean1예/아니오Bool
dbByte2숫자Byte
dbInteger3숫자Integer
dbLong4숫자Long
dbCurrency5통화Currency
dbSingle6실수(Single)Single
dbDouble7실수(Double)Double
dbDate8날짜/시간Date
dbBinary9이진수Binary
dbText10텍스트Text
dbLongBinary11OLE 개체OLE
dbMemo12메모Comment
dbGUID15숫자(복제)CharWidth16
dbBigInt1610진수Digit(10)

          오류가 있으면 댓글 달아주셔요
          혹여 필요할까 해서 글로 남겨둡니다.

                                                  


Posted by 오즈맨스머프



엑셀의 셀 선택시에 사용하는  SpecialCells


MyRange.SpecialCells(xlCellTypeFormulas) 이거나

MyRange.SpecialCells(xlCellTypeConstants) 인 경우


SpecialCells  의 결과가 8192 가 넘으면 올바로 잡지를 못합니다 - 통으로 하나로 보게됩니다-


아래 코드는 8192 셀을 선택하게끔 되어있는데

이를 8193 으로 하고 돌리면 C 열 통으로 잡습니다

AREAS.COUNT 가 2^13 을 넘으면 포기하는 듯...

주의를 요합니다.


SpecialCells SELECTION ERROR ~

After Selected SpecialCells.areas > 8192 then cannot select SpecialCells  

if cntRR = 8193

and Run thiscode...SpecialCells select  ==>  Column "C" should selected...


Option Explicit

Sub SpecialCells_Test()' === 모듈 시작
' CodeBy [ 오즈맨 ] , Date : 2014-11-19

Dim MyRange   As Range
Dim MyyRange  As Range

Dim i     As Double
Dim cntRR As Double

cntRR = 8192

Set MyRange = Range("C:C")
MyRange.Clear
For i = 1 To cntRR
     Range("C" & i * 2).Value = Rnd
Next
Set MyyRange = MyRange.SpecialCells(xlCellTypeConstants)

MyyRange.Interior.ColorIndex = 15
Debug.Print MyyRange.Areas.Count, cntRR

End Sub         ' ___ 모듈 종료

Posted by 오즈맨스머프



Option Explicit

Sub UserFn_Find()' === 모듈 시작
' CodeBy [ 오즈맨 ] , Date : 2014-08-21

'루프 변수
Dim ii    As Double
Dim jj    As Double
Dim kk    As Double
Dim pp    As Double
Dim MySheet    As Worksheet

Dim TheLink As Variant        '외부링크 파일 찾아 저장
Dim My_Link As Variant        '그 중 사용자 함수만 추출

Dim tmpString As String
Dim tmpArray() As String      '목록을 임시로 저장하는 변수

TheLink = ActiveWorkbook.LinkSources(xlExcelLinks) '링크 차즌 담
kk = UBound(TheLink)          '개수를 세어보고

jj = 1
ReDim My_Link(1 To 2, 1 To jj) As Variant
      My_Link(1, 1) = "Path"
      My_Link(2, 1) = "File"

For ii = 1 To kk                   '링크 개수만큼 루프 돌되
     tmpString = TheLink(ii)            '임시 문자열에 링크명을 넣고
     pp = InStrRev(tmpString, "\")
     tmpString = Mid(tmpString, pp + 1) '임시문자열에서 파일명만 추출합니다
     
     If Workbooks(tmpString).IsAddin = True Then  '추가기능일 경우만 재적립 시킴
          jj = jj + 1
          ReDim Preserve My_Link(1 To 2, 1 To jj) As Variant
               My_Link(1, jj) = TheLink(ii)       '차후 File Open 용
               My_Link(2, jj) = tmpString         'UDF Find 용
     End If
     
Next


'찾기를 위한 임시변수
Dim c As Range, rng As Range
Dim tmpAddress As String


If jj < 2 Then
          MsgBox " 이 파일에는 읍사와유 ", , "그럼 이만..."
          Exit Sub
End If


Set rng = Application.InputBox(vbLf & "   가로로 네(4) 열 차지합니다", "   기록할 셀 지정합니다.", Type:=8)

pp = UBound(My_Link, 2)
For ii = 2 To pp                        '일단 닫고
     Workbooks(My_Link(2, ii)).Close
Next


jj = 1
ReDim tmpArray(1 To 4, 1 To jj) As String
     tmpArray(1, 1) = "추가기능 File"
     tmpArray(2, 1) = "사용된 시트"
     tmpArray(3, 1) = "셀 주소"
     tmpArray(4, 1) = "수식"


'여기서 파일명 검색으로 뒤져봅니다
For ii = 2 To pp
tmpString = My_Link(1, ii)
For Each MySheet In ActiveWorkbook.Sheets              '워크북에서 시트를 돌며 검색합니다.
     
     With MySheet.Cells                                '시트에서 ...
          Set c = .Find(tmpString, LookIn:=xlFormulas)      '해당 파일명을 검색합니다.
          If Not c Is Nothing Then
                    tmpAddress = c.Address
               Do
                    jj = jj + 1                             '만일 있으면 누적시켜 저장합니다.
                    ReDim Preserve tmpArray(1 To 4, 1 To jj) As String
                         tmpArray(1, jj) = tmpString        '파일명
                         tmpArray(2, jj) = MySheet.Name     '사용된 시트명
                         tmpArray(3, jj) = c.AddressLocal(0, 0)  '셀 주소
                         tmpArray(4, jj) = c.Formula         '수식
               Set c = .FindNext(c)
               Loop While Not c Is Nothing And c.Address <> tmpAddress
          End If
     End With
     
Next
Next


For ii = 2 To pp                       '닫은 추가기능을 다시 열고
     Workbooks.Open Filename:=My_Link(1, ii)
     Application.Volatile
Next
     

'그 결과를 행/열을 바꿔서 배열로 만들고
Dim TheAnswer
ReDim TheAnswer(1 To jj, 1 To 4)

For kk = 1 To 4
     TheAnswer(1, kk) = tmpArray(kk, 1)
Next


For ii = 2 To jj
For kk = 1 To 4
     TheAnswer(ii, kk) = tmpArray(kk, ii)
Next

     tmpString = TheAnswer(ii, 1)
     TheAnswer(ii, 1) = Mid(tmpString, InStrRev(tmpString, "\") + 1)
     
     tmpString = TheAnswer(ii, 4)
     TheAnswer(ii, 4) = " =" & Mid(tmpString, InStrRev(tmpString, "!") + 1)
     
Next

'바뀐 결과를 셀에 기록합니다
rng.Resize(jj, 4) = TheAnswer


'변수 초기화 마무리는 직접 하시기 바랍니다.


End Sub         ' ___ 모듈 종료


http://ozman.tistory.com/113 글의 신 버전입니다

Posted by 오즈맨스머프


                                                  
  안녕하세요. 오즈맨 입니다.
 시트명은 Rank예제 입니다.
[ Rank 계산 수식 ] 예제 입니다.
 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
ABCDEFGH
조건비교값Rank_1Rank_2비교Rank_1Rank_2비교
        
서울10055TRUE11TRUE
서울30022TRUE33TRUE
서울40011TRUE55TRUE
서울30022TRUE33TRUE
서울 ****TRUE****TRUE
서울20044TRUE22TRUE
부산10055TRUE11TRUE
부산30011TRUE33TRUE
부산30011TRUE33TRUE
부산30011TRUE33TRUE
부산20044TRUE22TRUE
제주10011TRUE11TRUE
해외 ****TRUE****TRUE
        
구분       
Rank 함수를 사용한 순위 구하기
Sumproduct 함수를 사용한 순위 구하기
        
        
이름정의       
Col_A =Rank예제!$A$4:$A$16
Col_B =Rank예제!$B$4:$B$16


Rank예제
시트 에 사용한 수식
입니다. by MicroSoft Excel v 2003
   $ 가 있는 수식은 절대(혼합)참조로 셀 주소를 고정합니다. 참조하세요!!
No셀주소왼쪽의 셀에 수식을 넣으면 오른쪽 결과가 나옵니다.
(복사)를 누르면 셀의 수식이 클립보드(메모리)로 복사되는데,
익스플로러의 종류에 따라 (복사)가 작동이 안 될 수 있습니다.
결과수식을
1C4=IF(B4="","**",RANK(B4,$B$4:$B$9))5
2 C4  셀의 수식을 여기에 복사하세요 -→ C4:C9  
3D4=IF(B4="","**",SUMPRODUCT(--(Col_A=A4),--(Col_B>=B4),--(Col_B<>""))-(SUMPRODUCT(--(Col_A=A4),--(Col_B=B4))-1) )5
4 D4  셀의 수식을 여기에 복사하세요 -→ D4:D16  
5E4=C4=D4TRUE
6 E4  셀의 수식을 여기에 복사하세요 -→ 
E4:E16,H4:H16
  
7F4=IF(B4="","**",RANK(B4,$B$4:$B$9,-1))1
8 F4  셀의 수식을 여기에 복사하세요 -→ F4:F9  
9G4=IF(B4="","**",SUMPRODUCT(--(Col_A=A4),--(Col_B<=B4),--(Col_B<>""))-(SUMPRODUCT(--(Col_A=A4),--(Col_B=B4))-1) )1
10 G4  셀의 수식을 여기에 복사하세요 -→ G4:G16  
11C10=IF(B10="","**",RANK(B10,$B$10:$B$14))5
12 C10  셀의 수식을 여기에 복사하세요 -→ C10:C14  
13F10=IF(B10="","**",RANK(B10,$B$10:$B$14,-1))1
14 F10  셀의 수식을 여기에 복사하세요 -→ F10:F15  
15C15=IF(B15="","**",RANK(B15,$B$15))1
16C16=IF(B16="","**",RANK(B16,$B$16))**
17F16=IF(B16="","**",RANK(B16,$B$16,-1))**

   보시는 내용은 위의 표에 값이, 아래의 표에는 해당 셀의 수식이 있습니다.   
   첨부파일이 없습니다, 원하는 부분을 시트(셀)에 붙여 넣으세요.
     도움이 되시기를 바랍니다.   
   참고로 !!!
   조건 판단 결과 True/False 는 그 합이나 혹은 숫자 형태의 결과가 나오지 않습니다.
   그리고 Left/Right/Mid/Text/Substitute 등의 함수나 & 로 구한 결과는 숫자가 아닙니다.
   그래서 -- 를 이용합니다.
   논리값에 -- 를 하면 True 는 1 로 False 는 0 으로 변경되고
   문자로 인식된 숫자는 올바른 숫자로 계산됩니다.
   그 결과를 이용하면 합을 구할때 편리합니다.
참고자료입니다.    [ 수식에서 사용하는 -- 의 설명입니다. ]


                                                  


Posted by 오즈맨스머프


여러분에게 규격화된 데이터가 있으믄

집계(개수 구하기 합계 구하기...)가 무진장 쉬워요


게다가 수식??? 함수???도 쓸 필요가 없어요

따라해보아요



요거는 따운로드
Posted by 오즈맨스머프


인터넷에서 받은 숫자 혹은

그냥 별 생각없이 입력했던 숫자

이걸 올바른 날짜로 변경하는거...

많이 구찮은 일이지요???

해법을 찾아봅니다







Posted by 오즈맨스머프


2011년 1월 23일 일요일 henrichfreise3KBS <추적 60분>에서 누락된 내용

지난 9월 홍수에 남한강으로 흘러드는 몇몇 지천에서 제방 등 강변시설들이 휩쓸려 내려가고 여주읍 연양천의 신진교가 무너졌다. 정부는 다리가 노후한 탓이라고 발표했지만, 어째서 그 지역 너덧 개 지천에서 비슷한 유형의 피해가 동시에 났는지, 어째서 예전에 더 많은 비가 왔을 때는 괜찮을 수 있었는지 설명하지 못했다.

그 런데 그 이유를 한 독일인이 설명했다. 그는 한국 정부가 4대강공사의 모델로 삼았다는 독일의 공무원으로 평생 국책 하천공사의 후유증을 진단하고 예측하는 일을 해 온 헨리히프라이제 박사다. 박사는 작년 가을 4대강공사 현장을 직접 조사했다. 그는 KBS <추적 60분> 취재진에게 그 조사결과와 지난 9월 홍수 자료(유속, 수심, 홍수위, 강우량)를 종합하여 이유를 설명한 것이다. 그러나 그 내용은 방송되지 못했다. '윗선'의 방해로 결방을 거듭하다 가까스로 방영된 <추적60분> “사업권 회수 논란, 4대강의 쟁점은?”편의 최종 편집에서 박사의 인터뷰 대부분이 누락되었기 때문이다.

"강을 준설해서 깊게 만들면 강은 스스로 변형하여 사람이 통제할 수 없게 됩니다. 다음 번 대홍수로 인한 수해는 이미 예정되어 있는 셈입니다”며 말문을 그는, 매우 위험한 ‘역행침식’ 현상이 한국의 4대강 본류를 통해 지천들로 거슬러 올라가며 현재 진행중이라고 진단했다.

‘역행침식’이란 강바닥과 강기슭이 끊임없이 저절로 무너져 내리는 침식이 상류 쪽으로 거슬러 올라가며 확산되는 현상을 말한다. 강 본류의 수위가 어떤 이유로든 낮아지면, 본류로 흘러드는 지천 수위와 낙차가 커져서 물이 더 빠르고 세차게 떨어지면서 강바닥과 강기슭을 파괴하게 된다. 일단 파괴가 시작되면 또 다른 낙차와 파괴를 유발한다. 결국 이런 침식현상이 강 상류 쪽으로 서서히, 모래강일 경우 빨리, 퍼져나가게 된다. 결국 지천과 본류가 합류하는 지점에서 일어난 침식은 본류와 지천을 타고 올라가며 전국적으로 퍼진다.

붕괴된 신진교는 지천(연양천)과 본류(남한강)가 합류하는 지점에 위치했다. 동시에 근처에 있는 네 개 지천의 본류 합류지점에서 다리와 제방을 받치는 지반이 허물어져 떠내려갔다. 강바닥에 축구장 두 개 크기로 새로 깔았던 돌무더기 하상보호공도 그 아래 지반과 함께 쓸려내려갔다. 4대강으로 흘러들어가는 지천은 전국적으로 367개가 된다고 한다.

역행침식의 독일 사례

150년의 하천공사 역사를 가진 독일에는 역행침식 현상과 관련하여 어떤 경험이 축적되어 있을까?

10 대 시절 나는 라인강 중류에 위치한 본(Bonn)의 교외에서 살았는데, 집 앞에 작은 시내가 졸졸 흘렀다. 시내는 폭이 1m쯤 되고 종아리가 잠길 정도로 얕아서 나는 껑충 뛰어넘기도 하고 옆집 아이와 물장난 치며 놀기도 했다. 그런데 그 작은 시내가 라인강으로 흘러들면서 큰 사고를 냈다는 사실을 헨리히프라이제 박사의 인터뷰에서 알게 되었다. 지엽적인 집중호우로 그 시냇물이 몹시 불어난 상태로 라인강에 흘러들었는데, 마침 라인강 상류 지방에 비가 오지 않아 라인강 수위가 낮았기 때문에 낙차가 생겨 물이 폭포수처럼 떨어졌다고 한다.

박사는 “소용돌이치며 떨어지는 거대한 물의 힘에 의해 역행침식 현상이 느닷없이 순식간에 조용히 발생”했다고 당시 상황을 설명했다. 라인강변에 쌓은 돌벽과 산책로가 바로 붕괴되어 떠내려갔고 인근 주민들도 긴급히 대피했다고 한다. 그런데 당시 낙차는 1.8m에 불과했다. 신진교가 무너질 당시 그 지역 남한강 수위는 4.91m 낮아져 있었다. 4대강공사로 준설했기 때문이다.

역행침식 현상은 주민의 생명과 재산을 심각하게 위협하는 재앙이다. 이런 일이 재발하지 않도록 본 시는 철근콘크리트 구조물을 라인강 깊숙히 설치해 그 합류지점을 보강했다. 그 작고 얕은 시내가 본류로 유입되는 지점을 보강하는데 거의 50만 유로(7.5억 원)의 건설비가 들었다고 한다.

박사가 소개하는 또 다른 사례 역시 라인강에서 발생했다.

라 인강 중류 라인가우(Rheingau) 구간의 뱃길 수심을 약간 깊게 하기 위해 뱃길을 좁히는 구조물을 만들었는데, 그 결과 물이 강바닥을 깎아내는 침식이 일어나 20-30cm 정도 깊어졌다. 그 결과 라인강 상류로 거슬러 올라가면서 강바닥과 강기슭이 붕괴되기 시작했고 수많은 라인강 지천에서도 침식이 일어났다. 역행침식 현상은 무려 수십km에 걸쳤다. 수많은 강변도로, 다리, 마을이 위험에 처하자 독일정부는 당장 시설보강공사를 벌였고, 큰 돈이 들었다.

“역행침식은 대단히 위험한 현상”이라고 말하는 박사는 그러나, 독일에서 다시는 이런 일이 일어나지 않을 것이라 확신했다. 이런 경험들을 바탕으로 독일“강의 강바닥 높이를 유지하고 강바닥을 좀 더 높이는 일에 최선을 다할 것이기 때문”이라는 것이다.

<추척 60분> 취재진이, 그렇다면 한국에서는 왜 4대강공사를 시작하자마자 침식현상이 일어나게 되었는지 물었을 때, 그는 4대강사업의 공법에 문제가 있다고 답했다.

“강 에 보를 설치하기 이전에 먼저 강바닥을 준설했기 때문에 재앙이 일어날 준비를 갖추었다고 할 수 있습니다. ... 순서가 매우 좋지 않다는 말입니다. 그래서 이런 재앙이 공사 중에 벌써 일어나는 것입니다. ... 강바닥을 준설하여 강을 깊게 만들고 나면 공사가 끝난 후에도 침식작용은 저절로 계속 진행됩니다. 이것이 강이 스스로 변화하며 발전하는, 매우 위험한 자가역동 현상입니다.”

비현대적이고 시대착오적인 공법

그는 보를 연달아 설치하는 공법도 비현대적이고 시대착오적이라고 지적했다. 그리고 그 공법이 초래할 홍수 위험을 강력하게 경고했다.

“홍수가 나서 보에서 물을 방류하게 되면 그 물은 홍수로 지류에서 내려온 물에 추가되기 때문에, 역사에 없었던 홍수위 상승효과가 날 것입니다. 다시 말하면, 현대적인 가동보로 인해 홍수 위험이 오히려 증가합니다.”

홍 수가 나면 보가 연달아 설치된 강(본류)은 보가 없는 강보다 훨씬 빠른 속도로 흘러내린다고 한다. 즉, 중·하류 구역 지천에서 불어난 물이 본류를 통과해 바다로 채 빠져나가기도 전에, 본류 상류의 홍수로 불어난 물이 높은 속도로 합류해버린다. 더구나 보를 건설하면서 자연상태인 강변과 범람원이 물을 흡수하고 저장하는 효과는 사라져버렸기 때문에 홍수의 위력은 여러모로 겹치게 된다는 것이다.

이런 이유들 때문에 보가 건설된 4대강 주변의 수해는 특히 하류지역을 강타할 텐데, 서울, 부산, 창원처럼 인구밀도가 높은 대도시와 공업지대가 집중적인 피해를 입을 것으로 그는 내다봤다. 그리고 그는 4대강공사가 완공된 후 한국에서 일어날 후유증을 감당하기에는 독일의 경제력 정도로도 턱 없이 부족할 것이라고 예상했다.

“독일인들은 스스로 저지른 실수를 값비싸게 복구한 경험을 한 덕분에 보 건설은 역효과를 낸다는 사실을 인식했습니다. 우리는 절대로 보를 건설하면 안 된다는 것을 깨달았습니다. 보를 건설하는 것은 무책임한 일입니다. 지난 홍수와 같은‘경고 사격'을 받은 즉시 4대강공사를 그만두어야 합니다. 국민경제와 사람의 목숨을 구하기 위해서는 당장 중단해야 합니다.”

이런 헨리히프라이제 박사의 의견은 미국 버클리대의 콘돌프 교수 및 일본 교토대 야마모토 교수의 의견과 일치한다. 하천공사의 후유증을 경험한 나라들의 외국 전문가들 뿐 아니다. 한국의 박창근 교수, 박재현 교수를 비롯한 많은 국내 전문가들도 그간 꾸준히 같은 주장을 해왔다.

나는 4대강사업의 계획과 홍보에 참여하는 국·공립 연구소의 수많은 전문가들도 속으로는 헨리히프라이제 박사의 의견에 동의할 것이라 생각한다. 그들은 3년 전까지만 해도 강을 자연으로 되돌리는 개념에 근거해서 이수와 치수를 연구하고 추진했던 사람들이기 때문이다. 그것은 4대강사업과 정반대였다. 그들은 이명박 정부 아래에서 갑자기 말을 바꾸었지만, 과학기술의 원리가 바뀔 수는 없다.

박사는 한국의 유능한 인재들에게 실력을 발휘할 시간을 주지 않은 채 4대강사업이 너무 성급하고 경솔하게 진행되었다고 안타까워했다.

가난한 사람에게 가혹한 환경재앙

대 다수 국민들도 4대강사업을 불안하게 보고 있다. 어떤 이들은 다음 선거에서 보자고 벼르고 있다. 하지만 4대강공사의 피해는 선거를 통해 되돌릴 수 없다. 나중에 책임자들에게 아무리 많은 벌금을 물리고 아무리 오래 징역을 살려도 전국적으로 변질되고 파괴되는 환경은 결코 되살릴수 없다.

그나마 독일의 하천공사는 150년에 걸쳐 진행되었기 때문에 부작용이 생길 때마다 그때그때 대책을 세워 막을 수 있었지만, 전국에 걸쳐 단기간에 밀어부치는 4대강공사는 이 모든 부작용을 한꺼번에 초래할 것이다. 부작용과 피해는 걷잡을 수 없을 것이다. 독일인들은 150년 전에도 역행침식의 무서움을 알아서 절대로 피했던 대규모 준설까지 겹친 4대강공사. 이 공사가 불러일으킬 재앙의 수준을 예측할 경험치가 지구상 단 곳에도 존재하지 않는다.

지금 이 순간에도 시시각각 변형되어가는 한국의 강을 생각하면, 시간 가는 것이 무섭다. 의사가 오진으로 환자를 마구 해치고 있는데 얼른 메스부터 빼앗아 환자를 살려야지, 나중에 고발하겠다고 인증사진만 찍고 있을 수는 없지 않은가?

사 람들은 자기 돈 10만원만 빼앗겨도 억울해서 잠을 설치지만, 미래의 환경재앙에 대해서는 별로 위기감을 느끼지 못한다. 모두에게 골고루 분포되는 어떤 추상적인 현상이라고만 상상한다. 그러나 환경 재앙은 물, 공기, 음식 등 생존에 필요한 기본 품목의 질을 떨어뜨리고 값을 올려 개개인의 삶이 고단하고 피폐해지는, 개인에게 직접 피해가 가는 현상이다.

더구나 홍수 같은 재앙은 불공평하고 무작위적으로 닥치기 때문에 당한 사람의 입장에선 무척 억울하다. 더욱 억울한 점은, 환경 재앙을 유발하는 사업으로 돈을 번 부자들은 재앙이 일어나도 돈의 힘으로 피해갈 수 있지만, 가난한 사람들은 속절없이 피해자가 된다는 것이다. 뿐만 아니라 그렇게 돈을 번 부자들은 재앙을 이용해 또 돈을 벌면서 세력을 더욱 탄탄히 키운다. 돈과 권력에 대한 중독성이 강해서 자기 물건이 아닌 국토를 팔아 공짜로 돈 먹는 이런 사업은 아무도 자발적으로 그만두지 못한다.

사대강사업의 역사청산

국민은 세금과 국토를 좀 먹는 4대강공사를 막으려고 안간힘을 썼지만 논리가 아닌 힘에 밀려 미리 막는데 실패했다. 국민의 자긍심에 커다란 상처가 남았다

환자의 생명을 무시하고 엉터리 수술을 집도한 의사를 고발하고 벌해야 한다. 복수가 아니라 재발방지 차원에서 반드시 해야 한다. 그래야 뻔뻔한 한탕주의가 대한민국 역사에서 사라진다.

수술을 도운 수련의들도 책임을 져야 한다. 오진인 줄 알면서 동조했건 모르고 복종했건 책임을 피할 수는 없다. 정말 몰랐다면 그들에게 의사로서 자질은 없다. 그래야 그때만 잘 넘기면 되는 기회주의가 대한민국의 역사에서 사라진다.

독 일의 학교는 히틀러 시대 침묵하고 동조했던 절대 다수의 국민들이 나치 범죄의 주요 공범이라고 가르친다. 60년이 지난 오늘까지도 강제수용소 하급간수처럼 하찮은 역할이라도 그 죄질이 인정되면 세계 어디서든 찾아내어 90세 노인이 되어도 법정에 세워 책임을 묻는다.

이렇게 개인에게 자기 행위에 대한 실질적인 책임을 지워야만 그런 역사의 재발을 막을 수 있다. 부도덕한 행위에 동참하여 이익을 보고도 당시의 적법성이나 사회분위기를 핑계로 면죄받는 나라에서는 그런 역사가 계속 되풀이될 수밖에 없다.

전 국토에 역행침식 현상이 퍼지고 있다는 사실을 국민들이 잘 알지 못한다. 언론 탄압에 앞장서는 인사들과 4대강사업에 엉터리 이론적 토대를 제공하는 학자들 때문이다. 훗날 이들에게 엄중한 책임을 물어야 한다. 학자들이 권력기관에 맞춤형 연구결과를 제공한 댓가로 받은 연구비를 환수하는 법을 청원하자는 정인걸 교수의 제안에 나는 적극 찬성한다(정인걸 교수 블로그 보기).

지 금 현재도 한반도의 크고 작은 강들이 상류로 거슬러 올라가며 무너져내리는데, 한편에서는 중장비가 이에 질세라 열심히 강을 파헤치고 있다. 이 절박한 순간에 나는 무기력하게 앉아서 과거와 미래를 논하는 글이나 쓰고 있다. 착잡하다. 그리고 무섭다.

다른 방법은 없을까? 환경과 미래를 팔아 정권을 유지하는 토건국가의 고리를 결단코 끊겠다는 의지를 천명하고 구체적인 대안을 제시하는 정당은 없는가?

출처 : http://www.hanamana.de/hana/index.php?option=com_content&view=article&id=305:2011-01-23-15-26-28&catid=8&Itemid=15

간단히 말하믄
1. 사대강을 깊이 파믄 주변하천(강으로 들어가는 하천)의 물이 빨리 흐르면서
2. 하천의 바닥이 빠른속도로 강으로 쓸려간다
3. 고로 하천도 곧 망가진다

사대강 정비라고 착각하는 냥반들아 정신좀 차리고 단디 좀 보기바란다...
이게 그놈과 그들이 대한민국을 망가뜨리려고 침투된 간첩이라 아니할수 있는가.
Posted by 오즈맨스머프



애완조는 사람이 손으로 만지고 잡아도 도망가지 않는 새 입니드

특히나 참새를 비롯한 많은 새들은 사람손만 가면 도망가걸랑요??? ^6

'쉬어가는 모습 ...' 카테고리의 다른 글

20090321정모영상  (2) 2009.03.22
Posted by 오즈맨스머프


2010-08/17 방송예정이던 PD수첩 보도자료 전문

4대강 수심 6m ··· 누가 밀어 붙였나?

2008 년12월15일, 국가균형발전위원회 회의에서 4대강 살리기 프로젝트가 발표됐다.
소규모의 자연형 보 4개를 설치하고, 강변 저류지를 21곳 설치하며,
4대강의 퇴적 구간에서 홍수를 소통시킬 수 있도록 2억 입방미터를 준설한다는 안이었다.

이 발표 후 정부는 이 기본구상을 토대로 마스터플랜 수립에 들어갔다.
그 후로 4개월 뒤인 2009년 4월27일, 4대강 살리기 마스터플랜 중간발표에서는
자연형 보 4개가 대형 보 16개로 늘어나고 5.7억 ㎡준설을 통해
낙동강의 경우 최소수심 4~6m 수심을 확보한다는 것으로 계획이 변경되었다.

4대강살리기사업이 대운하를 위한 포석 아니냐는 의혹을 받게 된 배경이다.


그렇다면 어떤 이유와 경위로 애초의 기본구상이 바뀌었을까?
4대강살리기사업 마스터플랜 연구총괄책임자인 김모 박사는 국가균형위에 보고된 바 있는
‘4대강살리기 프로젝트’안을 전달받은 바가 없다고 PD수첩에 밝혔다.
그렇다면 누구의 지시로, 어떤 근거로 4대강살리기 프로젝트가 변경된 것일까? 


이와 관련해 PD수첩은 국토해양부 산하 한강홍수통제소에서 08년9월부터 12월 사이,
4대강 살리기 계획의 기본구상을 만들기 위한 비밀팀이 조직됐으며 이 팀에는 청와대
관계자 2명을 비롯, 국토해양부 하천 관련 공무원들이 소속돼 있었다
는 정보를 입수했다.
이는 이명박 대통령이
2008년6월 특별기자회견을 통해 대운하 사업 중단 의사를 밝힌지 불과 3개월 지난 시점이다.
당시 이 모임에 참석한 청와대 행정관은 대통령의 모교인 동지상고 출신과 영포회 회원인 것
으로 확인됐다. 또 이들이 수심을 6m 확보해야 한다는 구상을 실현시키겠다는 의사를
지속적으로 전달했다
는 정보도 입수했다.


그럼에도 불구하고 대운하를 포기한 지 수개월밖에 안된 상황에서 운하와 너무 닮은 계획을
밀어붙이기에는 정치적 부담이 많다는 판단 하에 소규모 안으로 결정됐으며,
수심 6미터 안은 추후 구체화한다는 복안도 있었다는 것이다.
PD수첩은 방송을 통해 당시 이 모임 참석자와 논의내용, 이후 소규모 계획이 운하와 닮은
대규모 4대강 살리기 프로젝트로 변경된 경위 등을 상세히 밝힐 예정이다.



본류에 확보하는 13억㎥의 물 ···· 대부분 “흘러보낼 용도”

정 부는 보와 준설을 통해 모은 물로 고질적인 물 부족 문제를 근본적으로 해결하겠다고 주장한다. 어느 지역에 얼마의 물이 부족한 것일까?
우리나라 하천관리계획 중 최고상위단계인 수자원장기종합계획에 따르면,
낙동강의 경우 2016년에 필요한 물의 양은 1.4억 톤이다.
하지만 추진본부는 2016년 낙동강에 10억 톤의 물을 확보하겠다고 밝히고 있다.
수자원장기종합계획의 부족량보다 6배나 많은 양이다.
왜 이렇게 많은 물을 추가로 확보하려는 것일까? 추진본부는 낙동강에 확보할 물 10억 톤의
상당량이 하천유지용수라고 해명했다. 하천유지용수란 생활용수, 공업용수, 농업용수가
아니라 하천의 유지를 위해 그냥 ‘흘러 보내는 물’이다.


문제는 하천유지용수가 정작 필요한 곳은 본류가 아니라 지류라는 것이다.
우리나라의 주요 지류는 갈수기에 바닥을 드러내왔다. 4대강 마스터플랜 초안에는
‘지류 48개에서 모자라는 하천유지용수’가 17억톤이라고 적시
하며 물 확보의 근거로 삼았다.
즉, 지류에 부족한 물을 확보를 위해 본류에서 무리하게 보를 만드는 셈이다.


PD수첩은 국토해양부가 고시한 물 부족 지역의 지도에 4대강 본류의 위치를 표시해봤다.
그 결과,
4대강 본류 주변은 물부족 지역과 무관하다는 것이 확인됐다. 문제는 정부의 대응이다.
지류에 부족한 물을 왜 본류에 확보하느냐는 비판이 제기된 후 정부는 마스터플랜을 수정됐다.
마스터플랜 초본에는 ‘지류 48개에 부족한 하천유지용수가 17억톤’이라고 적시했는데,
최종본에는 ‘4대강 주요 지점에 부족한 하천유지용수가 17억톤’이라고 수정한 것으로
확인됐다. ‘지류 48’개를 ‘4대강 주요지점’으로 왜곡한 것이다.
정부가 보를 만들어 생태를 파괴하면서까지 대량의 물을 확보하는 근거를 대지 못하자
마스터플랜까지 왜곡한 것 아니냐는 의혹이 제기된다.


정부는 왜 무리하게 대량의 물을 확보하려는 것일까?
이 문제에 대한 마스터플랜 연구총괄책임자인 김모 박사의 발언이 입수됐다.
김박사는 국회에서 열린 토론회에서 ‘낙동강 살리기 사업으로 확보할 10억 톤은
계산된 수치가 아니라, 수심을 확보하기 위해 준설을 하고 난 후 공간을 계산
했더니 10억 톤이다’라는 취지로 설명한 바 있다.
물 부족을 해소하기 위해 보를 만들고 준설을 하는 것이 아니라,
준설을 했더니 10억톤이라는 물의 양이 나왔다는 것이라고 실토
한 것이다.   



낙동강, 1%의 홍수예방을 위해 99% 상습수해지역 외면

정부는 4대강 살리기 사업을 통해  홍수피해를 근본적으로 해결하겠다고 밝혔다.
이를 위해 생태파괴 논란을 무릅쓰고 4대강 본류 구간에 5.7억㎥을 준설한다는 계획이다.
4대강 본류 강바닥을 준설하면 우리나라의 홍수피해가 근본적으로 해소되는 것일까?


PD 수첩은 국토해양부가 고시한 상습수해지역 지도를 입수했다.
이 지도에 4대강 본류의 위치를 표시해 봤다.
그 결과, 4대강 지류는 상습홍수지역과 무관하다는 결론이 나왔다.
이같은 사실은 통계로도 입증된다. 1999년~2003년 사이 발생한 홍수 피해 중 4대강 등
국가하천 피해액이 3.6%였고,
나머지 96.4%가 지방하천과  소하천에서 발생한 것으로 확인됐다.
경상남도의 경우, 지난 10년 동안 전체 홍수 피해액 중
낙동강 본류에서 발생한 홍수피해가 1.3%로 확인됐다
나머지 98.7%의 홍수피해는 지류와 소하천에서 일어난 것이다.
이 통계는 정부의 주장대로 4대강사업이 성공적으로 이뤄지더라도
90% 이상의 홍수피해는 그대로 진행된다는 것을 보여준다.

그렇다면 정부는 왜 생태를 파괴하면서까지 4대강을 준설하는 것일까?
추진본부는 4대강 전 구간에서 200년 빈도의 홍수에 대비하기 위해 준설한다고 밝혔다.
4대강 본류 주변에 대도시와 공단이 위치하기 때문에 홍수가 발생할 경우 대량 피해가 우려
된다는 것이다.
하지만 PD수첩이 확인한 결과 4대강 본류 주변의 대구 부산 등 대도시 구간은
이미 200년 빈도의 홍수에 대비해 설계된 것으로 밝혀졌다.
더구나 지방하천을 끼고있는 소도시와 공단들이 상습적으로 수해를 겪어왔다는 점을 감안하면,
홍수피해를 막기 위해 본류 강바닥을 준설하겠다는 정부의 논리는 설득력이 떨어진다. 



4대강에 개발 바람이 분다.
여당 ‘수변개발 특별법’ 추진한다

4대강사업을 통해 확보할 대량의 물은 어디에 사용하는 것일까?
이와 관련, 문광부가 추진 중인 리버크루즈 계획이 주목을 끈다.

문 화체육관광부 산하 문화관광연구원은 2009년 10월 독일의 프랑크푸르트, 쾰른을 포함한
다섯 개 도시의 답사를 다녀왔다. 답사의 목적은 독일의 리버크루즈(River Cruise) 운영
및 관광 상품화 등 해외 사례를 조사하기 위한 것
이다.
답사를 다녀온 책임연구원은 ‘독일 강의 갈수기 수심은 2~3미터이지만 우리나라는 4대강
사업을 통해 6~8m의 수심이 확보되기 때문에 배를 띄우는 데 문제가 없다’ 고 보고
했다.
이 같은 자료를 기초로 문광부는 4대강을 운항할 리버크루즈 계획을 수립했다.
PD수첩이 확보한 관련 자료에는 2012년 시범 사업, 2014년에는 본 사업에 착수한다고 되어있다. 


4대강주변의 개발계획도 속속 드러나고 있다.
대구시는 낙동강 강정보와 달성보 사이에 에코워터폴리스(Eco-Water Polis) 프로젝트
를 추진하고 있다. 현재 달성습지가 자리한 곳이다.
이곳에 20만톤 규모의 크루즈선을 도입해 카지노 호텔을 운용하고 경정장, 놀이시설 등
테마파크를 조성한다는 계획이다. 이미 지난 5월 미 투자은행인 프로비던트 그룹
(Provident Group)과 ‘에코워터폴리스 개발 및 투자유치를 위한 MOU’를 체결한 바 있다.


4대강주변을 개발하기위한 입법도 추진 중이다.
이미 ‘친수구역 활용에 관한 특별법’ 이 한나라당 의원들에 의해 발의되어 있다.
이 법안에 대해 민주당 등 야권은 ‘4대강 주변의 난개발을 부추기는 법’이라며 반대의사
밝혀왔다.
PD수첩이 입수한 문건에는 여권이 9월~10월 사이 이 법안 통과를 추진할 것으로 되어있다.


2010년 8월17일 방송될 제869회 PD수첩 ‘4대강, 수심 6m 비밀’에서는 4대강살리기사업의
추진 과정, 마스터플랜 작성 과정 등 미공개 사실이 관계자들의 증언을 통해 방송된다.




첫 링크
http://www.imbc.com/broad/tv/culture/pd/vod/?kind=text&progCode=1000836100455100000&pagesize=10&pagenum=1&cornerFlag=1&ContentTypeID=1

다음 링크
https://docs.google.com/document/edit?id=1J-PX-Ast4DcYgL5GtAPAQajwzULxvrqlbVDnedn0l9o&authkey=CPup7c4L&pli=1#

그러나 이는 방송되지 못하였다 ;;
2010년08월24일에 방영되었다.
다만
많은 부분들이 삭제된 것으로 추정되며 단어가 많이 바뀌고 기대치에 못 미쳤음.
Posted by 오즈맨스머프


차트를 만들다 보면

값은 자꾸만 늘어나는데, 차트의 영역은
그에 맞게 자동으로 늘리기가 많이 번거로울 때가 있네여


이럴때에는 "이름정의" 를 사용합니다

이 "이름정의" 를 <유동적인 이름정의>로 사용하면
차트는 그에 맞게 자동으로 늘고 줄고 합니다.


첨부 파일을 사용해보셔요




Posted by 오즈맨스머프


셀의 문자중 일부 문자가 원하는 문자 중 하나일 경우 셀을 달리 나타냅니다.

Posted by 오즈맨스머프


Option Explicit

'새 버전으로 이동합니다'

Sub UserFunctionFind()' === 모듈 시작
' CodeBy [ User_1 ] , Date : 2009-05-26
On Error Resume Next
Dim Linked As Variant, Strs As String
Dim LnkArr As Variant
     Linked = ActiveWorkbook.LinkSources(xlExcelLinks) '링크 차즌 담
Dim i As Double, j As Double
Dim c As Range, rng As Range
Dim Addr As String, AnsAll
Dim AnsAdd As New Collection                           '셀 주소 누적용
     If UBound(Linked) = 0 Then
          MsgBox " 이 시트에는 읍네요", , "그럼 이만..."
          Exit Sub
     End If
Set rng = Application.InputBox(vbLf & "   가로로 두 열 차지합니다", "   기록할 셀 지정", Type:=8)
     ReDim LnkArr(1 To UBound(Linked), 1 To 2)
For i = 1 To UBound(Linked)
          LnkArr(i, 1) = Linked(i)                     '배열 1 째에는 전체이름
     For j = 1 To Len(LnkArr(i, 1))                    '폴더 명과 파일 구분
          Strs = Strs & Mid(LnkArr(i, 1), j, 1)
          If CStr(Mid(LnkArr(i, 1), j, 1)) = "\" Then Strs = ""
     Next
     LnkArr(i, 2) = Strs                               '배열 2 째에 파일명
Next
     For i = 1 To UBound(Linked)                       '일단 닫고
     Workbooks(LnkArr(i, 2)).Close
     Next
i = 0
Strs = Left(Strs, InStr(1, Strs, ".") - 1)
With ActiveSheet.Cells                                           '찾기 시작
     Set c = .Find(Strs, LookIn:=xlFormulas)
     If Not c Is Nothing Then
               Addr = c.Address
          Do
               i = i + 1
               AnsAdd.Add c.AddressLocal(0, 0), CStr(c.AddressLocal(0, 0))
          Set c = .FindNext(c)
          Loop While Not c Is Nothing And c.Address <> Addr
     End If
End With
     For i = 1 To UBound(Linked)
     Workbooks.Open Filename:=LnkArr(i, 1)
     Application.Volatile
     Next
ReDim AnsAll(1 To AnsAdd.Count + 1, 1 To 2)
     AnsAll(1, 1) = "셀 주소"
     AnsAll(1, 2) = "수식"
For i = 1 To AnsAdd.Count
     AnsAll(i + 1, 1) = AnsAdd(i)
     AnsAll(i + 1, 2) = "'" & Range(AnsAdd(i)).Formula
Next
     rng.Resize(AnsAdd.Count + 1, 2) = AnsAll
End Sub         ' ___ 모듈 종료

'새 버전으로 이동합니다'


Posted by 오즈맨스머프


엑셀에서 Lotus123 형식 사용하기???



Posted by 오즈맨스머프


                                                  
  안녕하세요. 오즈맨 입니다.
 시트명은 Sheet1 입니다.
[ 문자열 비교하는 사용자 함수 ] 예제 입니다.
 
10 
B C D E
반복암기장     비교결과
단어 답안  
 aunt  고모 이모 이모  고모 같음
 autumn    가을 <다름>
 baby    아기 <다름>
 banana    바나나 <다름>
 band  끈 악단 끈 악단 같음
  부제 설명 부제,설명 같음
  부제 설명1 부제,설명2 <다름>
      같음


Sheet1
시트 에 사용한 수식
입니다. by MicroSoft Excel v 2003
   $ 가 있는 수식은 절대(혼합)참조로 셀 주소를 고정합니다. 참조하세요!!
No 셀주소 왼쪽의 셀에 수식을 넣으면 오른쪽 결과가 나옵니다. 결과 비고
1 E3 =StrComp(C3,D3) 같음  
2   E3  셀의 수식을 여기에 복사하세요 -→ E3:E10    

   보시는 내용은 위의 표에 값이, 아래의 표에는 해당 셀의 수식이 있습니다.   
   첨부파일을 참조하시거나, 원하는 부분을 시트(셀)에 붙여 넣으세요.
     도움이 되시기를 바랍니다.
수식에 사용자 정의 함수가 있습니다. 다른 파일에서는 안 될 수 있습니다.
  주) 사용자 정의 함수를 많은 셀에 사용하면 버벅거릴 수 있습니다.
사용자 정의 함수를 사용했던 영역은 그 영역을 복사한 다음
편집/메뉴에서 선택하여 붙여넣기를 선택, 값으로 변환하는 것이 좋습니다.사용자 함수 만들기 입니다. [ 클릭 ]

     예제에서는 "고모 이모" 와 "이모 고모" 를 같은 문자로 판단합니다.


Option Explicit
Function StrComp(ChkString_1 As String, ChkString_2 As String, Optional CheckString As String = " ")' === 모듈 시작
' CodeBy [ 오즈맨 ] , Date : 2009-03-29
Dim i As Double, cnt As Double
Dim HisStr1    As Variant
Dim HisStr2    As Variant
Dim MyStr1     As Variant
Dim MyStr2     As Variant
Dim ShrStr     As String
     ShrStr = ","
cnt = Len(ChkString_1) + Len(ChkString_2)
If CheckString = " " Then
     HisStr1 = Trim(ChkString_1)
     HisStr2 = Trim(ChkString_2)
Else
     HisStr1 = Trim(Replace(ChkString_1, CheckString, " "))
     HisStr2 = Trim(Replace(ChkString_2, CheckString, " "))
End If
     HisStr1 = Trim(Replace(HisStr1, ShrStr, " "))
     HisStr2 = Trim(Replace(HisStr2, ShrStr, " "))
For i = 1 To cnt
     HisStr1 = Replace(HisStr1, "  ", " ")
     HisStr2 = Replace(HisStr2, "  ", " ")
Next
     MyStr1 = Split(HisStr1)
     MyStr2 = Split(HisStr2)
If UBound(MyStr1) <> UBound(MyStr2) Then
     StrComp = "<다름>"
     Exit Function
End If
Dim StrNew As New Collection
cnt = UBound(MyStr1)
On Error Resume Next
For i = 0 To cnt
     StrNew.Add i, CStr(MyStr1(i))
Next
For i = 0 To cnt
     Err.Clear
     StrNew.Add i, CStr(MyStr2(i))
     If Err.Number = 0 Then
          StrComp = "<다름>"
          Exit Function
     End If
Next
     StrComp = "같음"
End Function         ' ___ 모듈 종료

파일 다운로드
Posted by 오즈맨스머프


                                                  
Word, Excel 및 PowerPoint 2007 파일 형식용 Microsoft Office 호환팩 자료입니다.
최소한의 OS 및 설치된 응용 프로그램이 필요합니다.
이 설치 파일을 다운로드할수 있는 곳입니다 클릭하셔요(클릭).

필요한 사양 Windows 2000 Service Pack 4
Windows XP Service Pack 1 , 2
Windows Vista
Windows Server 2003

사용 프로그램 Word Excel Microsoft PowerPoint
버전 2000 서비스팩 3 서비스팩 3 서비스팩 3
버전 2002 서비스팩 3 서비스팩 3 서비스팩 3
버전 2003 서비스팩 1 이상 서비스팩 1 이상 서비스팩 1 이상

기타 Microsoft Office Word Viewer 2003
Microsoft Office Excel Viewer 2003
Microsoft Office PowerPoint Viewer 2003
아래는
이전 버전의 Office 프로그램에서
2007 버전의 Word , Excel  및 PowerPoint 파일을 열고 저장하는 방법(클릭합니다)
     
     이 글이 도움이 되기 바랍니다.

                                                  
Posted by 오즈맨스머프











'쉬어가는 모습 ...' 카테고리의 다른 글

왕초 + 용녀 의 후예 이름이 생기다...  (0) 2010.11.18
Posted by 오즈맨스머프


가사파일(확장자가 lrc 인 파일)의 시간을 약간 변경합니다
1초 후 혹은 1초 전 과 같이 조금씩 변경할 수 있습니다.



파일을 받아서 시작폴더에 넣으셔요
도움말
사용할 파일
여깁니다. C:\Program Files\Microsoft Office\OFFICE11\XLSTART\
혹... 오류가 있으면 글을 남겨주셔요
Posted by 오즈맨스머프



엑셀 2007 의 유효성 검사 기능입니다


.
.

'엑셀 2007 전용' 카테고리의 다른 글

2007에서2003의 개체선택 기능 사용하기  (0) 2009.02.25
Posted by 오즈맨스머프


아래와 같이 선택해서 사용합니다.

그림과 같이 진행해서 다른 도구를 추가해서 사용하면
2003의 거의 대부분 기능을 사용할 수 있습니다.

Posted by 오즈맨스머프


매크로 기록중지 도구가 이상해졌거나
혹은 매크로 기록중지 도구가 보이지 않는다면? 그림을 따라해보셔요




vb 창에서 실행할 명령어는 다음과 같습니다.

Application.CommandBars("Stop Recording").Reset
Posted by 오즈맨스머프


  안녕하세요. 오즈맨 입니다.
 시트명은 Sheet3 입니다.
[ 만 단위로 금액 표시하기 ] 예제 입니다.
 
10 
11 
12 
13 
14 
15 
16 
B C D E
123 조억만123원 123원 123원
1,086 조억만1086원 1086원 1086원
9,560 조억만9560원 9560원 9560원
84,132 조억8만4132원 8만4132원 8만4132원
740,364 조억74만0364원 74만0364원 74만0364원
6,515,204 조억651만5204원 651만5204원 651만5204원
57,333,796 조억5733만3796원 5733만3796원 5733만3796원
504,537,404 조5억0453만7404원 5억0453만7404원 5억0453만7404원
4,439,929,163 조44억3992만9163원 44억3992만9163원 44억3992만9163원
39,071,376,641 조390억7137만6641원 390억7137만6641원 390억7137만6641원
343,828,114,449 조3438억2811만4449원 3438억2811만4449원 3438억2811만4449원
3,025,687,407,151 3조0256억8740만7151원 3조0256억8740만7151원 3조0256억8740만7151원
26,626,049,182,930 26조6260억4918만2930원 26조6260억4918만2930원 26조6260억4918만2930원
234,009,232,809,789 234조0092억3280만9789원 234조0092억3280만9789원 234조0092억3280만9789원
  0092억을 92억으로 하려면 사용자 함수가 낫습니다.


Sheet3
시트 에 사용한 수식
입니다. by MicroSoft Excel v 2003
   $ 가 있는 수식은 절대(혼합)참조로 셀 주소를 고정합니다. 참조하세요!!
No 셀주소 왼쪽의 셀에 수식을 넣으면 오른쪽 결과가 나옵니다.
(복사)를 누르면 셀의 수식이 클립보드(메모리)로 복사되는데,
익스플로러의 종류에 따라 (복사)가 작동이 안 될 수 있습니다.
결과 수식을
1 C2 =TEXT(B2,"####조####억####만####원") 조억만123원
2   C2  셀의 수식을 여기에 복사하세요 -→ C2:C15    
3 D2 =MID(C2,MIN(FIND({1;2;3;4;5;6;7;8;9},C2&"123456789")),1024) 123원
4   D2  셀의 수식을 여기에 복사하세요 -→ D2:D15    
5 E2 =MID(TEXT(B2,"####조####억####만####원"),MIN(FIND({1;2;3;4;5;6;7;8;9}, TEXT(B2,"####조####억####만####원")&"123456789")),1024) 123원
6   E2  셀의 수식을 여기에 복사하세요 -→ E2:E15    

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

Posted by 오즈맨스머프


  안녕하세요. 오즈맨 입니다.
 시트명은 Sheet11 입니다.
[ 수식에서 사용하는 -- 의 역할 1 ] 예제 입니다.
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
A B C D E
2010 년 4월 의 개수는???
날짜 조건 비교 결과 결과를 숫자로 결과를 숫자로 결과를 숫자로
2010-03-18 FALSE 0 #VALUE! 0
2010-03-24 FALSE 0 #VALUE! 0
2010-04-08 TRUE 1 #VALUE! 1
2010-04-13 TRUE 1 #VALUE! 1
2010-04-21 TRUE 1 #VALUE! 1
2010-04-28 TRUE 1 #VALUE! 1
2010-05-31 FALSE 0 #VALUE! 0
         
  0 4 뭔가…
잘 안되네요
4
  합이 안나옵니다 되네요^^ 되네요^^
    추천 1   추천 2
추천 2 방식이 속도가 가장 빠르더군요


Sheet11
시트 에 사용한 수식
입니다. by MicroSoft Excel v 2003
   $ 가 있는 수식은 절대(혼합)참조로 셀 주소를 고정합니다. 참조하세요!!
No 셀주소 왼쪽의 셀에 수식을 넣으면 오른쪽 결과가 나옵니다.
(복사)를 누르면 셀의 수식이 클립보드(메모리)로 복사되는데,
익스플로러의 종류에 따라 (복사)가 작동이 안 될 수 있습니다.
결과 수식을
1 B3 =TEXT(A3,"yyyy-mm")="2010-04" FALSE
2   B3  셀의 수식을 여기에 복사하세요 -→ B3:B9    
3 B11 =SUM(B3:B9) 0
4   B11  셀의 수식을 여기에 복사하세요 -→ B11:C11,E11    
5 C3 =(TEXT(A3,"yyyy-mm")="2010-04")*1 0
6   C3  셀의 수식을 여기에 복사하세요 -→ C3:C9    
7 D3 =VALUE(TEXT(A3,"yyyy-mm")="2010-04") #VALUE!
8   D3  셀의 수식을 여기에 복사하세요 -→ D3:D9    
9 E3 =--(TEXT(A3,"yyyy-mm")="2010-04") 0
10   E3  셀의 수식을 여기에 복사하세요 -→ E3:E9    

시트명은 Sheet12 입니다.
[ 수식에서 사용하는 -- 의 역할 -2 ] 예제 입니다.
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
B C D E F G
숫자입니다. 문자입니다 원 문자를
제거합니다.
제거하고
*1 합니다
Value
함수를
사용
합니다.
--를
사용
합니다.
다만
셀 서식이
# "원" 입니다.
10원 10원 10 10 10 10
20원 20원 20 20 20 20
30원 30원 30 30 30 30
40원 40원 40 40 40 40
100원 0 0 100 100 100
  합이 안 나옵니다.        
  0 100 100 100
    역시나 되네요^^ 되네요^^ 되네요^^
    안됩니다. 방법 1 방법 2 방법 3
방법 3 방식이 속도가 가장 빠르더군요


Sheet12
시트 에 사용한 수식
입니다. by MicroSoft Excel v 2003
   $ 가 있는 수식은 절대(혼합)참조로 셀 주소를 고정합니다. 참조하세요!!
No 셀주소 왼쪽의 셀에 수식을 넣으면 오른쪽 결과가 나옵니다.
(복사)를 누르면 셀의 수식이 클립보드(메모리)로 복사되는데,
익스플로러의 종류에 따라 (복사)가 작동이 안 될 수 있습니다.
결과 수식을
1 B9 =SUM(B5:B8) 100원
2   B9  셀의 수식을 여기에 복사하세요 -→ B9:G9    
3 D5 =SUBSTITUTE(C5,"원","") 10
4   D5  셀의 수식을 여기에 복사하세요 -→ D5:D8    
5 D11 =SUMPRODUCT(SUBSTITUTE(C5:C8,"원","")) 0
6 E5 =SUBSTITUTE(C5,"원","")*1 10
7   E5  셀의 수식을 여기에 복사하세요 -→ E5:E8    
8 E11 =SUMPRODUCT(SUBSTITUTE(C5:C8,"원","")*1) 100
9 F5 =VALUE(SUBSTITUTE(C5,"원","")*1) 10
10   F5  셀의 수식을 여기에 복사하세요 -→ F5:F8    
11 F11 =SUMPRODUCT(VALUE(SUBSTITUTE(C5:C8,"원",""))) 100
12 G5 =--SUBSTITUTE(C5,"원","") 10
13   G5  셀의 수식을 여기에 복사하세요 -→ G5:G8    
14 G11 =SUMPRODUCT(--SUBSTITUTE(C5:C8,"원","")) 100

   보시는 내용은 위의 표에 값이, 아래의 표에는 해당 셀의 수식이 있습니다.  
   첨부파일이 없습니다, 원하는 부분을 시트(셀)에 붙여 넣으세요.
     도움이 되시기를 바랍니다.
   참고로 !!!
   조건을 판단한 결과는 True / False 이라서 합을 구할 수 없습니다.
   그리고 Left/Right/Substitute 등의 함수로 구한 결과는 숫자가 아닙니다.
   그래서 -- 를 이용합니다.
   논리값에 -- 를 하면 True 는 1 로 False 는 0 으로 변경되고
   문자로 인식된 숫자는 올바른 숫자로 계산됩니다.
   그 결과를 이용하면 합을 구할때 편리합니다.




Posted by 오즈맨스머프




매크로에 보안등급을 지정되어 있을 경우
파일을 열때마다 매크로 보안 어쩌고 하는 창이 보기 귀찮을 수 있습니다.
프로그램 제작자는 프로그램(엑셀파일)안에 제작자의 인증서를 넣을수 있습니다.
이 경우 파일을 간편하게 사용하는 방법입니다.

엑셀 버전 2003 입니다.


참고로 인증서설치용 이라는 파일은 존재하지 않습니다.
여러분이 만든 파일 이름 혹은 열고자 하는 파일 이름입니다.
샘플인증서 라는 인증서 또한 없습니다.
만들어진 파일에 있는 인증서의 이름이 나타납니다

엑셀 버전 2007 입니다.



다운로드하셔요 엑셀 2003
엑셀2007




혹시 엑셀 2007 이상버전에서 아래처럼 적용할수도 있습니다

Posted by 오즈맨스머프


엑셀에서 사용하는 파일은 매크로를 사용해서 사용자가 원하는 기능을 수행시킬 수 있습니다.

이 기능은 사용자에게는 매우 편리한 기능이지만
다른 사람이 만든 파일을 받을 경우 매크로로 인해 나도 모르는 사이에 엉뚱한 작동을 할 수 있습니다.

예를 들면
엑셀에서 취급하던 파일을 특정한 곳으로 메일을 발송하거나 수식이나 서식을 망가뜨릴 수 있겠지요.
그러므로 다른 사람이 만든 파일의 매크로는
특별히 믿을 수 있는 경우가 아니라면 일단 매크로를 실행하지 않아야 하겠지요?

아니면...
은행의 공인인증서를 사용하듯 매크로에다가 나만의 인증서를 넣어두고
이 인증서가 있으면 안전한 매크로니 걱정 말고 실행해라” 고 하는 기능이 필요합니다. 혹은
매크로에 서명을 해두고 서명이 있다면 걱정 말고 실행해라” 고 하는 기능이 필요합니다.


이 기능은 엑셀 2000부터 지원하며, 엑셀 자체 기능이 아닙니다.

Microsoft Internet Explorer 버전 4.0 이상에서 적용되는 기능으로
이 기능을 사용해서 엑셀 파일에 추가되는 매크로에 대한 안정성과 편리성을 높이는 것이지요

고로, 인증서를 만들고 지우는 거 엑셀에서 가능하지 않습니다.

인증서를 만들려면 : SelfCert.exe 파일로 만듭니다.
C:\Program Files\Microsoft Office\OFFICE11\SELFCERT.EXE 과 같은 곳에 있습니다.

지우는거 : 익스플로러에서 삭제할수 있습니다.

인증서를 만드는 방법


엑셀 파일에 매크로를 넣고 빼면서 사용하는 방법


인증서를 지우는 방법


주의 사항

주) 남이 넣어둔 인증서가 있는 매크로를 내가 수정하면
매크로에 저장된 인증서가 파기됩니다.





Posted by 오즈맨스머프





아래로 가는 화살표는 낚시를 드리우는 기능

위로 가는 화살표는

만일 폭탄 들고 있을 때 폭탄으로 터뜨리는 기능입니당

다운받아 사용해도 작동이 되네요(압축 푸세요)

'재밋거리' 카테고리의 다른 글

심심풀이  (0) 2008.11.23
벽돌게임  (2) 2008.04.07
Posted by 오즈맨스머프