Страницы: 1
RSS
Подсчёт количества серий из цифр
 
Всё перерыл и не могу найти или придумать формулу для подсчёта количества серий из цифр в строке, задача: в строке подряд идут цифры (возможно разные) далее несколько пробелов, далее снова серия цифр, пробелы, серия. Примерно так, максимальное количество ячеек в диапазоне строки 31 (по количеству дней месяца). Нужно посчитать количество таких серий. Спасибо, если кто откликнется... 8-0  
 
Формула массива.
Код
=SUM(IF((B6:AG6<>C6:AH6)*(B6:AG6="");1;0))
 
И всё работает))))))))))))))))))))))))
Спасибо Вам огромное!!!!!
 
 А если слева ячейка не пуста, т.е. ещё ряд ячеек перед той, где результат будет, заполнены цифрами, тогда есть решение? Можно конечно столбец вставить и скрыть, но это как-то не корректно...поможете?
 
Peet, есть решение.
Изменено: skais675 - 04.02.2020 14:03:59
 
Спасибо! Правда не понимаю ни фига, но буду пытаться запихать теперь всё это в условносмещаемую сумму. Ещё раз, огромное спасибо!!!
 
Лучше даже так
 
Peet я думаю дальше разберетесь сами.
 
skais675, думаю разберусь!
Огромное СПАСИБО!!!!
 
skais675, и снова трудности, в этом файле если забить одинаковые даты периода (период одни сутки, к примеру 22-ое) то формула теряет значение. И ещё, не могу в массив впихнуть условие, чтобы считала только серии цифр со значением =>18. В 3-ей строке добавлено условие, при котором неважно как задавать период, нормально или через ....в общем наоборот.
Изменено: Peet - 11.02.2020 08:17:08
 
1. не стоит поддаваться паническим настроениям, если ответ на ваш вопрос не поступил в течении 15 минут, после того, как вопрос был опубликован. кого-то заинтересует - напишут.
2. люди ожидают пока условия задачи сформулируются у вас в голове и вы сможете их написать
а то после каждого решения неожиданно появляется важное дополнительное условие, которое требует нового решения!
просто люди сыты этим под завязочку
когда на старте у заказчика одна задача, а по мере ее решения появляются все новые и новые условия)
и если в случае с заказчиком интерес к задаче как-то подогревается деньгами, которые можно заработать, то зачем самостоятельно лезть в эту петлю в вашем случае - лично мне не понятно
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Вообще это уже конечная задача: подсчёт количества серий цифр, которые =>18  за задаваемый период. Просто думал, что с этими условиями справлюсь сам, но пока не нашёл решение...вот и прошу помощи. Спасибо!
 
Peet, Решение.
Изменено: skais675 - 11.02.2020 11:28:12
 
Цитата
Peet написал:
подсчёт количества серий цифр, которые =>18  за задаваемый период
Вариант без формул на VBA:
Скрытый текст
 
aequit, спасибо. Только не совсем понял, каким образом период учтён, считает-то всю строку. Спасибо.

skais675, подсчёт не верный, видите...
 
Peet, поправил.
 
skais675, похоже забыли файл загрузить...
 
Цитата
Peet написал:
Только не совсем понял, каким образом период учтён, считает-то всю строку.
Период задается в аргументе функции в качестве диапазона - 31 ячейка.
Или неправильно считает?

P.s. как с первом посте описано. Там ни о каких периодах речи не было.
P.s.2  Если речь идет о U5 и W5, то добавил пару аргументов в функцию:
Скрытый текст
Изменено: aequit - 11.02.2020 10:55:22
 
Цитата
aequit написал:   как с первом посте описано. Там ни о каких периодах речи не было.
Как видите тема не ограничилась первым постом, задача усложнялась и....практически достигла совершенства...
 
Всем снова доброе время суток! В макросе (написанном aequit и приведённом выше) при подсчёте количества серий цифр в строке производится и подсчёт серий из букв. Кто-то может поможет решить эту проблему, чтобы производился подсчёт количества серий только из цифр >=18. Спасибо!
 
Код
Function fnСерииЦифр(r As Range, НачалоПериода&, КонецПериода&)
    'aequit 11.02.2020 v2
    Dim i&, n&
    Dim b As Boolean
    For i = НачалоПериода& To КонецПериода&
        If IsNumeric(r(i)) Then
           If r(i) >= 18 And b = False Then
              n = n + 1
              b = True
           ElseIf b And r(i) < 18 Then
              b = False
           End If
        End If
    Next i
    fnСерииЦифр = n
End Function
 
Андрей_26,да спасибо, всё получается. А как сделать если 0, то пусто, через простую формулу

=ЕСЛИ(fnСерииЦифр(X15:BB15;V6;X6);fnСерииЦифр(X15:BB15;V6;X6);"")
не получилось (((
 
If IsNumeric(r(i)) and r(i)>0 Then
 
=ЕСЛИ((fnСерииЦифр(X16:BB16;V7;X7));(fnСерииЦифр(X16:BB16;V7;X7));"")

похоже с синтаксисом натупил, так выходит. Спасибо огромное Вам aequit, Андрей_26, за помощь!
Страницы: 1
Наверх