Доброго времени суток. В общем такая ситуация, есть три столбца, в первом значения внесены в каждой ячейке, второй столбец может быть заполнен через строку, в третьем необходим итог. Если подробнее: необходимо сравнить значение объединенной ячейки (B1 B2), в которой стоит цифра 2 с каждой ячейкой из диапазона А1:А3 до непустой ячейки В3 (т.е. с А1 и А2) и вывести результат в ячейку С1 (если A1<B1 и А2 < В1, то "М", если A1<B1 и А2 > В1 "Н") посредством стандартных формул без использования VBA и использования дополнительных строк и ячеек. Возможна ли такая реализация или проще не ломать голову над этой задачей?
DeLakrua, во-первых, Ваш пример не соответствует описанию, а во-вторых в реальном файле объединенные ячейки тоже будут случайным образом перемежаться "одиночными"?
Я к тому, что стандартными функциями не очень удобно вычислять объединенная ячейка или нет. Можно проверять не является ли следующая строка в данном столбце пустой, но мне кажется, с VBA будет проще UPD проверяйте
формулами в принципе значения подбить в объединенной ячейке не проблема, через функцию "ПРОСМОТР", но дальше не хватает фантазии, поскольку общее значение объединенной ячейки будет "М" не зависимо от того, что нижние значения будут "Н"
посмотрел в принципе работает, единственное, для трех объединенных ячеек формула увеличится почти на порядок. а есть ли вариант найти последнюю пустую ячейку перед последующей непустой и на том уровне сверить числа?
По сравнению с формулой МВТ она требует, чтобы после списка в ст. В была непустая ячейка. Но число просматриваемых ячеек, соответствующих объединенной, практически неограничено (999).
Поторопился. Варианты не правильные, но убирать не буду, может кого на правильную мысль наведет. Изменил формулу файл тоже. Длинновата формула получилась. Вроде правильная, проверяйте.
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