Индексный матч - удаление пробелов из столбца таблицы - PullRequest
0 голосов
/ 23 октября 2018

Это то, что было отправлено из формулы, сортируя числа по пробелам

Исходные столбцы таблицы с пробелами

Я не знаю, почему он сделал это для этого одного столбца, он работал для всех остальных столбцов в таблице, кроме этого.Просто любопытно, почему Excel не заполняет формулу должным образом.

{=IFERROR(INDEX(Q137:Q151,SMALL(IF(Q137:Q151<>"",ROW(Q137:Q151)-ROW(Q136)),ROW()-ROW(Q136))),"")}

Ответы [ 2 ]

0 голосов
/ 24 октября 2018

Оказывается, я идиот и у меня все время было место в камере, я извиняюсь ....

Формула:

{=IFERROR(INDEX(N137:N151,SMALL(IF(N137:N151<>"",ROW(N137:N151)-ROW(N136)),ROW()-ROW(N136))),"")}

(с "N136"всегда являясь ячейкой непосредственно перед началом фактического списка данных)

Работает как удивительная функция для удаления пустых ячеек из строки с целью расширения до других функций, таких как динамический именованный диапазон, который отлично подходит для графикови автоматический список проверки данных.

0 голосов
/ 23 октября 2018

Мне было так любопытно, и я просто не могу понять, как могла бы работать ваша прежняя формула ... Я разлагаю части, и результат не имеет смысла ...

Это проверено и должно работать.., поместите это в любую ячейку (мой пример W137).Введите его с помощью Ctrl + Shift + Enter, поскольку это формула массива.

{=IFERROR(INDEX($Q$137:$Q$151, SMALL(IF(ISBLANK($Q$137:$Q$151), "", ROW($Q$137:$Q$151)-MIN(ROW($Q$137:$Q$151))+1), ROW(Q1))),"")}

Обратите внимание R1, первая ячейка должна начинаться с ячейки R1.

enter image description here


РЕДАКТИРОВАТЬ

Наконец-то я получил его на работу (все значения в столбце G-I сделаны по формуле массива)... Спасибо, что дали мне больше разъяснений:)

Ваша формула использует строку выше диапазона, который вы установили в качестве точки фиксации.Это вычитает это значение из текущей строки, которую вы смотрите.Таким образом, эти значения должны быть зафиксированы с помощью $, а также вашего диапазона.

Это сработало в моей ячейке I5, Ctrl + Shift + Enter для ввода массива:

{=IFERROR(INDEX($E$5:$E$18,SMALL(IF($E$5:$E$18<>"",ROW($E$5:$E$18)-ROW($E$4)),ROW()-ROW($E$4))),"")}

enter image description here

Не запутайтесь в моей картинке, где я ввожу формулу.Я использую скандинавскую версию с разделителем ";" вместо ",".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...