1

У меня есть столбец текстовых элементов, которые могут содержать пробелы (пустые ячейки) между элементами. На другом листе я пытаюсь использовать формулу массива поверх существующего диапазона, чтобы отфильтровать эти пустые места.

Вот формула:

{=IFERROR(INDEX(Input_Page!$C$2:$C$61,SMALL(IF(ISTEXT(Input_Page!$C$2:$C$61),ROW(Input_Page!$C$2:$C$61),""),ROW(Input_Page!C2))),"")}

Который был вдохновлен этим сайтом.

В пустой книге это работает, как и ожидалось, однако, когда я пытаюсь использовать формулу в существующей книге, она помещает ячейки, содержащие «0», в мой список, сгенерированный функцией массива. И входной столбец, и сгенерированный выходной столбец форматируются как текст. Мне нужно, чтобы эти пустые столбцы вообще не отображались в моей области вывода.

область ввода
выходной регион

Любая помощь или совет будет принята с благодарностью!

2 ответа2

1

Этот вопрос был задан ранее, и очень подробный ответ дан здесь.

Этот ответ включает в себя руководство, VBA и решения формул массива. Последний ссылается на этот веб-сайт, но, чтобы перейти к следующему этапу, приведенная здесь формула (слегка измененная в соответствии с вашими данными):

=INDEX($B$1:$B$21, SMALL(IF(ISBLANK($B$1:$B$21), "", ROW($B$1:$B$21)-MIN(ROW($B$1:$B$21))+1), ROW(A1)))

Полученный результат показан в столбце C в таблице ниже. Если вы хотите избежать #NUM! ошибки, оберните приведенную выше формулу в IFERROR(), которая даст результаты в столбце D:

=IFERROR(INDEX($B$1:$B$21, SMALL(IF(ISBLANK($B$1:$B$21), "", ROW($B$1:$B$21)-MIN(ROW($B$1:$B$21))+1), ROW(A1))),"")

0

Вы могли бы попытаться обернуть все это в IF, функция,

=IF( original formula = "", "", original formula )

Так что если он равен пустому, а не вводу 0, он возвращает пустое.

{=IF(IFERROR(INDEX(Input_Page!$C$2:$C$61,SMALL(IF(ISTEXT(Input_Page!$C$2:$C$61),ROW(Input_Page!$C$2:$C$61),""),ROW(Input_Page!C2))),"")="","",IFERROR(INDEX(Input_Page!$C$2:$C$61,SMALL(IF(ISTEXT(Input_Page!$C$2:$C$61),ROW(Input_Page!$C$2:$C$61),""),ROW(Input_Page!C2))),"")}

ИЛИ ЖЕ

Если фактическое значение не имеет значения, просто визуальная подсказка, вы можете создать собственный формат чисел, так что 0 будет отображаться как пустое.

используя ##;##;""

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