Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Выделение цветом первой половины текста по критерию в массиве, Выделение цветом первой половины текста по критерию в массиве
 
Всем привет, очень нужна помощь. Файл в вложении
Суть задания: необходимо по столбцу 2 сделать выделение цветом первой половины каждой группы
К примеру, у нас есть 8 строк с значением Аперитив, первые 4 строки необходимо закрасить каким либо цветом, далее есть 95 строк с значением вино, первые 48 значений необходимо выделить таким же цветом. И так по всему массиву
Вообще нет идей как можно реализовать это  
Изменено: i_gave_up - 16 Апр 2018 16:26:42
 
Цитата
i_gave_up написал: Вообще нет идей как можно реализовать это
Макросом. Сами начнете писать - помогут, надо готовое - заказывать в разделе "Работа"... ;)
"Ctrl+S" - достойное завершение ваших гениальных мыслей!.. ;)
 
Цитата
i_gave_up написал:
Вообще нет идей как можно реализовать это  

С товарищем по форуму согласен, поэтому объясню концептуально:
1) Собираешь все данные
2) Сортируешь их по 2-му столбцу
3) Идя по данным, определяешь первый и последний элемент каждой группы (условие el(i)=el(i+1) )
4) Вычитаешь из конечного индекса группы начальный
5) Делишь это число на 2 с округлением в большую сторону
6) С первого индекса группы закрашиваешь любым цветом это кол-во элементов
Вся проблема сложных программ, целых томов кодов и состоит в несоблюдении принципа лезвия Оккама: «Не следует множить сущее без необходимости». Вся гениальность в простоте.
 
Вот пример для категории "Аперитив", этот вариант очень медленный. дальше модифицируйте :)
В ячейку H1 напишите Аперитив и закрасьте ячейку в любой цвет
Код
Sub test()
    Dim last As Long
    Dim a, b As Integer
    a = 0
    b = 1
      last = Cells(Rows.Count, 1).End(xlUp).Row
        For i = 2 To last
              If Cells(i, 2) = Cells(b, 8) Then
                a = a + 1
              End If
            Next
        a = a / 2
      Range(Cells(2, 2), Cells(a + 1, 2)).Interior.Color = Cells(b, 8).Interior.Color
End Sub
Изменено: Илья Демид - 16 Апр 2018 16:54:42
 
Вариант с условным форматированием. Можно даже не сортировать.
Изменено: Wiss - 16 Апр 2018 16:59:31
Я не волшебник, я только учусь.
 
Цитата
Wiss написал:
Вариант с условным форматированием. Можно даже не сортировать.
Круто, спасибо, так и хотел сделать с условным форматированием, самый простой вариант, но недокрутил формулу)
Всем остальным тоже большое спасибо за отклик)
Страницы: 1
Читают тему (гостей: 1)