::: 까만콩 빈이네 :::
까만콩 빈이네의 살아가는 이야기를 기록합니다
RSS
  • Home

팁

20150826164950

8월 26 2015

엑셀(EXCEL) – 수식으로 된 셀에서 숫자만 각 셀로 분리하여 처리하기

 

언젠가 다른 사업부의 생산 부서에서 일하는 사원이 생산 일보를 엑셀에서 작성하는데
제품 아이템마다 F2를 눌러 =25+27+24 … 이런 식으로 입력하는 것을 보고 아이디어를
생각하다가 그만 둔 프로그램이 있었는데 아래의 질문과 같이 비슷한 내용이 있어서
이번에는 시간적 여유가 있고 해서 간단한 팁을 만들어 보았습니다.

http://www.clien.net/cs2/bbs/board.php?bo_table=kin&wr_id=3501134
(엑셀에서 셀 입력내용을 가져올수있을까요?)

간단히 해석하면 셀에 지속적으로 +, – 등으로 추가된 데이터를 분리해 달라는 내용입니다.

저번에 해결하려는 내용을 거꾸로 해석해서 두가지 버전으로 작성해 보았습니다. 우선
해당 셀이 공식(즉 산술식으로 구성되어 있는지 확인)하는 루틴을 작성해서 그 셀 타입이
‘Formulra’일 때만 데이터를 분리 처리하도록 함수를 만들어 인자를 넘깁니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
Option Explicit
 
Function ShowFormulas(Check As Range)
 
Dim TempStr As String
' 셀에 공식?이 있을 때만 처리하도록 코멘트 처리
Select Case True
' Case Check.HasArray
' TempStr = "{" & Check.Array & "}"
Case Check.HasFormula
TempStr = Check.Formula
' Case Else
' TempStr = Check.Value
End Select
ShowFormulas = TempStr
 
End Function
 
' 특정 셀의 공식을 숫자로 분리하는 루틴
Sub Num_Ext_In_Cell(TargetStr As String)
 
Dim TempStr As String
Dim intNum As Integer
Dim NumCnt As Integer
NumCnt = 0
TempStr = ""
For intNum = 1 To Len(TargetStr)
If IsNumeric(Mid(TargetStr, intNum, 1)) Or Mid(TargetStr, intNum, 1) = "." Then
TempStr = TempStr + Mid(TargetStr, intNum, 1)
ActiveCell.Offset(0, NumCnt).Value = TempStr
Else
NumCnt = NumCnt + 1
TempStr = ""
End If
Next intNum
End Sub
 
' 특정 영역을 선택해서 공식을 숫자로 분리하는 루틴
Sub Num_Ext_In_Range()
 
Dim TempStr As String
Dim RngStr As String
Dim intNum As Integer
Dim NumCnt As Integer
Dim RowCnt As Integer
Dim RngCel As Range
Dim RngRef As Range
NumCnt = 0
TempStr = ""
' 검색할 셀의 조건을 셀을 클릭해서 선택
Set RngRef = Application.InputBox("셀 선택", , Type:=8)
 
 
' 검색할 영역에서 선택된 셀과 같은 조건이 있으면 카운트
For Each RngCel In RngRef
RngStr = ShowFormulas(RngCel)
For intNum = 1 To Len(RngStr)
If IsNumeric(Mid(RngStr, intNum, 1)) Or Mid(RngStr, intNum, 1) = "." Then
TempStr = TempStr + Mid(RngStr, intNum, 1)
RngCel.Offset(0, NumCnt).Value = TempStr
Else
' 열의 위치 수정
NumCnt = NumCnt + 1
' 임시 문자열 초기화
TempStr = ""
End If
Next intNum
 
' 열의 위치 리셋
NumCnt = 0
Next
End Sub

이제 버튼 하나 만드시고 만든 버튼에 각각의 매크로 연결하시면 사용 가능하십니다.

ps> 어제 잠깐 고민해 보니 해결 방법이 보여서 진행해 보니 실수부분도 처리가능하네요.

If IsNumeric(Mid(TargetStr, intNum, 1)) Or Mid(TargetStr, intNum, 1) = “.” Then

TempStr = TempStr + Mid(TargetStr, intNum, 1)

ActiveCell.Offset(0, NumCnt).Value = TempStr

위과 같이 바꾸면 실수도 처리가 가능합니다. 추가로 팁을 올리기는 뭐해서 추가합니다.
영역 선택 부분도 조건식 추가하고 정수 처리하는 부분 제거하시면 됩니다.

 

첨부 자료 : 20150826-셀에서 숫자만 분리 추출

By vinipapa • 무른모 • 0 • Tags: 숫자 분리, 숫자만 추출, 엑셀, 팁

20150825142203

8월 25 2015

엑셀(EXCEL) – 글꼴이나 글자색이 다른 것을 조건으로 셀 카운팅

 

제 15호 태풍 고니가 올라와 사무실 바깥 유리창에 비와 바람을 뿌리고
오늘로 예정되었던 협력 회사 Audit는 태풍으로 인해 비행기가 연착되어
내일로 미뤄져서 심심해서 아질게에 올라온 질문 풀이를 시작하였습니다.

http://www.clien.net/cs2/bbs/board.php?bo_table=kin&wr_id=3507316
(글꼴이나 글자색이 다른 것을 조건으로 카운팅 가능한가요?)

Option Explicit

Sub Count_Special_Cell()

Dim cell_cnt As Integer

Dim RngCel As Range
Dim RngFont As Range
Dim RngRef As Range

cell_cnt = 0

‘ 검색할 영역 설정
Set RngRef = Range(“A1”, Range(“C1”).End(xlDown))

‘ 검색할 셀의 조건을 셀을 클릭해서 선택
Set RngFont = Application.InputBox(“셀 선택”, , Type:=8)

‘ 영역을 선택했을 때 에러 처리
If RngFont.Cells.Count > 1 Then

MsgBox “유효하지 않은 셀이므로 다시 선택하세요”

Exit Sub

End If

‘ 검색할 영역에서 선택된 셀과 같은 조건이 있으면 카운트
For Each RngCel In RngRef

If RngCel.Font.Color = RngFont.Font.Color And RngCel.Font.Bold = True _
And RngCel.Font.Underline = xlUnderlineStyleSingle Then

cell_cnt = cell_cnt + 1

End If

Next

‘ 검색된 셀의 갯수를 보여줌
MsgBox cell_cnt

End Sub

위 내용을 해석하면 선택된 셀의 컬러와 Bold, Underline(Single Line)과 값이 같으면
카운터를 세어서 보여주는 것입니다.

첨부 화일 : 20150825-셀 스타일별 카운트

By vinipapa • 무른모 • 0 • Tags: 셀 조건으로 카운팅, 엑셀, 팁

20150805170418

8월 5 2015

엑셀(EXCEL) – VBA, OptionButton을 이용한 책갈피 기능 사용

 

내일이 휴가인데 요사이 경기가 좋지않아 현장직 사원분들은 강제로 오늘부터 휴무에 들어가서
사무직 직원들만 출근했는데 협력 업체 대부분도 휴가 중이고 공장은 돌아가지 않으니 사무실이
적막강산이고 월급루팡 하는 중에 아질게에 아래 질문이 올라와 그냥 뚝딱뚝딱 만들어 봤습니다.

http://www.clien.net/cs2/bbs/board.php?bo_table=kin&wr_id=3499667

그냥 질문의 내용을 간단히 해석하면 책갈피 기능을 원한다는 말씀 같아서 그렇게 만들었습니다.

내용은 아주 간단합니다.

엑셀 > 보기에 첫행 고정으로 틀고정 하시고 책갈피를 원하는 수만큼 OptionButton을 만듭니다.
(개발도구, 디자인모드로 선택하시고 옆의 삽입에서 AcitveX Control의 Optionbutton을 선택합니다)
개발도구에서 Visual Basic을 선택하시고 들어가 Sheet1을 더블 클릭하시고 아래를 복사합니다.

Option Explicit

Private Sub Move_Active_Cell()

Worksheets(“Sheet1”).Activate

Select Case True

Case OptionButton1.Value
Worksheets(“Sheet1”).Range(“A20”).Select
ActiveCell.Interior.ColorIndex = 1

Case OptionButton2.Value
Worksheets(“Sheet1”).Range(“A50”).Select
ActiveCell.Interior.ColorIndex = 3

Case OptionButton3.Value
Worksheets(“Sheet1”).Range(“A70”).Select
ActiveCell.Interior.ColorIndex = 4

Case OptionButton4.Value
Worksheets(“Sheet1”).Range(“A90”).Select
ActiveCell.Interior.ColorIndex = 5

Case OptionButton5.Value
Worksheets(“Sheet1”).Range(“A110”).Select
ActiveCell.Interior.ColorIndex = 5

End Select

End Sub

Private Sub OptionButton1_Click()

Call Move_Active_Cell

End Sub

Private Sub OptionButton2_Click()

Call Move_Active_Cell

End Sub

Private Sub OptionButton3_Click()

Call Move_Active_Cell

End Sub

Private Sub OptionButton4_Click()

Call Move_Active_Cell

End Sub

Private Sub OptionButton5_Click()

Call Move_Active_Cell

End Sub

소스는 그냥 간단하게 버튼이 눌러질 때마다 함수를 호출에서 참 값인 OptionButton의 명령을 실행합니다.
이렇게 하면 버튼이 늘어도 함수만 수정해 주면 되기 때문에 확장과 수정이 편리한 면이 있습니다. 추가로
함수에 위치에 따라 색상이 달라지도록 할 수도 있지요. 책갈피의 기능이기때문에 그 위치는 이동만 하고
나머지 셀에서 데이터를 운용하도록 합니다. 우리가 흔히 책갈피의 색을 다르게 끼우는 것처럼 말입니다.

도움이 되었으면 하네요.
엑셀 자료 : 20150805-선택적 이동(책갈피)

By vinipapa • 무른모 • 0 • Tags: 심심해, 엑셀, 책갈피, 팁

1 2 3

카테고리

  • 매킨토시 (261)
    • 굳은모 (73)
    • 무른모 (194)
  • 빈이네 (303)
    • 가족들 (107)
    • 까만콩 (60)
    • 엄마아빠 (131)
  • 잡동사니 (175)
    • 수다떨기 (37)
    • 정 보 (127)
    • 책읽기 (11)

그 밖의 기능

  • 로그인
  • 글 RSS
  • 댓글 RSS
  • WordPress.org

태그

AirPlay AirPrint Apple BootCamp bundle Database Design Dock Dropbox Edit Event Excel free iPad iPhone iTunes Limitted Free Mac Macbook Mac Bundle MacJournal Mac OSX Macupdate MobileMe OCR Pebble safari Sale share Snow Leopard software Tip tweet Twitter Update Windows 구입 나들이 맥 무료 빈이 업데이트 엑셀 엑셀(EXCEL) 팁
  • 2024 윤석열 탄핵 집회 참석
  • 맥 마이그레이션 중…
  • 동백
  • 같은 나무에 다른 색 잎 들
  • 여름 햇살

↑

© ::: 까만콩 빈이네 ::: 2025
Powered by WordPress • Themify WordPress Themes