Отображать строки как пустые, если другая ячейка пуста

#excel #excel-formula #vba

#excel #excel-формула #vba

Вопрос:

У меня есть следующая таблица «больницы» в Excel:

 A B C D E 
1 Регионы Регион 1 Регион 2 Регион 3 Регион 4
2 Регион 1 Больница 1 Больница 6 Больница 11 Больница 15
3 Регион 2 Больница 2 Больница 7 Больница 12 Больница 16
4 Регион 3 Больница 3 Больница 8 Больница 13 Больница 17
5 Регион 4 Больница 4 Больница 9 Больница 14 Больница 18
6 Регион 5 Больница 5 Больница 10
7 Область 6
8 Область 7
9 Область 8

На моем листе «отчет» у меня настроена следующая таблица с заголовками столбцов «Регион» в A6 и «Больница» в B6:

 A B C D E
6 Приемные выписки из регионального отделения больницы
7 Регион 1 Больница 1 A amp; E 24 12
8 
9
10
11 Больница 2, пункт 45 76
12
13
14
15 Больница 3
16
17
18
19 Больница 4
20
21
22
23 Больница 5 
24

A7 в таблице выше — это выпадающее меню со значениями из A2-A9 из моей таблицы «больницы». Когда это введено, я хотел бы вернуть список больниц из этого конкретного региона в ячейках B7, B11, B15, B19, B23 и т.д. Моего листа «отчет».

Однако, когда дело доходит до последней больницы в соответствующем столбце на листе «больницы», я бы хотел, чтобы форматирование столбцов A: E на листе отчета отображалось как пустое, а не содержало нулей или значений # N / A в столбцах C-E моего листа отчета. Это то, что можно сделать в VBA?

Подводя итог, в принципе, мне нужен некоторый код для рабочей книги, который покажет следующий отчет о диапазоне ячеек!A27: E30 должно быть пустым / незаполненным для любого форматирования, если в ‘больницы!B7’ нет значения. т.е. когда формулы в столбце B листа ‘отчет’ перестанут извлекать значения из столбца b листа ‘больницы’, все, что ниже этого, будет казаться пустым.

Я не уверен, что это возможно.

Ответ №1:

VBA не требуется для выполнения задачи. Для листа «отчет» формула в ячейках:

                 B7: =IFERROR("Hospital "amp;(RIGHT($A$7,1)/1-1)*5 1,"")
               B11: =IFERROR("Hospital "amp;(RIGHT($A$7,1)/1-1)*5 2,"")
               B15: =IFERROR("Hospital "amp;(RIGHT($A$7,1)/1-1)*5 3,"")
               B19: =IFERROR("Hospital "amp;(RIGHT($A$7,1)/1-1)*5 4,"")
               B23: =IFERROR(IF(RIGHT($A$7,1)<3,("Hospital "amp;RIGHT($A$7,1)/1-1)*5 5,""),"")
  

Комментарии:

1. Это просто возвращает ‘1’ в ячейке, в которую введена формула.

2. попробуйте сейчас, в формуле не хватало строки «Больница».