비즈니스 정보를 추적하는 워크 시트를 개발할 때 일정 범위의 모든 금요일을 결정해야 할 수 있습니다. 이를 수행하는 가장 좋은 방법은 워크 시트의 데이터와 결과를 표시 할 방법에 따라 다릅니다.

열에 날짜 목록이있는 경우 여러 다른 워크 시트 함수를 사용하여 해당 날짜가 금요일인지 여부를 확인할 수 있습니다.

WEEKDAY 함수는 인수로 사용 된 날짜의 요일에 따라 1부터 7까지의 숫자를 반환합니다.

=WEEKDAY(A2)

이 사용법은 A2의 날짜가 금요일이면 숫자 6을 반환합니다. 이 수식을 날짜 열 옆에 복사하면 Excel의 자동 필터 기능을 사용하여 요일이 6 (금요일) 인 날짜 만 표시 할 수 있습니다.

Excel의 조건부 서식 기능을 사용하여 날짜 목록에서 모든 금요일을 강조 표시 할 수도 있습니다. 다음 단계를 따르십시오.

  1. 날짜 목록을 선택하십시오.

  2. 리본의 홈 탭이 표시되는지 확인합니다.

  3. 스타일 그룹에서 조건부 서식 도구를 클릭합니다. Excel에는 일련의 선택 항목이 표시됩니다.

  4. 새 규칙을 클릭하십시오. Excel에 새 서식 규칙 대화 상자가 표시됩니다.

(그림 1 참조)

  1. 대화 상자 상단의 규칙 유형 선택 영역에서 수식을 사용하여 서식을 지정할 셀 결정을 선택합니다. (그림 2 참조)

  2. 수식 영역에 다음 수식을 입력하여 A2를 1 단계에서 선택한 활성 셀의 주소로 바꿉니다. = WEEKDAY (A2) = 6. 서식을 클릭하여 셀 서식 대화 상자를 표시합니다.

  3. 원하는대로 금요일을 강조 표시하도록 서식 옵션을 설정합니다.

  4. 확인을 클릭하여 셀 서식 대화 상자를 닫습니다.

  5. 확인을 클릭하십시오.

시작 및 종료 날짜를 기준으로 일련의 금요일을 결정하려면 일련의 수식을 설정하여이를 파악할 수 있습니다.

시작 날짜가 A2에 있고 종료 날짜가 A3에 있다고 가정하면 다음 공식을 사용하여 첫 번째 금요일의 날짜를 알아낼 수 있습니다.

=IF(A2+IF(WEEKDAY(A2)<=6,6-WEEKDAY(A2),6)>A3, "",A2+IF(WEEKDAY(A2)<=6,6-WEEKDAY(A2),6))

이 수식을 C2 셀에 넣은 다음 날짜 형식을 지정하는 경우 다음 수식을 사용하여 범위에서 다음 금요일을 결정할 수 있습니다.

=IF(C2="","",IF(C2+7>$A$3,"",C2+7))

이 수식을 여러 셀에 복사하면 A2와 A3에서 지정한 날짜 범위 사이의 금요일 목록이 표시됩니다.

특정 날짜 범위의 금요일을 실제로 “가져 오려면”매크로를 사용해야합니다. 이에 대해 몇 가지 방법이 있습니다. 이 간단한 매크로는 A2 : A24 범위의 모든 날짜를 검사합니다.

금요일 인 경우 날짜는 C2에서 시작하여 C 열에 복사됩니다. 물론 결과적으로 C2에서 시작하는 목록에는 금요일 날짜 만 포함됩니다.

Sub PullFridays1()

Dim dat As Range     Dim c As Range     Dim rw As Integer

Set dat = ActiveSheet.Range("A2:A24")

rw = 2     For Each c In dat         If Weekday(c) = vbFriday Then             Cells(rw, 3).Value = Format(c)

rw = rw + 1         End If     Next End Sub

원하는 경우 A2 : A24 참조를 변경하여 매크로가 검사하는 범위를 변경할 수 있으며, rw (행) 값과 3 (열) 값을 변경하여 날짜가 기록되는 위치를 변경할 수 있습니다. 세포 기능.

시작 날짜와 종료 날짜로 작업하려는 경우 매크로를 수정하여 날짜를 단계별로 진행할 수 있습니다. 다음 매크로는 시작 날짜가 A2 셀에 있고 종료 날짜가 A3 셀에 있다고 가정합니다.

Sub PullFridays2()

Dim dStart As Date     Dim dEnd As Date     Dim rw As Integer

dStart = Range("A2").Value     dEnd = Range("A3").Value

rw = 2     While dStart < dEnd         If Weekday(dStart) = vbFriday Then             Cells(rw, 3).Value = dStart             Cells(rw, 3).NumberFormat = "m/d/yyyy"

rw = rw + 1         End If         dStart = dStart + 1     Wend End Sub

매크로는 여전히 범위에서 금요일을 가져와 C2에서 시작하는 목록에 배치합니다.

또 다른 매크로 접근 방식은 범위 내에서 특정 금요일을 반환하는 사용자 정의 함수를 만드는 것입니다. 다음은이를 수행합니다.

Function PullFridays3(dStartDate As Date, _                       dEndDate As Date, _                       iIndex As Integer)

Dim iMaxDays As Integer     Dim dFirstday As Date

Application.Volatile     If dStartDate > dEndDate Then         PullFridays3 = CVErr(xlErrNum)

Exit Function     End If

dFirstday = vbFriday - Weekday(dStartDate) + dStartDate     If dFirstday < dStartDate Then dFirstday = dFirstday + 7     iMaxDays = Int((dEndDate - dFirstday) / 7) + 1

PullFridays3 = ""

If iIndex = 0 Then         PullFridays3 = iMaxDays     ElseIf iIndex <= iMaxDays Then         PullFridays3 = dFirstday + (iIndex - 1) * 7     End If End Function

다음과 같은 방식으로 워크 시트의 셀에서이 함수를 사용합니다.

=PULLFRIDAYS3(A2,A3,1)

함수의 첫 번째 인수는 시작 날짜이고 두 번째 인수는 종료 날짜입니다. 세 번째 인수는 지정된 범위 내에서 반환 할 금요일을 나타냅니다. 1을 사용하면 첫 번째 금요일을, 2는 두 번째 금요일을 반환합니다. 세 번째 인수에 0을 사용하면 함수는 지정된 범위의 금요일 수를 반환합니다. 지정된 시작 날짜가 종료 날짜보다 큰 경우 함수는 #NUM 오류를 반환합니다.

_ 참고 : _

이 페이지 (또는 ExcelTips 사이트의 다른 페이지)에 설명 된 매크로를 사용하는 방법을 알고 싶으면 유용한 정보가 포함 된 특별 페이지를 준비했습니다.

link : / excelribbon-ExcelTipsMacros [새 브라우저 탭에서 특별 페이지를 열려면 여기를 클릭하세요].

_ExcelTips_는 비용 효율적인 Microsoft Excel 교육을위한 소스입니다.

이 팁 (8147)은 Office 365의 Microsoft Excel 2007, 2010, 2013, 2016, 2019 및 Excel에 적용됩니다. 여기에서 Excel의 이전 메뉴 인터페이스에 대한이 팁 버전을 찾을 수 있습니다.

link : / excel-Pulling_All_Fridays [Pulling All Fridays].