Страницы: 1
RSS
Объединение совпадающих строк, Упростить формулу массива
 
Добрый день! Чувствую, что можно найти более красивое решение, но знаний пока недостаточно. Имеются два столбца (в одном цифры 1,1,1,2,2,3,4,4 итд; в другом буквы а,а,а,б,б,в,г,г итд),требуется прийти к (1,2,3,4 итд в одном; а,б,в,г итд в другом). Т.е. многочисленные совпадающие строки приводятся к единичным. Задачу решаю при помощи формул массива:  
формула №1 для первого столбца с цифрами - {=ИНДЕКС($A$2:$A$40;НАИМЕНЬШИЙ(ЕСЛИ(СЧЁТЕСЛИ($A$1:D1;$A$2:$A$40)=0;СТРОКА($A$1:$A$39));1))} ;
формула №2 для второго столбца с буквами -
{=(СМЕЩ(ИНДЕКС($A$2:$A$40;НАИМЕНЬШИЙ(ЕСЛИ(СЧЁТЕСЛИ($A$1:D1;$A$2:$A$40)=0;СТРОКА($A$1:$A$39));1));0;1))}.

Вопрос 1: Можно ли упростить формулу №1 при помощи других функций или другой записи?
Вопрос 2: Можно ли упростить формулу №2, чтобы буквенные значения "цеплялись" к цифровым без функции СМЕЩ?
 
по 2 вопросу ВПР подойдет.
 
Добрый и Вам.
Можно воспользоваться инструментом "удалить дубликаты". Быстро и на месте.
Цитата
pavka_97 написал:
Вопрос 2: Можно ли упростить формулу №2, чтобы буквенные значения "цеплялись" к цифровым без функции СМЕЩ?
Применить ВПР().
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Цитата
pavka_97 написал:
Вопрос 1: Можно ли упростить формулу №1 при помощи других функций или другой записи?
Такая формула массива:
=ИНДЕКС($A$2:$A$13;ПОИСКПОЗ(;СЧЁТЕСЛИ($C$1:C1;$A$2:$A$13);))
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Цитата
pavka_97 написал: Чувствую, что можно найти более красивое решение,
Для ленивых - расширенный фильтр, только уникальные - как вариант, однако... ;)
"Ctrl+S" - достойное завершение ваших гениальных мыслей!.. ;)
 
pavka_97, без массивных формул
Изменено: a.i.mershik - 12.03.2018 17:03:34
Не бойтесь совершенства. Вам его не достичь.
 
Решение с доп. столбцом.
=(СЧЁТЕСЛИ($B$2:B2;B2)=1)*B2
=ВПР(СТРОКА()-1;$A$2:$C$13;СТОЛБЕЦ()-2;0)
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Всем спасибо за оперативные ответы! Нужно пощупать каждый . Навскидку наиболее подходят безмассивные формулы, нужно погонять их на примерах посложнее . p.s. Можно ли в вышеприведенных безмассивных формулах записать не конкретный,а динамически меняющийся диапазон или безпрограммно (VBA итд) не обойтись?
 
pavka_97, думаю можно все смотреть нужно на примере....
Не бойтесь совершенства. Вам его не достичь.
 
Цитата
pavka_97 написал:
записать не конкретный,а динамически меняющийся диапазон
Всё уже придумано до нас: Динамический диапазон с автоподстройкой размеров
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Спасибо за ссылку, но кажется это не то что я хотел, скорее неточно выразился. Я подразумевал под динамическим диапазоном приблизительно вот что: можно ли сразу описать массив, чтобы  сразу определялся диапазон до последней заполненной ячейки =ИНДЕКС($A$2:$A$13;ПОИСКПОЗ......... сейчас так, а хотелось бы что то вроде (в порядке бреда) =ИНДЕКС($A$2:$A$СЧЕТЗ(A:A);ПОИСКПОЗ.........?
Страницы: 1
Наверх