Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Посчитать максимальное количество одинаковых значений подряд - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Посчитать максимальное количество одинаковых значений подряд
cry_dream Дата: Суббота, 19.05.2018, 01:28 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Всем привет. Столкнулся с такой задачей: необходимо посчитать максимальное количестово одинаковых значений подряд
Пример прикрепляю
К сообщению приложен файл: 5109720.xlsx (9.6 Kb)
 
Ответить
СообщениеВсем привет. Столкнулся с такой задачей: необходимо посчитать максимальное количестово одинаковых значений подряд
Пример прикрепляю

Автор - cry_dream
Дата добавления - 19.05.2018 в 01:28
_Boroda_ Дата: Суббота, 19.05.2018, 01:54 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16886
Репутация: 6611 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Так нужно?
Для ДА
Код
=МАКС(МУМНОЖ({-1;1};НАИМЕНЬШИЙ((Таблица1[[#Все];[Да ]]="Нет")*(СТРОКА(Таблица1[#Все])-1);ТРАНСП(СТРОКА(Таблица1))-{1:0}))-1)

Для НЕТ замените в формуле Нет на Да
Формула массива. Вводится одновременным нажатием Контрл Шифт Ентер
К сообщению приложен файл: 5109720_1.xlsx (9.8 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТак нужно?
Для ДА
Код
=МАКС(МУМНОЖ({-1;1};НАИМЕНЬШИЙ((Таблица1[[#Все];[Да ]]="Нет")*(СТРОКА(Таблица1[#Все])-1);ТРАНСП(СТРОКА(Таблица1))-{1:0}))-1)

Для НЕТ замените в формуле Нет на Да
Формула массива. Вводится одновременным нажатием Контрл Шифт Ентер

Автор - _Boroda_
Дата добавления - 19.05.2018 в 01:54
cry_dream Дата: Суббота, 19.05.2018, 02:08 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
При добавление новых данных итоговые цифры не меняются
 
Ответить
СообщениеПри добавление новых данных итоговые цифры не меняются

Автор - cry_dream
Дата добавления - 19.05.2018 в 02:08
_Boroda_ Дата: Суббота, 19.05.2018, 02:39 | Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 16886
Репутация: 6611 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Да, не учел, что там еще пустые есть
Код
=МАКС(МУМНОЖ({-1;1};НАИМЕНЬШИЙ((B1:B999<>"Да")*(СТРОКА(1:999)-1);ТРАНСП(СТРОКА(2:999))-{1:0}))-1)


*формулу изменил, файл перевложил
К сообщению приложен файл: 5109720_2.xlsx (9.8 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995


Сообщение отредактировал _Boroda_ - Суббота, 19.05.2018, 02:44
 
Ответить
СообщениеДа, не учел, что там еще пустые есть
Код
=МАКС(МУМНОЖ({-1;1};НАИМЕНЬШИЙ((B1:B999<>"Да")*(СТРОКА(1:999)-1);ТРАНСП(СТРОКА(2:999))-{1:0}))-1)


*формулу изменил, файл перевложил

Автор - _Boroda_
Дата добавления - 19.05.2018 в 02:39
Светлый Дата: Суббота, 19.05.2018, 09:44 | Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 1868
Репутация: 536 ±
Замечаний: 0% ±

Excel 2013, 2016
Ещё вариант (формула массива Ctrl+Shift+Enter):
Код
=МАКС(ЧАСТОТА(СТРОКА(2:999);ЕСЛИ(B2:B999<>"да";СТРОКА(2:999);)))-1

Доб. Даже:
Код
=МАКС(ЧАСТОТА(СТРОКА(2:999);(B2:B999<>"да")*СТРОКА(2:999)))-1


Программировать проще, чем писать стихи.

Сообщение отредактировал Светлый - Суббота, 19.05.2018, 09:55
 
Ответить
СообщениеЕщё вариант (формула массива Ctrl+Shift+Enter):
Код
=МАКС(ЧАСТОТА(СТРОКА(2:999);ЕСЛИ(B2:B999<>"да";СТРОКА(2:999);)))-1

Доб. Даже:
Код
=МАКС(ЧАСТОТА(СТРОКА(2:999);(B2:B999<>"да")*СТРОКА(2:999)))-1

Автор - Светлый
Дата добавления - 19.05.2018 в 09:44
Chelovekov Дата: Воскресенье, 20.05.2018, 13:47 | Сообщение № 6
Группа: Проверенные
Ранг: Обитатель
Сообщений: 315
Репутация: 0 ±
Замечаний: 80% ±

Excel 2016
А какую использовать формулу если поиск мах значения в строке
К сообщению приложен файл: 8627423.xlsx (10.2 Kb)
 
Ответить
СообщениеА какую использовать формулу если поиск мах значения в строке

Автор - Chelovekov
Дата добавления - 20.05.2018 в 13:47
abtextime Дата: Воскресенье, 20.05.2018, 14:22 | Сообщение № 7
Группа: Проверенные
Ранг: Ветеран
Сообщений: 828
Репутация: 117 ±
Замечаний: 0% ±

Excel 2010
Chelovekov,

с одной стороны, не хочется паразитировать на чужих формулах,
а с другой (сугубое ИМХО), ну проще же UDF за 3 минуты нарисовать, причем универсальную, хоть для строки, хоть для столбца

"Для вас, Козлов, переходов понастроили, а Вы всё под колеса бросаетесь" (с)анекдот :)

[vba]
Код

Public Function MaxSer(RR As Range, V As Variant) As Double

Dim R As Range

For Each R In RR
    If R.Value = V Then
        Counter = Counter + 1
        If Counter > MaxSer Then MaxSer = Counter
    Else
        Counter = 0
    End If
Next R

End Function
[/vba]
К сообщению приложен файл: 8627423-1-.xlsm (15.4 Kb)
 
Ответить
СообщениеChelovekov,

с одной стороны, не хочется паразитировать на чужих формулах,
а с другой (сугубое ИМХО), ну проще же UDF за 3 минуты нарисовать, причем универсальную, хоть для строки, хоть для столбца

"Для вас, Козлов, переходов понастроили, а Вы всё под колеса бросаетесь" (с)анекдот :)

[vba]
Код

Public Function MaxSer(RR As Range, V As Variant) As Double

Dim R As Range

For Each R In RR
    If R.Value = V Then
        Counter = Counter + 1
        If Counter > MaxSer Then MaxSer = Counter
    Else
        Counter = 0
    End If
Next R

End Function
[/vba]

Автор - abtextime
Дата добавления - 20.05.2018 в 14:22
Chelovekov Дата: Воскресенье, 20.05.2018, 14:42 | Сообщение № 8
Группа: Проверенные
Ранг: Обитатель
Сообщений: 315
Репутация: 0 ±
Замечаний: 80% ±

Excel 2016
А теперь если не сложно можно написать макрос что бы он с цифрами поработал, подсчитать серию если значение больше 0 и соответственно равное 0
заранее спасибо
К сообщению приложен файл: _3.xlsm (15.2 Kb)
 
Ответить
СообщениеА теперь если не сложно можно написать макрос что бы он с цифрами поработал, подсчитать серию если значение больше 0 и соответственно равное 0
заранее спасибо

Автор - Chelovekov
Дата добавления - 20.05.2018 в 14:42
abtextime Дата: Воскресенье, 20.05.2018, 14:50 | Сообщение № 9
Группа: Проверенные
Ранг: Ветеран
Сообщений: 828
Репутация: 117 ±
Замечаний: 0% ±

Excel 2010
Chelovekov,

Никаких проблем, две минуты и вуаля

[vba]
Код
Public Function MaxSerPositive(RR As Range) As Double

Dim R As Range

For Each R In RR
    If IsNumeric(R.Value) And R.Value > 0 Then
        Counter = Counter + 1
        If Counter > MaxSerPositive Then MaxSerPositive = Counter
    Else
        Counter = 0
    End If
Next R

End Function
[/vba]

Для = 0 специально не стал делать, потренируйтесь сами, надо всего в одном месте внести изменения
К сообщению приложен файл: 3934072.xlsm (15.8 Kb)


Сообщение отредактировал abtextime - Воскресенье, 20.05.2018, 14:52
 
Ответить
СообщениеChelovekov,

Никаких проблем, две минуты и вуаля

[vba]
Код
Public Function MaxSerPositive(RR As Range) As Double

Dim R As Range

For Each R In RR
    If IsNumeric(R.Value) And R.Value > 0 Then
        Counter = Counter + 1
        If Counter > MaxSerPositive Then MaxSerPositive = Counter
    Else
        Counter = 0
    End If
Next R

End Function
[/vba]

Для = 0 специально не стал делать, потренируйтесь сами, надо всего в одном месте внести изменения

Автор - abtextime
Дата добавления - 20.05.2018 в 14:50
abtextime Дата: Воскресенье, 20.05.2018, 14:54 | Сообщение № 10
Группа: Проверенные
Ранг: Ветеран
Сообщений: 828
Репутация: 117 ±
Замечаний: 0% ±

Excel 2010
Впрочем, для = 0 подойдет и предыдущая UDF MaxSer со вторым аргументом = 0
 
Ответить
СообщениеВпрочем, для = 0 подойдет и предыдущая UDF MaxSer со вторым аргументом = 0

Автор - abtextime
Дата добавления - 20.05.2018 в 14:54
Chelovekov Дата: Воскресенье, 20.05.2018, 15:10 | Сообщение № 11
Группа: Проверенные
Ранг: Обитатель
Сообщений: 315
Репутация: 0 ±
Замечаний: 80% ±

Excel 2016
Не могу понять, вроде перекинул макрос в модуль, а в формулах он не прописывается. Что делать, что я не так сделал.
 
Ответить
СообщениеНе могу понять, вроде перекинул макрос в модуль, а в формулах он не прописывается. Что делать, что я не так сделал.

Автор - Chelovekov
Дата добавления - 20.05.2018 в 15:10
abtextime Дата: Воскресенье, 20.05.2018, 15:12 | Сообщение № 12
Группа: Проверенные
Ранг: Ветеран
Сообщений: 828
Репутация: 117 ±
Замечаний: 0% ±

Excel 2010
Chelovekov,
файл прицепите, посмотрим
 
Ответить
СообщениеChelovekov,
файл прицепите, посмотрим

Автор - abtextime
Дата добавления - 20.05.2018 в 15:12
Chelovekov Дата: Воскресенье, 20.05.2018, 15:31 | Сообщение № 13
Группа: Проверенные
Ранг: Обитатель
Сообщений: 315
Репутация: 0 ±
Замечаний: 80% ±

Excel 2016
Спасибо все работает, просто я не в ту папку закинул макрос :)
 
Ответить
СообщениеСпасибо все работает, просто я не в ту папку закинул макрос :)

Автор - Chelovekov
Дата добавления - 20.05.2018 в 15:31
Chelovekov Дата: Воскресенье, 20.05.2018, 15:41 | Сообщение № 14
Группа: Проверенные
Ранг: Обитатель
Сообщений: 315
Репутация: 0 ±
Замечаний: 80% ±

Excel 2016
[vba]
Код
Public Function MaxSerNool(RR As Range) As Double

Dim R As Range

For Each R In RR
If IsNumeric(R.Value) And R.Value = 0 Then
Counter = Counter + 1
If Counter > MaxSerNool Then MaxSerNool = Counter
Else
Counter = 0
End If
Next R

End Function
[/vba]
 
Ответить
Сообщение[vba]
Код
Public Function MaxSerNool(RR As Range) As Double

Dim R As Range

For Each R In RR
If IsNumeric(R.Value) And R.Value = 0 Then
Counter = Counter + 1
If Counter > MaxSerNool Then MaxSerNool = Counter
Else
Counter = 0
End If
Next R

End Function
[/vba]

Автор - Chelovekov
Дата добавления - 20.05.2018 в 15:41
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2025 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!