Подсчет количества ячеек с последовательностью
emegrelo
Дата: Пятница, 25.08.2017, 14:58 |
Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 22
Репутация:
0
±
Замечаний:
0% ±
Excel 2007
Как автоматически проводить подсчет количества ячеек с максимальной последовательностью? Пример на скриншоте. ЦЕЛЬ: подсчитать количество ячеек с максимальной последовательностью (число в ячейке БОЛЕЕ 10), чтоб потом справа отобразилось значение, в данном конкретном примере 6 ячеек ПОДРЯД имеют числа более 10. Желтый цвет я выделил для наглядности.
Как автоматически проводить подсчет количества ячеек с максимальной последовательностью? Пример на скриншоте. ЦЕЛЬ: подсчитать количество ячеек с максимальной последовательностью (число в ячейке БОЛЕЕ 10), чтоб потом справа отобразилось значение, в данном конкретном примере 6 ячеек ПОДРЯД имеют числа более 10. Желтый цвет я выделил для наглядности. emegrelo
Сообщение отредактировал emegrelo - Пятница, 25.08.2017, 15:02
Ответить
Сообщение Как автоматически проводить подсчет количества ячеек с максимальной последовательностью? Пример на скриншоте. ЦЕЛЬ: подсчитать количество ячеек с максимальной последовательностью (число в ячейке БОЛЕЕ 10), чтоб потом справа отобразилось значение, в данном конкретном примере 6 ячеек ПОДРЯД имеют числа более 10. Желтый цвет я выделил для наглядности. Автор - emegrelo Дата добавления - 25.08.2017 в 14:58
китин
Дата: Пятница, 25.08.2017, 15:22 |
Сообщение № 2
Группа: Модераторы
Ранг: Экселист
Сообщений: 7034
Репутация:
1079
±
Замечаний:
0% ±
Excel 2007;2010;2016
картинка красивая, даже очень!!!!!
картинка красивая, даже очень!!!!! китин
Не судите очень строго:я пытаюсь научиться ЯД 41001877306852
Ответить
Сообщение картинка красивая, даже очень!!!!! Автор - китин Дата добавления - 25.08.2017 в 15:22
emegrelo
Дата: Пятница, 25.08.2017, 15:42 |
Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 22
Репутация:
0
±
Замечаний:
0% ±
Excel 2007
На англоязычном форуме пишут то, что нужна формула с таким началом: =MAX(FREQUENCY(IF
На англоязычном форуме пишут то, что нужна формула с таким началом: =MAX(FREQUENCY(IF emegrelo
Ответить
Сообщение На англоязычном форуме пишут то, что нужна формула с таким началом: =MAX(FREQUENCY(IF Автор - emegrelo Дата добавления - 25.08.2017 в 15:42
Che79
Дата: Пятница, 25.08.2017, 15:46 |
Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 1649
Репутация:
306
±
Замечаний:
0% ±
2013 Win, 365 Mac
На англоязычном форуме пишут
а на русскоязычном форуме пишут emegrelo , Вам как бы намекают - приложите файл-пример не картинкой, а в Excel
На англоязычном форуме пишут
а на русскоязычном форуме пишут emegrelo , Вам как бы намекают - приложите файл-пример не картинкой, а в ExcelChe79
Делай нормально и будет нормально!
Ответить
Сообщение На англоязычном форуме пишут
а на русскоязычном форуме пишут emegrelo , Вам как бы намекают - приложите файл-пример не картинкой, а в ExcelАвтор - Che79 Дата добавления - 25.08.2017 в 15:46
emegrelo
Дата: Пятница, 25.08.2017, 15:59 |
Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 22
Репутация:
0
±
Замечаний:
0% ±
Excel 2007
Вот этот файл
К сообщению приложен файл:
10.xlsx
(10.2 Kb)
Ответить
Сообщение Вот этот файл Автор - emegrelo Дата добавления - 25.08.2017 в 15:59
Pelena
Дата: Пятница, 25.08.2017, 21:13 |
Сообщение № 6
Группа: Админы
Ранг: Местный житель
Сообщений: 19513
Репутация:
4632
±
Замечаний:
±
Excel 365 & Mac Excel
Формула массива
=МАКС(ЧАСТОТА(ЕСЛИ(C2:C22 >10;СТРОКА(C2:C22 )-1);ЕСЛИ(C2:C22 <=10;СТРОКА(C2:C22 )-1)))
Формула массива
=МАКС(ЧАСТОТА(ЕСЛИ(C2:C22 >10;СТРОКА(C2:C22 )-1);ЕСЛИ(C2:C22 <=10;СТРОКА(C2:C22 )-1)))
Pelena
"Черт возьми, Холмс! Но как??!!" Ю-money 41001765434816
Ответить
Сообщение Формула массива
=МАКС(ЧАСТОТА(ЕСЛИ(C2:C22 >10;СТРОКА(C2:C22 )-1);ЕСЛИ(C2:C22 <=10;СТРОКА(C2:C22 )-1)))
Автор - Pelena Дата добавления - 25.08.2017 в 21:13
emegrelo
Дата: Пятница, 25.08.2017, 22:16 |
Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 22
Репутация:
0
±
Замечаний:
0% ±
Excel 2007
Спасибо
Ответить
Сообщение Спасибо Автор - emegrelo Дата добавления - 25.08.2017 в 22:16
emegrelo
Дата: Пятница, 25.08.2017, 22:29 |
Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 22
Репутация:
0
±
Замечаний:
0% ±
Excel 2007
Но почему-то у меня этот массив не работает, показывает "#ЗНАЧ!". Видимо ошибка где-то. Надо ли изменять формат на числовой?
Но почему-то у меня этот массив не работает, показывает "#ЗНАЧ!". Видимо ошибка где-то. Надо ли изменять формат на числовой? emegrelo
Ответить
Сообщение Но почему-то у меня этот массив не работает, показывает "#ЗНАЧ!". Видимо ошибка где-то. Надо ли изменять формат на числовой? Автор - emegrelo Дата добавления - 25.08.2017 в 22:29
emegrelo
Дата: Пятница, 25.08.2017, 22:33 |
Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 22
Репутация:
0
±
Замечаний:
0% ±
Excel 2007
Вот скриншот
Ответить
Сообщение Вот скриншот Автор - emegrelo Дата добавления - 25.08.2017 в 22:33
Pelena
Дата: Пятница, 25.08.2017, 22:35 |
Сообщение № 10
Группа: Админы
Ранг: Местный житель
Сообщений: 19513
Репутация:
4632
±
Замечаний:
±
Excel 365 & Mac Excel
Формула массива вводится сочетанием клавиш Ctrl+Shift+Enter
Формула массива вводится сочетанием клавиш Ctrl+Shift+Enter Pelena
"Черт возьми, Холмс! Но как??!!" Ю-money 41001765434816
Ответить
Сообщение Формула массива вводится сочетанием клавиш Ctrl+Shift+Enter Автор - Pelena Дата добавления - 25.08.2017 в 22:35
emegrelo
Дата: Пятница, 25.08.2017, 23:10 |
Сообщение № 11
Группа: Пользователи
Ранг: Новичок
Сообщений: 22
Репутация:
0
±
Замечаний:
0% ±
Excel 2007
Всё получилось. А есть ли возможность окрасить эти ячейки с найденной максимальной последовательностью? У меня в файле почти 15000 ячеек и вручную долго искать найденную последовательность, а если бы она была уже окрашена к примеру в желтый цвет, так при прокрутке быстрее бы смог найти
Всё получилось. А есть ли возможность окрасить эти ячейки с найденной максимальной последовательностью? У меня в файле почти 15000 ячеек и вручную долго искать найденную последовательность, а если бы она была уже окрашена к примеру в желтый цвет, так при прокрутке быстрее бы смог найти emegrelo
Ответить
Сообщение Всё получилось. А есть ли возможность окрасить эти ячейки с найденной максимальной последовательностью? У меня в файле почти 15000 ячеек и вручную долго искать найденную последовательность, а если бы она была уже окрашена к примеру в желтый цвет, так при прокрутке быстрее бы смог найти Автор - emegrelo Дата добавления - 25.08.2017 в 23:10
InExSu
Дата: Понедельник, 28.08.2017, 15:08 |
Сообщение № 12
Группа: Друзья
Ранг: Ветеран
Сообщений: 650
Репутация:
96
±
Замечаний:
0% ±
Excel 2010, 365
Dim lMoreThan As Long
Dim lLength As Long , lRowsMax As Long
Dim i As Long , j As Long , lRows As Long
Dim arr()
Sub findSequenceNumbers()
Call InitSet
For i = 1 To UBound (arr)
arr(i, 2 ) = 0 'допустим последоваетельности нет
If arr(i, 1 ) > lMoreThan Then _
Call HowLong 'ищем длину последовательности
arr(i, 3 ) = i + 1 'номер строки в текущих условиях
Next
Call LazyDogSort
Call PaintItBlack
End Sub
Sub InitSet()
lMoreThan = 10
lLength = 1
lRows = Range("c3" ).CurrentRegion.Rows.Count
arr = Range(Cells(2 , 3 ), Cells(lRows + 1 , 5 )).Value
'1 столбец = значение, 2 = длина, 3 = номер строки
'каждой ячейке проставляем длину послдовательности
End Sub
Sub PaintItBlack()
Range("c2" ).CurrentRegion.Interior.Pattern = xlNone
Range(Cells(lRowsMax, 3 ), Cells(lRowsMax + lLength, 3 )).Interior.Color _
= 8421504
Cells(lRowsMax, 3 ).Select
End Sub
Sub LazyDogSort()
Application.ScreenUpdating = False
Workbooks.Add: Set wbTem = ActiveWorkbook
With wbTem.Sheets(1 )
.Range("a1" ).Resize(UBound (arr), UBound (arr, 2 )) = arr '
doIt = .Range("a1" ).CurrentRegion.Sort(Range("b1" ), xlDescending, Header:=xlNo)
lRowsMax = .Range("c1" ) 'случай с несколькими одинаковыми здесь не рассматривается
lLength = .Range("b1" )
End With
wbTem.Close SaveChanges:=False
Application.ScreenUpdating = True
End Sub
Sub HowLong() 'ищем длину последовательности
For j = 1 To UBound (arr) - i
If arr(i + j, 1 ) > lMoreThan Then
lLength = lLength + 1
Else
arr(i, 2 ) = lLength
lLength = 1
Exit Sub
End If
Next
End Sub
Dim lMoreThan As Long
Dim lLength As Long , lRowsMax As Long
Dim i As Long , j As Long , lRows As Long
Dim arr()
Sub findSequenceNumbers()
Call InitSet
For i = 1 To UBound (arr)
arr(i, 2 ) = 0 'допустим последоваетельности нет
If arr(i, 1 ) > lMoreThan Then _
Call HowLong 'ищем длину последовательности
arr(i, 3 ) = i + 1 'номер строки в текущих условиях
Next
Call LazyDogSort
Call PaintItBlack
End Sub
Sub InitSet()
lMoreThan = 10
lLength = 1
lRows = Range("c3" ).CurrentRegion.Rows.Count
arr = Range(Cells(2 , 3 ), Cells(lRows + 1 , 5 )).Value
'1 столбец = значение, 2 = длина, 3 = номер строки
'каждой ячейке проставляем длину послдовательности
End Sub
Sub PaintItBlack()
Range("c2" ).CurrentRegion.Interior.Pattern = xlNone
Range(Cells(lRowsMax, 3 ), Cells(lRowsMax + lLength, 3 )).Interior.Color _
= 8421504
Cells(lRowsMax, 3 ).Select
End Sub
Sub LazyDogSort()
Application.ScreenUpdating = False
Workbooks.Add: Set wbTem = ActiveWorkbook
With wbTem.Sheets(1 )
.Range("a1" ).Resize(UBound (arr), UBound (arr, 2 )) = arr '
doIt = .Range("a1" ).CurrentRegion.Sort(Range("b1" ), xlDescending, Header:=xlNo)
lRowsMax = .Range("c1" ) 'случай с несколькими одинаковыми здесь не рассматривается
lLength = .Range("b1" )
End With
wbTem.Close SaveChanges:=False
Application.ScreenUpdating = True
End Sub
Sub HowLong() 'ищем длину последовательности
For j = 1 To UBound (arr) - i
If arr(i + j, 1 ) > lMoreThan Then
lLength = lLength + 1
Else
arr(i, 2 ) = lLength
lLength = 1
Exit Sub
End If
Next
End Sub
InExSu
Разработчик Битрикс24 php, Google Apps Script, VBA Excel Windows/Mac
Ответить
Сообщение [vba]
Dim lMoreThan As LongDim lLength As Long ; lRowsMax As LongDim i As Long ; j As Long ; lRows As LongDim arr()Sub findSequenceЧumbers() Call InitSet For i = 1 To UBound(arr ) arr(i ; 2) = 0 'допустим последоваетельности нет If arr(i ; 1) > lMoreThan Then _ Call HowLong 'ищем длину последовательности arr(i ; 3) = i + 1 'номер строки в текущих условиях Next Call LazyDogSort Call PaintItBlackEnd SubSub InitSet() lMoreThan = 10 lLength = 1 lRows = Range("c3").CurrentRegion.Rows.Count arr = Range(Cells(2; 3); Cells(lRows + 1; 5)).Value '1 столбец = значение ; 2 = длина ; 3 = номер строки 'каждой ячейке проставляем длину послдовательностиEnd SubSub PaintItBlack() Range("c2").CurrentRegion.Interior.Pattern = xlNone Range(Cells(lRowsMax ; 3); Cells(lRowsMax + lLength ; 3)).Interior.Color _ = 8421504 Cells(lRowsMax ; 3).SelectEnd SubSub LazyDogSort() Application.ScreenUpdating = False Workbooks.Add : Set wbTem = ActiveWorkbook With wbТem.Sheets(1) .Range("a1").Resize(UBound(arr ); UBound(arr ; 2)) = arr ' doIt = .Range("a1").CurrentRegion.Sort(Range("b1"); xlDescending ; Header :=xlNo ) lRowsMax = .Range("c1") 'случай с несколькими одинаковыми здесь не рассматривается lLength = .Range("b1") End With wbTem.Close SaveChanges :=False Application.ScreenUpdating = ТrueEnd SubSub HowLong() 'ищем длину последовательности For j = 1 To UBound(arr ) - i If arr(i + j ; 1) > lMoreThan Then lLength = lLength + 1 Else arr(i ; 2) = lLength lLength = 1 Exit Sub End If NextEnd Sub
[/vba] Автор - InExSu Дата добавления - 28.08.2017 в 15:08
emegrelo
Дата: Понедельник, 28.08.2017, 23:22 |
Сообщение № 13
Группа: Пользователи
Ранг: Новичок
Сообщений: 22
Репутация:
0
±
Замечаний:
0% ±
Excel 2007
Всё равно макросы не помогли. Ячейки не окрасились в другой цвет
Всё равно макросы не помогли. Ячейки не окрасились в другой цвет emegrelo
Ответить
Сообщение Всё равно макросы не помогли. Ячейки не окрасились в другой цвет Автор - emegrelo Дата добавления - 28.08.2017 в 23:22
Pelena
Дата: Вторник, 29.08.2017, 08:09 |
Сообщение № 14
Группа: Админы
Ранг: Местный житель
Сообщений: 19513
Репутация:
4632
±
Замечаний:
±
Excel 365 & Mac Excel
Ячейки не окрасились в другой цвет
Про окрашивание - это уже совсем другой вопрос, не относящийся к данной теме. Создайте новую
Ячейки не окрасились в другой цвет
Про окрашивание - это уже совсем другой вопрос, не относящийся к данной теме. Создайте новуюPelena
"Черт возьми, Холмс! Но как??!!" Ю-money 41001765434816
Ответить
Сообщение Ячейки не окрасились в другой цвет
Про окрашивание - это уже совсем другой вопрос, не относящийся к данной теме. Создайте новуюАвтор - Pelena Дата добавления - 29.08.2017 в 08:09
InExSu
Дата: Вторник, 29.08.2017, 08:13 |
Сообщение № 15
Группа: Друзья
Ранг: Ветеран
Сообщений: 650
Репутация:
96
±
Замечаний:
0% ±
Excel 2010, 365
Марос был заточен под файл в сообщении № 5. Для сообщения 13 - удалите стобец B. Также Вы можете корректировать код макроса.
Марос был заточен под файл в сообщении № 5. Для сообщения 13 - удалите стобец B. Также Вы можете корректировать код макроса.InExSu
Разработчик Битрикс24 php, Google Apps Script, VBA Excel Windows/Mac
Ответить
Сообщение Марос был заточен под файл в сообщении № 5. Для сообщения 13 - удалите стобец B. Также Вы можете корректировать код макроса.Автор - InExSu Дата добавления - 29.08.2017 в 08:13
emegrelo
Дата: Вторник, 29.08.2017, 19:53 |
Сообщение № 16
Группа: Пользователи
Ранг: Новичок
Сообщений: 22
Репутация:
0
±
Замечаний:
0% ±
Excel 2007
Всё получилось. Спасибо! А для поиска ячеек, к примеру, значение менее 10, какова должна быть конфигурация в макросе? lLessThan?
Всё получилось. Спасибо! А для поиска ячеек, к примеру, значение менее 10, какова должна быть конфигурация в макросе? lLessThan? emegrelo
Ответить
Сообщение Всё получилось. Спасибо! А для поиска ячеек, к примеру, значение менее 10, какова должна быть конфигурация в макросе? lLessThan? Автор - emegrelo Дата добавления - 29.08.2017 в 19:53