Excel это не сложно
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
29.03.2024, 12:36:15

Войти
На форуме добавлена возможность подписки на RSS-ленты любого раздела форума. Подписаться можно, нажав на иконку RSS , расположенную левее наименования раздела.
33 233 Сообщений в 5 454 Тем от 6 750 Пользователей
Последний пользователь: Alex1210
*
Перейти на сайт Хитрости Надстройка MulTEx Обучающие тренинги Наша группа ВКонтакте
Правила форума Начало Помощь Поиск Календарь Войти Регистрация Выйти
+  Excel это не сложно
|-+  Основные форумы
| |-+  Вопросы по Excel и VBA
| | |-+  Макрос VBA Для определения наименьшей даты с показателем >100%
Страниц: [1]   Вниз
Печать
Автор Тема: Макрос VBA Для определения наименьшей даты с показателем >100%  (Прочитано 1834 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Leemonhell
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 11


Просмотр профиля E-mail
« : 26.03.2020, 10:37:51 »

Всем Доброго Дня!

Имеются заголовки с датами 01 - 10
под ними вниз идут строки с %
Необходимо для каждой следующей строки в контрольном  столбце показать наименьшую дату, когда % превышает 100.

Формулой у меня это получилось сделать (в файле примера столбцы L & M). Можно ли формулы для этих контрольных ячеек просто добавить в запуск макроса?

Нужен макрос, который будет определять наименьшую дату в строке с показателем >100%, выводить эту дату в ячейку, и выводить показатель % для этой даты.
« Последнее редактирование: 26.03.2020, 10:39:49 от Leemonhell » Записан
Leemonhell
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 11


Просмотр профиля E-mail
« Ответ #1 : 27.03.2020, 12:28:10 »

Решение с Планеты:

Код: (vb)
Sub M()
Dim LastRow As Long

LastRow = ThisWorkbook.Sheets(1).[a1000000].End(xlUp).Row

    If LastRow > 3 Then
        ThisWorkbook.Sheets(1).Range("L4").FormulaArray = "=SMALL(IF(RC[-10]:RC[-1]>100%,R3C2:R3C11,""""),1)"
        ThisWorkbook.Sheets(1).Range("M4").FormulaR1C1 = "=HLOOKUP(RC[-1],R3C2:R8C11,ROW()-2,0)"
    End If
   
    If LastRow > 4 Then
        ThisWorkbook.Sheets(1).Range("L4:M4").AutoFill ThisWorkbook.Sheets(1).Range("L4:M" & LastRow)
    End If

End Sub
Записан
Страниц: [1]   Вверх
Печать
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2011, Simple Machines Valid XHTML 1.0! Valid CSS!
Яндекс.Метрика Рейтинг@Mail.ru