Страницы: 1
RSS
Подсчёт количества слагаемых в ячейке
 
Подскажите пожалуйста, каким образом (желательно без макросов) подсчитать количество слагаемых в формуле суммы?  
Например: если в ячейке А1 формула "=3+4+5+2", то чтобы в ячейке B1 отобразилась цифра "4".
 
Функции листа не умеют распознавать формулы в ячейках. Им доступны только значения ячеек (и их ссылки). Так что подсчет слагаемых в формуле возможно сделать только через макрос.
 
без макросов как не знаю,но вот такая функция может помочь:  
 
Function sum_item(a As String) As Integer  
 
   Dim s As String, n As Integer, i As Integer  
   s = Range(a).Formula  
   n = 0  
   For i = 1 To Len(s)  
   If Mid(s, i, 1) = "+" Then n = n + 1  
   Next i  
   If n > 0 Then n = n + 1  
   sum_item = n  
End Function  
искать ее в "определенных пользователем", обращаться:  
sum_item(адрес("требуемая ячейка"))
 
Спасибо за ответ. Только у меня почему-то в той ячейке, куда вставляю эту функцию, пишет "#ЗНАЧ!". Может, что-то я не то делаю?
 
вообще то всё верно.  
за исключением одного нюанса...  
в такой формуле (корректной с точки зрения Excel)  
=12++2++3++4  
насчитает 7 слагаемых ;-)))  
 
ps. а вызывать можно и так: =Sum_item("A1")
 
{quote}{login=}{date=27.09.2007 11:51}{thema=to Slan:}{post}Спасибо за ответ. Только у меня почему-то в той ячейке, куда вставляю эту функцию, пишет "#ЗНАЧ!". Может, что-то я не то делаю?{/post}{/quote}  
скорее всего - неверно вызываете...  
небось пишете - =Sum_item(A1) ?? ;-))  
надо или так - =Sum_item("A1")  
или так - =Sum_item(АДРЕС(1;1))
 
Да, спасибо, всё получилось когда поставил "A1" вместо А1 :)  
Только мне нужно, чтобы при изменении кол-ва слагаемых оно автоматически пересчитывалось, а этого не происходит. И нужно, чтобы формула копировалась перетаскиванием. Может, поможете?
 
Ещё обнаружил "глюк": если количество слагаемых равно одному, то пишет "0".
Страницы: 1
Читают тему
Наверх