Страницы: 1
RSS
Как определить номер строки и номер столбца для повторяющихся элементов в массиве
 
Доброго времени суток!
Никак не могу придумать идею как решить задачу. Есть массив данных: например 9 столбцов на 14 строк - он может быть любого размера, для примера взял относительно небольшой. В нем есть повтор каких то элементов (в примере это "01" и "02")
Как формулой определить номер строки и столбца первого (сверху вниз и слева направо) элемента, затем второго, затем третьего и т.д. сколько всего их есть.
Прикладываю файл с примером, в нем постарался все расписать что есть и что хочется.
Буду очень рад, если кто-то даст подсказку или решение!
:-)
 
Во вложении пример с решением формулой.
 
Как вариант
 
=НАИМЕНЬШИЙ(ЕСЛИ($C$3:$K$16=N3;$B$3:$B$16);M3)
=НАИМЕНЬШИЙ(ЕСЛИ($C$3:$K$16=N3;$C$2:$K$2);M3)
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
Владимир, для столбцов не пойдет, так как необходимо возвращать наименьший столбец по строке
 
Цитата
StepanWolkoff написал:
для столбцов не пойдет
Вторая формула это и делает.
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
Спасибо большое! Первое решение - полностью рабочее, но малость "громоздкое", т.к. задействованы очень большие диапазоны (доп.столбцы)
Второе решение, как я понял, сделано только для строк, верно?

Формулы Владимира очень компактные, но верно работает только для строк, а для столбцов - нет (
 
Цитата
Zhukov_K написал:
Второе решение, как я понял, сделано только для строк, верно?
Для столбцов тоже, смотрите внимательнее.
Идея решения одинаковая с Владимиром, только для столбцов учтено
Изменено: StepanWolkoff - 18.08.2016 14:07:32
 
формула =ОСТАТ(НАИМЕНЬШИЙ(ЕСЛИ($N20=$C$3:$K$16;--(СТРОКА($C$3:$K$16)-2&"."&СТОЛБЕЦ($C$3:$K$16)-2));$M20);1)*10
дает результат одни ноли (понятно, что введена она как формула массива)

формула =НАИМЕНЬШИЙ(ЕСЛИ($C$3:$K$16=N3;$C$2:$K$2);M3)
дает такой результат (первое число- возвращает формула, второе после "правильно" - то как должно быть):
Скрытый текст
подозреваю, что формула работает правильно, но выдает "номера" не той последовательности (не соблюдается принцип "слева-направо и далее сверху-вниз")
 
Для строк лучше применять формулу от StepanWolkoff - меньше вычислений.

Для столбцов формула массива:
=НАИМЕНЬШИЙ(ЕСЛИ(ИНДЕКС($C$3:$K$16;O3;)=N3;СТОЛБЕЦ($C$3:$K$3)-2);СЧЁТ(1/($N$3:N3&$O$3:O3=N3&O3)))
В сцепленных данных разделитель не применял. При других данных, возможно, нужен.
Сцепить можно в ячейке и этим облегчить формулу.

="01"
Зачем такие изыски?
Формат ячейки - Текстовый. Теперь можно писать хоть с десятком нулей слева
 
vikttur, про "изыски" я понял, знаю это, но тут надо так, просто такие требования скажем так )
за формулу для столбцов спасибо большое! работает как надо, если Вас не затруднит, пожалуйста, прошу объяснить как работает та часть, которая внутри СЧЁТ()
 
Для столбцов:
=НАИМЕНЬШИЙ(ЕСЛИ(ЕСЛИ($C$3:$K$16=N3;ОСТАТ(($B$3:$B$16*9+$C$2:$K$2-9)-1;9)+1);$C$2:$K$2);M3)
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
Цитата
как работает та часть, которая внутри СЧЁТ()
СЧЁТ(1/($N$3:N3&$O$3:O3=N3&O3))
ЕСЛИ в диапазоне значения в строках равны значению текущей строки, то ИСТИНА
СЧЕТ(1/{ЛОЖЬ;ИСТИНА}) - функция игнорирует ошибки.
 
оказалось, что в реальных данных может быть так, что первая строка диапазона не заполнена (не содержит ни "01" ни "02") в этом случае могут возникнуть нюансы... тестирую..
Изменено: Zhukov_K - 19.08.2016 12:32:48
Страницы: 1
Наверх