반응형

선택한 영역에서 셀 값이 0인 경우 해당 값을 삭제하는 VBA 코드

 

Sub DeleteZeroValues()
    Dim rng As Range
    Set rng = Application.InputBox("Select a range of cells", Type:=8)

    If rng Is Nothing Then
        MsgBox "Cancelled", vbInformation
        Exit Sub
    End If
    
    Dim cell As Range
    For Each cell In rng
        If cell.Value = 0 Then
            cell.Value = ""
        End If
    Next cell
End Sub
반응형

'VBA' 카테고리의 다른 글

VBA를 사용하여 X 축과 Y 축의 범위 값을 가져오기  (0) 2023.06.14
엑셀 차트크기 조절 VBA  (0) 2023.04.04
열너비 바꾸는 VBA  (0) 2023.02.20
데이터 정렬하기  (0) 2023.02.17
엑셀VBA 잘하는 방법  (0) 2023.02.08
반응형

엑셀에서 영역을 선택하고 선택한 영역의 홀수열의 너비는 10, 짝수열의 너비는 20으로 만드는 vba

 

ChatGPT가 알려준 VBA Code

Sub SetColumnWidth()
    Dim rng As Range
    Set rng = Selection
    Dim i As Integer
    For i = 1 To rng.Columns.Count
        If i Mod 2 = 1 Then
            rng.Columns(i).ColumnWidth = 10
        Else
            rng.Columns(i).ColumnWidth = 20
        End If
    Next i
End Sub

 

원하는 답변을 얻으려면 질문을 얼마나 정확하게 하느냐가 관건이다.

반응형

'VBA' 카테고리의 다른 글

엑셀 차트크기 조절 VBA  (0) 2023.04.04
셀 값이 0인 경우 해당 셀 값 삭제  (0) 2023.02.21
데이터 정렬하기  (0) 2023.02.17
엑셀VBA 잘하는 방법  (0) 2023.02.08
좌표를 시계방향, 반시계방향으로 정렬  (0) 2023.01.15
반응형

 

A열에 국가명이 있고 B열에는 값이 들어 있다.
국가명이 같은 B열의 값을 세로로 붙여 넣고 싶습니다.

 

네이버 지식인의 답변

 

Sub Macro()
Dim vDB, Rev As Variant
Dim T As String
Dim i As Long
 Application.ScreenUpdating = False
    On Error GoTo ET
   vDB = Range("A3").CurrentRegion.Value
  Range("E1").CurrentRegion.ClearContents
  With CreateObject("Scripting.Dictionary")
    For i = 2 To UBound(vDB)
        T = vDB(i, 1)
      If Not .Exists(T) Then Set .Item(T) = CreateObject("System.Collections.Arraylist")
        With .Item(T)
           .Add vDB(i, 2)
'           .Sort
        End With
    Next i
      Range("E1").Resize(, .Count).Value = .keys
    For i = 0 To .Count - 1
        Rev = .Items()(i).Toarray
      Cells(2, 5).Offset(, i).Resize(UBound(Rev) + 1) = Application.Transpose(Rev)
    Next i
  End With
ET:
End Sub

 

20230216_정렬답변.xlsm
0.02MB

반응형
반응형

열너비와 행높이를 같게 만드는 방법에 대해 알아보자.

 

엑셀에서 열너비와 행높이를 같은 숫자를 입력하면 정사각형이 되지 않는다.

 

엑셀 도움말에서 열 너비 및 행 높이 변경을 확인해보니

열너비는 최대 255point(2045pixel), 행높이는 최대409point(546pixel)까지 지정할 수 있다.

기본설정은 열너비 8.43point, 행높이 15.00point

 

◾페이지 레이아웃 보기(보기 탭, 통합 문서 보기 그룹, 페이지 레이아웃 단추)에서 작업하는 경우 열 너비 또는 행 높이를 인치, 센티미터 및 밀리미터 단위로 지정할 수 있습니다. 측정 단위는 기본적으로 인치 단위입니다. 파일 > 옵션 > 고급 > 디스플레이로 이동하여 > 눈금자 단위 목록에서 옵션을 선택합니다. 기본 보기로 전환하면 열 너비와 행 높이가 포인트로 표시됩니다.

 

1. 픽셀단위로 맞추는 방법

 

열너비를 조정하려고 마우스를 열사이에 놓고 드래그하면 너비:12.00(101 픽셀)이 나온다.

 

너비와 높이를 100픽셀로 조정하면

 

아래 그림과 같이 정사각형이된다.

 

 

2. 눈금자를 이용하는 방법

2-1. 파일 > 옵션 > 고급 > 디스플레이로 이동하여 > 눈금자 단위

mm단위가 편하니 mm로 변경한다.

 

2-2. 보기 > 통합문서보기 > 페이지 레이아웃 클릭

 

열너비와 행높이를 mm 단위로 맞출 수 있다.

 

 

위 2방법중 1번 방법을 추천한다.

2번 방법은 입력하고 나면 픽셀값이 입력한 값과 조금 달라지는 경향이 있다.

 

3. VBA를 이용하는 방법

Sub makeSquares()
Cells.RowHeight = 20
With Cells(1, 1)
W = .ColumnWidth
HWratio = .RowHeight / .Width
Cells.ColumnWidth = W * HWratio
End With
End Sub

행높이가 20으로 설정하고 열너비를 행높이와 같게 만든다.

반응형
반응형

수량의 합을 만족하는 해 찾기

 

데이터 \ 분석 \  해찾기를 통해 찾을 수 있다.

 

1.  파일 \ 옵션 \ 추가 기능 \ 해찾기 추가기능 추가

 

 

2. 해 찾기 매개 변수 설정

 구하고 셀을 지정한다. 목표 설정 $C$10

 대상은 지정값으로 구하고자 하는 값 10을 입력한다.

 

 $B$2:$B$7 영역의 값은 0 또는 1만 입력되도록 제한 조건을 설정한다.

 

 

3. 구하고자 하는 값 10이 되는 합은 다음과 같다.

A4, A5, A7을 더하면 10이 된다.

수량의 합을 만족하는 해 찾기.xlsx
0.08MB

 

2022.02.03 - [엑셀] - Newton-Raphson method로 해 찾기

 

Newton-Raphson method로 해 찾기

Newton-Raphson method로 해 찾기 찾는 해는 다음과 같다. x=1.314596 GeoGebra에서 값을 구해 보면 아래와 같다. 비선형 방정식의 해를 찾는 방법으로 Newton-Rapson method는 좋은 방법인 것 같다. 수렴이 느려지

labellota.tistory.com

2022.01.04 - [엑셀] - 2차방정식의 해찾기

 

2차방정식의 해찾기

엑셀에서 2차방정식의 해를 찾으면 다음과 같은 경우에 오류가 발생할 수 있다. ax^2+ bx + c = 0 a=1, b=10^7, c=1 x=9.96515E-8과 1E-07 차이가 남 이런 차이를 해결하기 위해서는 다음과 같이 풀이하면 된다.

labellota.tistory.com

 

반응형
반응형

유효성검사 목록 정렬하기

 

1. 원본 데이터를 선택한 다음 수식 > 이름 정의 를 클릭

 

2. 그런 다음 새 이름 대화 상자에서 선택한 범위의 이름을 이름 텍스트 상자에 입력하고 이 수식을 입력.

 =OFFSET(Sheet1!$A$1, 0, 0, COUNTA(Sheet1!$A:$A)) 

 

 

3. C1셀을 선택하여 다음 수식을 입력합니다.

=IF(COUNTA(List)>=ROWS($A$1:A1), INDEX(List, MATCH(SMALL(COUNTIF(List, "<"&List), ROW(A1)), COUNTIF(List, "<"&List), 0)), "")를 입력하고 Shift + Ctrl + Enter 키를 누른 다음 빈 셀이 나올 때까지 자동 채우기 핸들을 아래로 드래그 한다.

 

4.  수식 셀이 있는 열을 선택하고 수식 > 이름 정의를 클릭한 다음 이름 텍스트 상자에 SortedValues를 새 이름 대화 상자 에 입력합니다

 

 

5. 동적 드롭다운 목록을 만드는 데 필요한 셀 또는 범위를 선택하고 데이터 > 데이터 유효성 검사를 클릭

 

 

오름차순으로 동적 드롭다운 목록 만들기.xlsx
0.01MB

 

https://www.extendoffice.com/documents/excel/2652-excel-drop-down-list-alphabetical-order.html

반응형
반응형

SUM: 셀 범위의 값의 합 계산
AVERAGE: 셀 범위의 값의 평균 계산
COUNT: 셀 범위의 셀 수 계산
MIN: 셀 범위에서 가장 작은 값 계산
MAX: 셀 범위에서 가장 큰 값 계산
IF: 지정된 조건에 따라 두 값 중 하나 반환
VLOOKUP: 값이 주어진 범위에서 검색
INDEX: 배열 내의 값을 반환
MATCH: 배열 내에서 값의 위치를 검색
LEFT: 문자열의 왼쪽에서 지정된 길이의 문자 반환
RIGHT: 문자열의 오른쪽에서 지정된 길이의 문자 반환
MID: 문자열의 중간에서 지정된 길이의 문자 반환
CONCATENATE: 여러 문자열을 결합
DATE: 날짜를 반환
NOW: 현재 날짜와 시간을 반환
TODAY: 현재 날짜만 반환
TIME: 현재 시간만 반환
TEXT: 숫자를 문자열로 변환
ROUND: 숫자를 반올림하여 지정된 소수 자리에서 반올림
ABS
SQRT

반응형
반응형

엑셀VBA  잘하는 방법

 

  1. VBA 기초 개념 학습: VBA의 기본 개념과 문법을 숙지하여야 합니다.
  2. 레코딩 기능 사용: 엑셀 VBA의 레코딩 기능을 사용하여 간단한 매크로를 생성하여 기초 개념을 익히는 것이 좋습니다.
  3. 코드 읽기: 사용하는 기능의 VBA 코드를 읽고, 이해하는 것이 좋습니다.
  4. 예제 코드 참조: 엑셀 VBA를 사용하는 다양한 예제 코드를 참조하여 기술을 습득하는 것이 좋습니다.
  5. 실습: 자신의 매크로를 작성하고 실행하면서 경험을 쌓아보는 것이 좋습니다.

위와 같은 방법들을 적절히 조합하여 엑셀 VBA 스킬을 길러보세요!

 

 

VBA(Visual Basic for Applications)의 기초 개념으로는 다음과 같은 것이 있습니다:

  1. 변수와 상수: 데이터를 저장하는 공간을 구성하는 기본 단위
  2. 연산자: 데이터를 연산하는 기본 도구
  3. 조건문: 특정 조건을 만족하는지 판단하여 결과를 결정하는 구조
  4. 반복문: 특정 조건을 만족할 때까지 특정 구문을 반복 실행하는 구조
  5. 함수와 프로시저: 재사용 가능한 코드 블록
  6. 이벤트 처리: 사용자의 액션에 따라 특정 동작을 수행하는 구조.

VBA 예제 코드는 Microsoft 공식 문서, 온라인 포럼, 전문 개발자 블로그 등에서 검색할 수 있습니다. 예를 들어, Microsoft Developer Network(MSDN), Stack Overflow, Code Project 등의 웹 사이트를 참고할 수 있습니다. 또한, VBA 강좌를 수강하거나 VBA 전문 개발자와의 상담을 통해 VBA 기초 개념과 실제 코드 작성 기술을 배울 수 있습니다.

 

 

 

반응형
반응형

Excel 수식을 사용하여 1에서 45 사이의 6개의 고유 난수를 생성하려면 셀 A1에서 다음 수식을 사용할 수 있습니다.

=RANDBETWEEN(1,45)

그런 다음 셀 A2에서 A7까지 다음 수식을 사용하여 나머지 숫자를 생성할 수 있습니다.

=IF(COUNTIF($A$1:A1,RANDBETWEEN(1,45))=0,RANDBETWEEN(1,45),"")

이 수식은 COUNTIF 함수를 사용하여 임의로 생성된 숫자가 이미 열 A에 있는지 확인하고 없으면 숫자를 반환합니다. 그렇다면 수식은 고유한 번호를 찾을 때까지 새 번호를 계속 생성합니다. 그런 다음 F9 키를 눌러 시트를 다시 계산하고 새로운 난수 집합을 생성할 수 있습니다.

새 숫자 세트를 생성하려면 F9를 눌러 시트를 다시 계산해야 합니다. 시트를 다시 계산할 때마다 숫자가 변경됩니다.

반응형
반응형

선택한 영역에서 0보다 큰 수 중 가장 작은 값 찾기

 

=MIN(IF(A1:A10>0,A1:A10))

 

배열 함수이므로 Ctrl+Shift+Enter

 

위의 수식은 A1에서 A10까지의 범위에서 0보다 큰 수만 고려하여 가장 작은 값을 찾습니다.

 

MIN 함수와 IF 함수의 조합을 사용할 때 #Value 오류가 발생하는 경우가 있습니다. 이는 MIN 함수가 빈 값을 처리하지 못하는 문제 때문입니다. 

 

이를 해결하기 위해서는 아래의 수식을 사용하세요:
=AGGREGATE(15,6,A1:A10/(A1:A10>0),1)

AGGREGATE 함수는 MIN 함수와 동일하게 작동하지만, 빈 값을 처리할 수 있습니다. 위의 수식은 A1에서 A10까지의 범위에서 0보다 큰 수만 고려하여 가장 작은 값을 찾습니다.

 

 AGGREGATE 함수는 숨겨진 행과 오류 값을 무시할 수 있는 옵션을 통해 목록이나 데이터베이스에 여러 가지 집계 함수를 적용할 수 있다.

반응형

+ Recent posts