Ctrl+화살표에서 건너뛸 수 있도록 수식에서 (진짜) 빈 셀을 만드는 방법은 무엇입니까?

Ctrl+화살표에서 건너뛸 수 있도록 수식에서 (진짜) 빈 셀을 만드는 방법은 무엇입니까?

이 질문수식을 사용하여 완전히 빈 셀을 만드는 방법에 대해 묻습니다.차트에 표시되지 않도록. 해결책은 NA()셀에 값이 적용되도록 하는 공식을 사용하는 것입니다 #N/A.

일반적인 사용 사례로 기본적으로 수식을 포함하는 플래그인 열이 있습니다 IF(*flag_condition*, 1, ""). 그런 다음 SUM()맨 위에는 열에 몇 개의 플래그가 있는지 알려주는 표시가 있습니다. 그런 다음 해당 열 상단 근처에 있는 비어 있는 것처럼 보이는(플래그=false) 셀을 선택하고 Ctrl+를 사용하여 Down해당 열의 비어 있지 않은 다음 셀로 이동하려고 합니다. 특히 플래그가 희박하고 데이터가 길어요.

그러나 Ctrl+는 Down빈 것처럼 보이지만 수식이 있는 다음 셀로 이동합니다.

NA()대신 (a)를 사용하면 ""셀에 값이 표시되고 #N/A, (b) 합계가 값에 적용되며 #N/A, (c) Ctrl+화살표를 사용하여 해당 셀을 건너뛸 수 없습니다.

그러므로 나는 이것을 중복되지 않는 별도의 질문으로 묻습니다.

위의 (c) 및 (b) 문제를 최소한 극복할 수 있는 솔루션이 있습니까?


@JvdV의 요청에 따라 다음은 예입니다.

여기에 이미지 설명을 입력하세요

이 셀과 아래 셀의 수식은 입니다 =IF(MOD(A3,2)=0,1,"").

Ctrl의도된 출력은 +를 누르고 DownB4 대신 B6으로 점프하는 것입니다.

이 경우 플래그가 특별히 희박하지는 않지만 다른 경우에는 그렇습니다.

답변1

VBA와 Worksheet_Change. 세 번째 열인 C를 채웠습니다. 여기에는 A열의 짝수 값에 대한 가 포함되고 1A열의 홀수 값에 대한 값은 비어 있습니다. A열의 값이 변경될 때마다 이 코드가 실행되어 C의 해당 값을 업데이트합니다. 그런 다음 B열을 숨기고 C열을 사용하여 Ctrl+ Arrow탐색을 수행할 수 있습니다.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range

' The variable KeyCells contains the cells that will
' cause an alert when they are changed.
Set KeyCells = Range("A3:A999")

'Suppress further events to avoid cascading changes.
Application.EnableEvents = False

If Not Application.Intersect(KeyCells, Range(Target.Address)) _
       Is Nothing Then

    ' Place your code here.
    If Target.Offset(0, 1).Value = 1 Then
      Target.Offset(0, 2) = 1
    Else
      Target.Offset(0, 2).Clear
    End If

    'Uncomment the next line for troubleshooting.
    'MsgBox "Cell " & Target.Address & " has changed."

End If
'Re-enable further events.
Application.EnableEvents = True
End Sub

이것은 빠르고 더러운 코드이므로 다소 단순화할 수 있습니다. 예를 들어 If … Mod …B열의 수식 대신 VBA 코드에 논리를 넣을 수 있으며 그러면 추가 열이 필요하지 않습니다.

답변2

B3등 의 값이 B4실제로 빈 셀이 아니기 때문에 Excel의 Ctrl+는 단순히 수식을 통한 일종의 값이기 Down때문에 다른 값을 가진 다음 셀로 건너 뛰지 않을 것입니다 .""""

나는 이벤트 모듈과 함께 VBA를 사용하여 이를 극복하려고 노력했습니다 Workbook.Open. 아래:

Private Sub Workbook_Open()

Application.OnKey "^{DOWN}", "ChangeKey"

End Sub

이는 Excel을 열 때 Ctrl+를 누르면 Down라는 모듈을 호출해야 함을 알려줍니다 ChangeKey. 해당 특정 모듈은 다음과 같습니다.

Sub ChangeKey()

With ThisWorkbook.Sheets("Sheet1")
    Set rng = .Range(.Cells(ActiveCell.Row, ActiveCell.Column), .Cells(.Range("B" & Rows.Count).End(xlUp).Row, ActiveCell.Column))
    For Each cl In rng
        If Len(cl) <> 0 And cl.Row > ActiveCell.Row Then cl.Select: Exit For
    Next cl
End With

End Sub

SUM이제 오류 없이 범위에서 사용할 수 있습니다 #N/A.

여기에 이미지 설명을 입력하세요


마음이 바뀌어 #N/A차트 목적으로 셀에 가 필요한 경우 다음 두 가지를 모두 수행할 수 있습니다.

  • SUMIF값을 건너뛰려면 다음을 사용하세요 #N/A.

    =SUMIF(B3:B8,"<>#N/A")
    
  • 값도 ChangeKey건너뛰도록 모듈 을 변경하세요 .#N/A

    For Each cl In rng
        If Application.WorksheetFunction.IsNA(cl) = False Then
            If Len(cl) <> 0 And cl.Row > ActiveCell.Row Then cl.Select: Exit For
        End If
    Next cl
    

    여기에 이미지 설명을 입력하세요

답변3

실제로 VBA에서 코드를 작성하지 않고도 훨씬 더 쉬운 솔루션이 있습니다. 간단히 필터를 삽입하고 '빈' 셀만 선택하세요. 다음으로 '지우기' 아이콘으로 이동하여 '내용 지우기'를 선택하세요. 필터를 제거하면 모든 설정이 완료되어야 합니다.

답변4

CtrlExcel의 + 콤보 Arrow는 데이터 중단에만 응답합니다. 해당 셀에는 수식이 있으므로 데이터가 중단될 일이 없습니다. 이 문제를 해결하는 유일한 방법은 수식이 평가된 후 해당 셀의 "데이터"를 바꾸는 것입니다.

이를 수행하는 기본 방법에는 VBA 또는 비VBA라는 두 가지가 있습니다. 두 방법 모두 셀 수 없이 많은 변형이 있을 수 있습니다. 다음은 두 가지 모두에 대해 내가 찾은 가장 간단한 것입니다.

VBA:

이는 또한 공식 자체를 평가합니다. 수식을 평가할 때마다 버튼을 사용하거나 매크로를 실행하여 수동으로 실행해야 합니다. VBA 코드를 배치할 위치는 코드를 트리거하는 방법에 따라 달라집니다. 나는 접근에 필요한 가장 낮은 수준의 영역에 광산을 두었습니다. 이 경우 Sheet1입니다.

Sub test()

ActiveSheet.Range("B1:B6").Value = Evaluate("=IF(MOD(A1:A6,2)=0,1,"""")")

End Sub

A1:A6은 평가 중인 소스가 있는 위치입니다.

B1:B6은 결과가 나올 곳입니다.

장점: 다른 계산 방법에 비해 매우 빠릅니다.

단점: 복잡한 함수나 배열 함수에 평가를 사용하는 것은 까다로울 수 있습니다. 코드의 범위를 유연하게 만드는 방법이 있지만 여기서는 다루지 않겠습니다.

참고: Worksheet_Change()이벤트를 사용하면 작동합니다. 그러나 나는 시트가 어떤 식으로든 변경될 때마다 코드가 실행되므로 이 솔루션을 피하는 경향이 있습니다. 속도가 느려지거나 시트의 다른 기능을 방해할 수 있습니다.

비VBA:

  1. 평소와 같이 필요한 공식을 사용하십시오.

  2. 결과를 선택합니다(맨 위에서 시작하여 Ctrl+ Shift+를 누르는 것이 Down가장 쉬운 방법입니다).

  3. 복사

  4. 값만 붙여넣기(선택 사항을 변경하지 마세요!)

  5. 나누기를 선택하지 않고 텍스트를 열, 고정 너비로 ​​수행합니다(다시 말하지만, 선택 항목을 변경하지 마십시오).

장점: 유지 관리할 코드가 없습니다. 가지고 있으면 좋은 스킬.

단점: 매번 수동으로 수행해야 합니다. 수식 위에 붙여넣어 필요할 때마다 다시 입력할 수 있습니다.

관련 정보