#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. попробуйте сейчас, в формуле не хватало строки «Больница».