Посчитать максимальное количество одинаковых значений подряд
cry_dream
Дата: Суббота, 19.05.2018, 01:28 |
Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
Всем привет. Столкнулся с такой задачей: необходимо посчитать максимальное количестово одинаковых значений подряд Пример прикрепляю
Всем привет. Столкнулся с такой задачей: необходимо посчитать максимальное количестово одинаковых значений подряд Пример прикрепляю cry_dream
Ответить
Сообщение Всем привет. Столкнулся с такой задачей: необходимо посчитать максимальное количестово одинаковых значений подряд Пример прикрепляю Автор - 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)
Для НЕТ замените в формуле Нет на Да Формула массива. Вводится одновременным нажатием Контрл Шифт Ентер
Так нужно? Для ДАКод
=МАКС(МУМНОЖ({-1;1};НАИМЕНЬШИЙ((Таблица1[[#Все];[Да ]]="Нет")*(СТРОКА(Таблица1[#Все])-1);ТРАНСП(СТРОКА(Таблица1))-{1:0}))-1)
Для НЕТ замените в формуле Нет на Да Формула массива. Вводится одновременным нажатием Контрл Шифт Ентер _Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: 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
Ответить
Сообщение При добавление новых данных итоговые цифры не меняются Автор - 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)
*формулу изменил, файл перевложил
Да, не учел, что там еще пустые естьКод
=МАКС(МУМНОЖ({-1;1};НАИМЕНЬШИЙ((B1:B999<>"Да")*(СТРОКА(1:999)-1);ТРАНСП(СТРОКА(2:999))-{1:0}))-1)
*формулу изменил, файл перевложил _Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: 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
Ещё вариант (формула массива 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
А какую использовать формулу если поиск мах значения в строке
А какую использовать формулу если поиск мах значения в строке Chelovekov
Ответить
Сообщение А какую использовать формулу если поиск мах значения в строке Автор - 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]
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
Ответить
Сообщение 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 заранее спасибо
А теперь если не сложно можно написать макрос что бы он с цифрами поработал, подсчитать серию если значение больше 0 и соответственно равное 0 заранее спасибо Chelovekov
К сообщению приложен файл:
_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 специально не стал делать, потренируйтесь сами, надо всего в одном месте внести изменения
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
Сообщение отредактировал 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
Ответить
Сообщение Впрочем, для = 0 подойдет и предыдущая UDF MaxSer со вторым аргументом = 0 Автор - abtextime Дата добавления - 20.05.2018 в 14:54
Chelovekov
Дата: Воскресенье, 20.05.2018, 15:10 |
Сообщение № 11
Группа: Проверенные
Ранг: Обитатель
Сообщений: 315
Репутация:
0
±
Замечаний:
80% ±
Excel 2016
Не могу понять, вроде перекинул макрос в модуль, а в формулах он не прописывается. Что делать, что я не так сделал.
Не могу понять, вроде перекинул макрос в модуль, а в формулах он не прописывается. Что делать, что я не так сделал. Chelovekov
Ответить
Сообщение Не могу понять, вроде перекинул макрос в модуль, а в формулах он не прописывается. Что делать, что я не так сделал. Автор - Chelovekov Дата добавления - 20.05.2018 в 15:10
abtextime
Дата: Воскресенье, 20.05.2018, 15:12 |
Сообщение № 12
Группа: Проверенные
Ранг: Ветеран
Сообщений: 828
Репутация:
117
±
Замечаний:
0% ±
Excel 2010
Chelovekov, файл прицепите, посмотрим
Chelovekov, файл прицепите, посмотрим abtextime
Ответить
Сообщение Chelovekov, файл прицепите, посмотрим Автор - abtextime Дата добавления - 20.05.2018 в 15:12
Chelovekov
Дата: Воскресенье, 20.05.2018, 15:31 |
Сообщение № 13
Группа: Проверенные
Ранг: Обитатель
Сообщений: 315
Репутация:
0
±
Замечаний:
80% ±
Excel 2016
Спасибо все работает, просто я не в ту папку закинул макрос
Спасибо все работает, просто я не в ту папку закинул макрос Chelovekov
Ответить
Сообщение Спасибо все работает, просто я не в ту папку закинул макрос Автор - 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
Ответить
Сообщение [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