배열 수식의 적절한 입력 확인 (Microsoft Excel)
Jeffrey의 회사에는 광범위한 CSE (Ctrl + Shift + Enter) 배열 수식을 사용하는 많은 보고서가 있습니다. 누군가가 Enter 키를 누를 때 Ctrl과 Shift를 누르는 것을 잊으면 결과 수식이 정답과 같지 않습니다. 각 셀을 감사하고 \ {} 대괄호를 찾는 것은 지루하고 시간이 많이 걸립니다. Jeffrey는 “누락 된 대괄호”를 찾거나 Ctrl + Shift + Enter를 눌러야 할 때 누르지 않으면 오류 플래그를 발생시키는 빠른 방법이 있는지 궁금합니다.
Excel에서이 작업을 수행하는 고유하거나 공식적인 방법은 없습니다. 즉, 매크로를 기반으로하는 솔루션으로 전환해야합니다.
다행히 VBA는이 문제에 접근 할 수있는 여러 가지 방법을 제공합니다. 한 가지 방법은 단순히 수식을 사용하여 선택 항목 내의 각 수식이 실제로 배열 수식인지 확인하는 것입니다.
Sub MakeCSE1() Dim rCell As Range For Each rCell In Selection rCell.FormulaArray = rCell.Formula Next rCell End Sub
이 매크로는 실제로 매크로를 실행하기 전에 “변환”할 셀을 선택한다고 가정합니다. 원하는 경우 셀 범위를 정의한 다음 (범위에 이름 지정) 항상 해당 범위에서 작업을 수행하는 유사한 매크로를 실행할 수 있습니다.
Sub MakeCSE2() Dim rng As Range Dim rCell As Range Dim rArea As Range Set rng = Range("CSERange") For Each rArea In rng.Areas For Each rCell In rArea.Cells If rCell.HasArray = False Then rCell.FormulaArray = rCell.Formula End If Next rCell Next rArea End Sub
이 매크로는 CSERange라는 범위를 찾은 다음 범위의 모든 셀을 확인합니다. 배열 수식이 포함되어 있지 않으면 수식이 배열 수식으로 변환됩니다.
HasArray 속성을 사용하여 셀에 배열 수식이 포함되어 있는지 확인합니다. 이 속성은 실제로 다른 방식으로 도움이 될 수 있습니다. 예를 들어 다음과 같은 간단한 사용자 정의 함수를 만들 수 있습니다.
Function NoCellArray1(rng As Range) As Boolean NoCellArray1 = Not rng.HasArray End Function
이 함수는 가리키는 셀에 배열 수식이없는 경우 True를 반환합니다. 포함 된 경우 False가 반환됩니다. 그런 다음이 함수를 조건부 형식의 기초로 사용할 수 있습니다. 다음과 같은 방식으로 사용하는 형식을 생성하기 만하면됩니다.
=NoCellArray1(A5)
셀에 배열 수식이 포함되어 있지 않으면 NoCellArray가 True를 반환하므로 조건부 형식은 셀의 색상을 빨간색으로 설정하거나 셀에 필수 배열 수식이 없다는 다른 표시 기호를 설정할 수 있습니다. 다음 함수를 사용하여 동일한 작업을 수행 할 수도 있습니다.
Function NoCellArray2(rng As Range) As Boolean NoCellArray2 = (Evaluate(rng.FormulaArray) <> rng.Value) End Function
완전히 다른 접근 방식은 배열 수식으로 쉽게 인식 할 수 있도록 수식에 무언가를 추가하는 것입니다. 예를 들어 배열 수식 끝에 다음을 추가 할 수 있습니다.
+N("{")
이것은 어떤 식 으로든 계산에 영향을 미치지 않지만 그것이 있는지 쉽게 확인할 수 있습니다. 확인은 다음과 같은 이벤트 핸들러에 의해 수행 될 수 있습니다.
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Right(Selection.FormulaArray, 5) = "(""{"")" Then ActiveCell.Select Selection.FormulaArray = ActiveCell.Formula End If End Sub
처리기는 수식이 ( “\ {“)로 끝나는 지 확인하고 그럴 경우 수식이 배열 수식으로 처리되도록합니다. 이 접근 방식의 가장 좋은 점은 워크 시트에서 Ctrl + Shift + Enter를 다시 누를 필요가 없다는 것입니다. 이벤트 처리기가 자동으로 처리합니다. 어느 시점에서 수식을 정규 (배열이 아닌) 버전으로 다시 변환하려면 + N ( “\ {“)이 포함되지 않도록 수식을 수정하기 만하면됩니다.
_ 참고 : _
이 페이지 (또는 ExcelTips 사이트의 다른 페이지)에 설명 된 매크로를 사용하는 방법을 알고 싶다면 유용한 정보가 포함 된 특별 페이지를 준비했습니다.
link : / excelribbon-ExcelTipsMacros [새 브라우저 탭에서 특별 페이지를 열려면 여기를 클릭하세요]
.
_ExcelTips_는 비용 효율적인 Microsoft Excel 교육을위한 소스입니다.
이 팁 (478)은 Office 365의 Microsoft Excel 2007, 2010, 2013, 2016, 2019 및 Excel에 적용됩니다. 여기에서 Excel의 이전 메뉴 인터페이스에 대한이 팁 버전을 찾을 수 있습니다.
link : / excel-Checking_for_Proper_Entry_of_Array_Formulas [배열 수식의 적절한 입력 확인]
.