Страницы: 1
RSS
Сравнение значений в диапазоне с объединенными ячейками
 
Доброго времени суток. В общем такая ситуация, есть три столбца, в первом значения внесены в каждой ячейке, второй столбец может быть заполнен через строку, в третьем необходим итог. Если подробнее: необходимо сравнить значение объединенной ячейки (B1 B2), в которой стоит цифра 2 с каждой ячейкой из диапазона А1:А3 до непустой ячейки В3 (т.е. с А1 и А2) и вывести результат в ячейку С1 (если A1<B1 и А2 < В1, то "М", если A1<B1 и А2 > В1 "Н") посредством стандартных формул без использования VBA и использования дополнительных строк и ячеек. Возможна ли такая реализация или проще не ломать голову над этой задачей?
АBC
112Н
23Н
345М
Прошу прощения, забыл про пример
Изменено: DeLakrua - 20.07.2015 00:24:23
 
У Вас нет файлов для примера?
 
DeLakrua, во-первых, Ваш пример не соответствует описанию, а во-вторых в реальном файле объединенные ячейки тоже будут случайным образом перемежаться "одиночными"?
Изменено: МВТ - 20.07.2015 21:41:53
 
да, в общем необходимо сравнение объединенной ячейки с ячейками правее, которые соответствую области объединения
 
Я к тому, что стандартными функциями не очень удобно вычислять объединенная ячейка или нет. Можно проверять не является ли следующая строка в данном столбце пустой, но мне кажется, с VBA будет проще
UPD проверяйте
Код
=ЕСЛИ(B1="";"";ЕСЛИ(И(СМЕЩ(B1;1;;;)="";A1<>"");ЕСЛИ(И(A1<B1;A2<B1);"М";ЕСЛИ(И(A1<B1;A2>B1);"Н";""));ЕСЛИ(B1>A1;"М";"Н")))

Изменено: МВТ - 20.07.2015 22:55:30
 
формулами в принципе значения подбить в объединенной ячейке не проблема, через функцию "ПРОСМОТР", но дальше не хватает фантазии, поскольку общее значение объединенной ячейки будет "М" не зависимо от того, что нижние значения будут "Н"
 
DeLakrua, Вы мою формулу проверили?
 
посмотрел в принципе работает, единственное, для трех объединенных ячеек формула увеличится почти на порядок. а есть ли вариант найти последнюю пустую ячейку перед последующей непустой и на том уровне сверить числа?
 
DeLakrua, формула написана по Вашему примеру, про возможность объединения более 2-х ячеек Вы не писали. Опять попробую посоветовать делать через VBA
 
У меня вот такая формула массива получилось
Код
=ЕСЛИ(B1="";"";ЕСЛИ(И(СМЕЩ(A1;;;ПОИСКПОЗ(ИСТИНА;B2:B999<>"";))<B1);"M";"H"))
По сравнению с формулой МВТ она требует, чтобы после списка в ст. В была непустая ячейка. Но число просматриваемых ячеек, соответствующих объединенной, практически неограничено (999).
 
Посмотрите варианты, может что понравится. Ячейка в столбце В ниже таблицы должна быть не пустой.
Код
=ЕСЛИ(B2="";C2;ЕСЛИ(МАКС(ИНДЕКС($A$1:A1;ПОИСКПОЗ(9^9;$B$1:B1;1)):ИНДЕКС($A$1:A1;СТРОКА()))<ИНДЕКС($B$1:B1;ПОИСКПОЗ(9^9;$B$1:B1;1));"М";"Н"))
Поторопился. Варианты не правильные, но убирать не буду, может кого на правильную мысль наведет.
Изменил формулу файл тоже. Длинновата формула получилась. Вроде правильная, проверяйте.
Изменено: gling - 20.07.2015 23:50:07
 
Вариация:
=ЕСЛИ(B3="";"";СИМВОЛ(205-(A2<ИНДЕКС($B$1:B2;ПОИСКПОЗ(9^9;$B$1:B2)))))
 
Вот такая UDF получилась
Код
Function ОбъединеннаяЯчейка(Ячейка As Range) As String
If Ячейка = "" Then Exit Function
Dim Maxi
With Ячейка.MergeArea
    If Ячейка.MergeCells Then
        Maxi = Application.WorksheetFunction.Max(.Offset(, -1).Resize(.Rows.Count))
    Else: Maxi = .Offset(, -1)
    End If
End With
If Ячейка > Maxi Then ОбъединеннаяЯчейка = "М" Else ОбъединеннаяЯчейка = "Н"
End Function


 
спасибо всем, что откликнулись, gling Ваш вариант лучше всего мне подходит
Страницы: 1
Читают тему
Наверх