2016-06-09 2 views
0

я в настоящее время есть столбец данных (именованный диапазон VoyCode_NoBlanks), который консолидируется из другого столбца (диапазон VoyCode_Blanks), используя следующую формулу:Могу ли я динамически сортировать список из этой формулы без вспомогательных столбцов?

{=IF(ROW()-ROW(VoyCode_NoBlanks)+1>ROWS(VoyCode_Blanks)-COUNTBLANK(VoyCode_Blanks),"",INDIRECT(ADDRESS(SMALL((IF(VoyCode_Blanks<>"",ROW(VoyCode_Blanks),ROW()+ROWS(VoyCode_Blanks))),ROW()-ROW(VoyCode_NoBlanks)+1),COLUMN(VoyCode_Blanks),4)))} 

(благодаря @ForwardEd для формулы, в Dynamic ranges again - once more, with text strings)

Есть ли способ изменить его, чтобы перечислить эти значения в порядке возрастания, а не только порядок их появления?

Я хотел бы избежать дополнительных столбцов или строк, VBA

+0

Эндрю, вы посмотрели первую формулу в моем ответе? он генерирует отсортированный список с удаленными ячейками. Эссенциально используя эту формулу в столбце C устранит необходимость того, что вы делаете в столбце B (согласно вашему изображению из ссылки Q) –

+0

Да, я посмотрел на нее - есть ли способ ее настроить, t нужна пустая клетка над ним? Боюсь, мне нужно работать с фиксированными номерами строк. –

+0

Ahh, не то, что я знаю ... вы против формулы массива? –

ответ

1
=INDEX($A$2:$A$20, MATCH(0, COUNTIF($B$1:B1, $A$2:$A$20), 0)) 

То есть версия массив предыдущей формулы. Не забудьте ввести его с помощью CONTROL + SHIFT + ENTER. вы узнаете, что сделали это правильно, когда вы видите {} вокруг формулы в строке формул. Вы не можете вводить их вручную. Это может быть формула массива с одной ячейкой. Это означает, что вы делаете это в B2. Затем вы копируете его или перетаскиваете с B3 вниз до конца своего списка.

Не уверен, что для этого требуется, чтобы ячейка была над или не была пустой. Я вытащил его из этого website.

Выполнение небольшого чтения и существует вероятность того, что как предыдущая регулярная формула, так и эта формула массива будут работать до тех пор, пока значение в B1 не будет принадлежать списку.

+0

Не уверен, что я выполняю его правильно - идя с '= INDEX ($ U $ 2: $ U $ 20, MATCH (0, COUNTIF ($ V $ 2: V2, $ U $ 2: $ U $ 20), 0))' as формулу массива - но это просто повторение записей, пока не дойдет до новой. Я проверю ссылку и посмотрю, не проливает ли свет на нее. –

+1

См. Редактирование, которое я сделал в параграфе после формулы. и я собираюсь спать на этот раз, я имею в виду! –