Диапазон Excel без пробелов - PullRequest
1 голос
/ 15 января 2020

У меня проблемы с созданием динамического диапазона c, который не содержит пробелов (для использования в списке проверки данных). Я пытался следовать этому руководству:

https://www.myonlinetraininghub.com/excel-ignore-blanks-in-data-validation-list

Найдено в этой теме:

Простой способ удаления пустых ячеек динамически c раскрывающийся список Excel

Однако результат не является удовлетворительным и является просто отражением (пустые места не были удалены). Пожалуйста, смотрите рисунок ниже:

https://imgur.com/a/q4HyjWd

Код, который я использую (взят из руководства):

=IFERROR(INDEX($A$2:$A$100;SMALL(IF(ISTEXT($A$2:$A$100);ROW($A$1:$A$99)); ROW(A1)));"")

И Я хорошо знаю, что это массив, поэтому я использую Ctrl + Shift + Enter, а затем перетащить его вниз. Все еще не работает, как ожидалось ... Есть идеи?: /

1 Ответ

1 голос
/ 15 января 2020

Дело в том, что SMALL подается просто 1 или 2. В то время как есть много 0 значений, которые передаются в SMALL. Таким образом, вы просто упустили какой-то способ исключения EMPTY ячеек из вашего подсчета.

Возможно, вас заинтересует динамический c способ получения последней непустой строки в вашей формуле (вместо жесткого кодирования *). 1009 * или A100). Приведенная ниже формула работает с динамикой c, возвращенной Range, в вашем случае A2:A40. Поместите это в C2 ( NO Требуется CSE):

=IFERROR(INDEX(A:A,SMALL(INDEX((A$2:INDEX(A:A,MATCH("*",A:A,-1))<>"")*(ROW(A$2:INDEX(A:A,MATCH("*",A:A,-1)))),),COUNTBLANK(A$2:INDEX(A:A,MATCH("*",A:A,-1)))+ROW(A1))),"")

В основном:

  • MATCH("*",A:A,-1) возвращает строку с последней текст !
  • A$2:INDEX(A:A,MATCH("*",A:A,-1)) возвращает динамический c диапазон> A2:A40
  • COUNTBLANK(A$2:INDEX(A:A,MATCH("*",A:A,-1)))+ROW(A1)) исключит все пустые ячейки, которые будут возвращены индекс SMALL.
...