와~ 엑셀에 모르는게 있어서 chatGPT 한테 물어봤더니요
알림
|
페이지 정보
작성일
2024.05.02 16:04
본문
댓글 24
/ 1 페이지
0복61러님의 댓글의 댓글
@0복61러님에게 답글
아! 단순괄호만이 아니라 텍스트도 같이 표기되야 하는군요..
Planet님의 댓글의 댓글
@0복61러님에게 답글
그러게요. 괄호가 문제가 아니라 텍스트랑 한칸에 같이 있는게 문제인가봐요. 괄호를 없애봐도 안되는거보니...
Planet님의 댓글의 댓글
@동마니다님에게 답글
저도 이럼 될거같긴한데.. 이렇게 귀찮게 해야만 하는건가요 ㅜㅜ
피자왕버거님의 댓글
예를 들어
A1: 삼성보험
B1: 200000
C1: =A1 & " " & TEXT(B1,"(#,###)")
이렇게 하면
C1에 삼성보험 (200,000)
이렇게 표시될 거에요.
A1: 삼성보험
B1: 200000
C1: =A1 & " " & TEXT(B1,"(#,###)")
이렇게 하면
C1에 삼성보험 (200,000)
이렇게 표시될 거에요.
Planet님의 댓글의 댓글
@피자왕버거님에게 답글
아... 할일이 많아지네요 ㅋㅋㅋㅋ 감사합니다~
피자왕버거님의 댓글의 댓글
@Planet님에게 답글
A열은 항목만,
B열은 금액만 넣으면 되고,
C열은 첫 번째 행에서 수식 적은 후
마우스로 죽 끌어당기면
나머지 행은 자동으로 계산해 주니까
그렇게 불편하지는 않으실 거에요
화이팅!!!
- - - - - - - - - - - - - - - - - - - - - - - -
이라고 적었는데
아래 달력 만들 거라는 댓글을 보니
고민이 되셨겠다 싶네요
B열은 금액만 넣으면 되고,
C열은 첫 번째 행에서 수식 적은 후
마우스로 죽 끌어당기면
나머지 행은 자동으로 계산해 주니까
그렇게 불편하지는 않으실 거에요
화이팅!!!
- - - - - - - - - - - - - - - - - - - - - - - -
이라고 적었는데
아래 달력 만들 거라는 댓글을 보니
고민이 되셨겠다 싶네요
Planet님의 댓글의 댓글
@피자왕버거님에게 답글
ㅋㅋㅋㅋ 다시 다 해야할판이예요 ㅋㅋ 근데 신기한게 한글에서 하다가 엑셀이 낫겠다 싶어서 온건데.. 한글에선 됩니다!!! ㅜㅜ
일리맛있어님의 댓글
기본은 항목과 금액을 다른 레코드로 만들어야죠...
그 다음 항목과 금액을 지정한 셀서식 적용해서 합치면 될 일입니다.
그 다음 항목과 금액을 지정한 셀서식 적용해서 합치면 될 일입니다.
일리맛있어님의 댓글의 댓글
@Planet님에게 답글
저라면 날짜/항목/금액으로 테이블 만든 다음에
lookup 이나 match 또는 offset 으로 달력에 끌고 올 것 같습니다.
나중에 변동사항 있으면 지출항목 테이블만 수정하면 되도록...
lookup 이나 match 또는 offset 으로 달력에 끌고 올 것 같습니다.
나중에 변동사항 있으면 지출항목 테이블만 수정하면 되도록...
Planet님의 댓글의 댓글
@일리맛있어님에게 답글
그걸 제가 알았더라면 얼마나 좋았을까요... 그럼 이런 고생을 하지 않았을.. ㅜㅜ
구운계란님의 댓글
요샌 도움을 못 받았었는데.. ChatGPT 처음 나왔을때 엑셀에 물어보니 뭔가 대단하게 설명을 해주는데 그대로 하니 안되었습니다 ㅋㅋㅋ
다만 약간 구체적으로 물어보니 답을 해 주었고요.
다만 약간 구체적으로 물어보니 답을 해 주었고요.
Planet님의 댓글의 댓글
@구운계란님에게 답글
그러게요 몇 번 대화를 하니까 더 알려주긴 하더라구요 ㅋ
Planet님의 댓글의 댓글
@x파리도새다님에게 답글
신기하게 한글 표만든거에선 오히려 이게 바로 적용이 됩니다...!
Marvel님의 댓글
Sub ConvertNumbersWithText()
Dim rng As Range
Dim cell As Range
Dim originalText As String
Dim newText As String
Dim startPos As Integer
Dim endPos As Integer
Dim numberStr As String
For Each cell In Selection
' 셀의 값을 문자열로 변환하여 괄호가 있는지 확인
originalText = cell.Value
startPos = InStr(originalText, "(")
endPos = InStr(originalText, ")")
If startPos > 0 Then
' 괄호가 있는 경우
If endPos > 0 Then
' 괄호 안의 숫자만 추출
numberStr = Mid(originalText, startPos + 1, endPos - startPos - 1)
' 숫자 형식으로 변환 후 #,### 형식으로 출력
newText = Left(originalText, startPos) & Format(Val(numberStr), "#,###") & Mid(originalText, endPos + 1) & ")"
' 새로운 텍스트로 셀 값 업데이트
cell.Value = newText
End If
End If
Next cell
End Sub
ChatGPT 가 작성해준 답입니다.
Dim rng As Range
Dim cell As Range
Dim originalText As String
Dim newText As String
Dim startPos As Integer
Dim endPos As Integer
Dim numberStr As String
For Each cell In Selection
' 셀의 값을 문자열로 변환하여 괄호가 있는지 확인
originalText = cell.Value
startPos = InStr(originalText, "(")
endPos = InStr(originalText, ")")
If startPos > 0 Then
' 괄호가 있는 경우
If endPos > 0 Then
' 괄호 안의 숫자만 추출
numberStr = Mid(originalText, startPos + 1, endPos - startPos - 1)
' 숫자 형식으로 변환 후 #,### 형식으로 출력
newText = Left(originalText, startPos) & Format(Val(numberStr), "#,###") & Mid(originalText, endPos + 1) & ")"
' 새로운 텍스트로 셀 값 업데이트
cell.Value = newText
End If
End If
Next cell
End Sub
ChatGPT 가 작성해준 답입니다.
Marvel님의 댓글의 댓글
@Marvel님에게 답글
범위가 어떻게 되는지 몰라서 선택열 선택한 후에 코드를 실행해야 합니다.
앙게이님의 댓글
ChatGPT를 여러번 갈궈서... 작동하는거 확인한겁니다. 아래 코드로 해보세요.
Sub AddCommasToNumbers()
Dim cell As Range
Dim valueString As String
Dim numString As String
Dim newValue As String
Dim i As Integer
Dim rightParenthesisPosition As Integer
For Each cell In Selection
valueString = cell.Value
newValue = ""
rightParenthesisPosition = 0 ' 초기화
' 문자열에서 숫자를 찾아 쉼표 추가
For i = 1 To Len(valueString)
If IsNumeric(Mid(valueString, i, 1)) Then
numString = ""
' 숫자 부분 추출
Do While IsNumeric(Mid(valueString, i, 1)) Or Mid(valueString, i, 1) = ","
numString = numString & Mid(valueString, i, 1)
i = i + 1
Loop
' 쉼표 추가
newValue = newValue & Format(CLng(numString), "#,##0")
ElseIf Mid(valueString, i, 1) = ")" Then
' 오른쪽 괄호 위치 기억
rightParenthesisPosition = i
End If
' 문자열에 추가
newValue = newValue & Mid(valueString, i, 1)
Next i
' 오른쪽 괄호 위치가 있고, 숫자가 변경되었을 때 오른쪽 괄호 추가
If rightParenthesisPosition > 0 And newValue <> valueString Then
newValue = Left(newValue, rightParenthesisPosition - 1) & ")" & Mid(newValue, rightParenthesisPosition)
End If
cell.Value = newValue
Next cell
End Sub
Sub AddCommasToNumbers()
Dim cell As Range
Dim valueString As String
Dim numString As String
Dim newValue As String
Dim i As Integer
Dim rightParenthesisPosition As Integer
For Each cell In Selection
valueString = cell.Value
newValue = ""
rightParenthesisPosition = 0 ' 초기화
' 문자열에서 숫자를 찾아 쉼표 추가
For i = 1 To Len(valueString)
If IsNumeric(Mid(valueString, i, 1)) Then
numString = ""
' 숫자 부분 추출
Do While IsNumeric(Mid(valueString, i, 1)) Or Mid(valueString, i, 1) = ","
numString = numString & Mid(valueString, i, 1)
i = i + 1
Loop
' 쉼표 추가
newValue = newValue & Format(CLng(numString), "#,##0")
ElseIf Mid(valueString, i, 1) = ")" Then
' 오른쪽 괄호 위치 기억
rightParenthesisPosition = i
End If
' 문자열에 추가
newValue = newValue & Mid(valueString, i, 1)
Next i
' 오른쪽 괄호 위치가 있고, 숫자가 변경되었을 때 오른쪽 괄호 추가
If rightParenthesisPosition > 0 And newValue <> valueString Then
newValue = Left(newValue, rightParenthesisPosition - 1) & ")" & Mid(newValue, rightParenthesisPosition)
End If
cell.Value = newValue
Next cell
End Sub
Planet님의 댓글의 댓글
@앙게이님에게 답글
헐 대박! 천재신가요 ㅋㅋㅋㅋ 근데 단점이 숫자를 수정해도 쉽표가 따라 바뀌진 않네요..
앙게이님의 댓글의 댓글
@Planet님에게 답글
셀 내용이 변경될 때마다 매크로를 자동으로 실행하도록 설정할 수 있습니다. 이를 위해 Worksheet_Change 이벤트를 사용합니다.
다음은 해당 이벤트를 활용하여 셀 내용이 변경될 때마다 매크로를 실행하는 예시입니다. 아래 코드를 시트 모듈의 코드 창에 붙여넣으면 됩니다.
Private Sub Worksheet_Change(ByVal Target As Range)
' 변경된 셀 범위에서 매크로를 실행합니다.
Call AddCommasToNumbers
End Sub
이제 이 코드를 시트 모듈에 추가하면 해당 시트에서 셀의 내용이 변경될 때마다 매크로가 실행됩니다. 이 방법을 사용하면 셀 내용이 변경될 때 자동으로 매크로를 다시 실행할 수 있습니다.
다음은 해당 이벤트를 활용하여 셀 내용이 변경될 때마다 매크로를 실행하는 예시입니다. 아래 코드를 시트 모듈의 코드 창에 붙여넣으면 됩니다.
Private Sub Worksheet_Change(ByVal Target As Range)
' 변경된 셀 범위에서 매크로를 실행합니다.
Call AddCommasToNumbers
End Sub
이제 이 코드를 시트 모듈에 추가하면 해당 시트에서 셀의 내용이 변경될 때마다 매크로가 실행됩니다. 이 방법을 사용하면 셀 내용이 변경될 때 자동으로 매크로를 다시 실행할 수 있습니다.
소뒷다리님의 댓글