У меня есть "sheet2", в котором данные заполняются в зависимости от того, что введено в "sheet1". Заполняемые данные являются либо «N /A», либо определенным оператором.

В sheet2 я хотел бы, чтобы любые строки с «N /A» в столбце G автоматически скрывались и становились невидимыми, если данные в sheet1 изменяются, что приводит к изменению с «N /A».

Я знаю, VBA, вероятно, мой ответ, но у меня нет знаний / опыта работы с ними.

2 ответа2

1

Поскольку вы хотите, чтобы Excel автоматически скрывал и отображал строку / столбец, если указанный столбец содержит #NA error / Value. Так что в этом случае VBA (Macro) - лучшее и удобное решение.

Введите этот код в качестве стандартного модуля на листе 2.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 Dim rng As Range
    Dim cl As Range

    Application.ScreenUpdating = False
    Set rng = [H2:H25]
    For Each cl In rng
        If IsError(cl) Then
            cl.EntireColumn.Hidden = cl = CVErr(xlErrNA)
        Else
            cl.EntireColumn.Hidden = cl = ""
        End If
    Next
    Application.ScreenUpdating = True
End Sub

Замечания:

  • При необходимости измените ссылки на ячейки в коде.
  • Мое предложение вместо того, чтобы скрывать / показывать строку лучше обрабатывать только столбец формулы.
  • Чтобы скрыть ряд заменить, cl.EntireColumn.Hidden с cl.EntireRow.Hidden
0

Попробуйте это .. положить в формулах ..

H1 --> =IF(G1="N/A",0,1)
H2 --> =IF(G2="N/A",H1,H1+1)
J1 --> =IFERROR(INDEX(G:G,MATCH(I1,H:H,0)),"")

тряпка H2 + J1 вниз. некоторые бегущие числа ..

I1 --> 1
I2 --> 2
I3 --> 3
I4 --> 4 and so on..

Надеюсь, колонка J - это то, что вы ищете .. (:

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .