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

Вход

Регистрация

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

 

= Мир MS Excel/Подсчет количества ячеек с последовательностью - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Подсчет количества ячеек с последовательностью
emegrelo Дата: Пятница, 25.08.2017, 14:58 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 22
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Как автоматически проводить подсчет количества ячеек с максимальной последовательностью?
Пример на скриншоте. ЦЕЛЬ: подсчитать количество ячеек с максимальной последовательностью (число в ячейке БОЛЕЕ 10), чтоб потом справа отобразилось значение, в данном конкретном примере 6 ячеек ПОДРЯД имеют числа более 10.
Желтый цвет я выделил для наглядности.
К сообщению приложен файл: 3623480.png (9.9 Kb)


Сообщение отредактировал 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
Дата добавления - 25.08.2017 в 15:42
Che79 Дата: Пятница, 25.08.2017, 15:46 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 1649
Репутация: 306 ±
Замечаний: 0% ±

2013 Win, 365 Mac
На англоязычном форуме пишут

а на русскоязычном форуме пишут
картинка красивая
;)
emegrelo, Вам как бы намекают - приложите файл-пример не картинкой, а в Excel


Делай нормально и будет нормально!
 
Ответить
Сообщение
На англоязычном форуме пишут

а на русскоязычном форуме пишут
картинка красивая
;)
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
Группа: Админы
Ранг: Местный житель
Сообщений: 19508
Репутация: 4620 ±
Замечаний: ±

Excel 365 & Mac Excel
Формула массива
Код
=МАКС(ЧАСТОТА(ЕСЛИ(C2:C22>10;СТРОКА(C2:C22)-1);ЕСЛИ(C2:C22<=10;СТРОКА(C2:C22)-1)))
К сообщению приложен файл: 9686834.xlsx (11.6 Kb)


"Черт возьми, Холмс! Но как??!!"
Ю-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
Но почему-то у меня этот массив не работает, показывает "#ЗНАЧ!". Видимо ошибка где-то. Надо ли изменять формат на числовой?
К сообщению приложен файл: 3193923.xlsx (11.0 Kb)
 
Ответить
СообщениеНо почему-то у меня этот массив не работает, показывает "#ЗНАЧ!". Видимо ошибка где-то. Надо ли изменять формат на числовой?

Автор - emegrelo
Дата добавления - 25.08.2017 в 22:29
emegrelo Дата: Пятница, 25.08.2017, 22:33 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 22
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Вот скриншот
К сообщению приложен файл: 4978635.jpg (56.2 Kb)
 
Ответить
СообщениеВот скриншот

Автор - emegrelo
Дата добавления - 25.08.2017 в 22:33
Pelena Дата: Пятница, 25.08.2017, 22:35 | Сообщение № 10
Группа: Админы
Ранг: Местный житель
Сообщений: 19508
Репутация: 4620 ±
Замечаний: ±

Excel 365 & Mac Excel
Формула массива вводится сочетанием клавиш Ctrl+Shift+Enter


"Черт возьми, Холмс! Но как??!!"
Ю-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
Дата добавления - 25.08.2017 в 23:10
InExSu Дата: Понедельник, 28.08.2017, 15:08 | Сообщение № 12
Группа: Друзья
Ранг: Ветеран
Сообщений: 650
Репутация: 96 ±
Замечаний: 0% ±

Excel 2010, 365
[vba]
Код
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
[/vba]
К сообщению приложен файл: emegrelo___.xlsm (20.2 Kb)


Разработчик Битрикс24 php, Google Apps Script, VBA Excel Windows/Mac
 
Ответить
Сообщение[vba]
Код
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
[/vba]

Автор - InExSu
Дата добавления - 28.08.2017 в 15:08
emegrelo Дата: Понедельник, 28.08.2017, 23:22 | Сообщение № 13
Группа: Пользователи
Ранг: Новичок
Сообщений: 22
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Всё равно макросы не помогли. Ячейки не окрасились в другой цвет
К сообщению приложен файл: emegrelo_.xlsm (90.8 Kb)
 
Ответить
СообщениеВсё равно макросы не помогли. Ячейки не окрасились в другой цвет

Автор - emegrelo
Дата добавления - 28.08.2017 в 23:22
Pelena Дата: Вторник, 29.08.2017, 08:09 | Сообщение № 14
Группа: Админы
Ранг: Местный житель
Сообщений: 19508
Репутация: 4620 ±
Замечаний: ±

Excel 365 & Mac Excel
Ячейки не окрасились в другой цвет

Про окрашивание - это уже совсем другой вопрос, не относящийся к данной теме. Создайте новую


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщение
Ячейки не окрасились в другой цвет

Про окрашивание - это уже совсем другой вопрос, не относящийся к данной теме. Создайте новую

Автор - Pelena
Дата добавления - 29.08.2017 в 08:09
InExSu Дата: Вторник, 29.08.2017, 08:13 | Сообщение № 15
Группа: Друзья
Ранг: Ветеран
Сообщений: 650
Репутация: 96 ±
Замечаний: 0% ±

Excel 2010, 365
не помогли

Марос был заточен под файл в сообщении № 5. Для сообщения 13 - удалите стобец B.
Также Вы можете корректировать код макроса.
К сообщению приложен файл: 2436742.png (17.9 Kb)


Разработчик Битрикс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
Дата добавления - 29.08.2017 в 19:53
  • Страница 1 из 1
  • 1
Поиск:

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