Excel это не сложно
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
18.04.2024, 09:19:48

Войти
Название темы должно отражать её содержание.
Темы типа "ПОМОГИТЕ!!!", "Срочно!", "Не получается сделать", "Нужна помощь" и т.п. будут удаляться без объяснения причин
33 240 Сообщений в 5 456 Тем от 6 758 Пользователей
Последний пользователь: Сергей2662
*
Перейти на сайт Хитрости Надстройка MulTEx Обучающие тренинги Наша группа ВКонтакте
Правила форума Начало Помощь Поиск Календарь Войти Регистрация Выйти
+  Excel это не сложно
|-+  Основные форумы
| |-+  Вопросы по Excel и VBA
| | |-+  Смещаемая переменная для формулы =СЧЁТЕСЛИ (COUNTIF)
Страниц: [1]   Вниз
Печать
Автор Тема: Смещаемая переменная для формулы =СЧЁТЕСЛИ (COUNTIF)  (Прочитано 2541 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Venger
Новичок
*

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

Сообщений: 33


Просмотр профиля E-mail
« : 03.12.2019, 12:15:26 »

Добрый день!
Подскажите как в формуле [COUNTIF($G$6:G6,G6)] задать переменную для "G6", которая будет смещаться относительно строк G7,G8,G9.....(то есть диапазон подсчета будет постепенно увеличиваться). Первая часть диапазона не требует смещения, ей можно не присваивать переменную.


Код: (vb)
Sub SCHET_ESLI()
Dim oCell As Range
For Each oCell In Range("G6:G100000")
If oCell <> "" Then
Range(Cells(oCell.Row, 8 ), Cells(oCell.Row, 8 )) = [COUNTIF($G$6:G6,G6)]  ' где Range(Cells(oCell.Row, 8 ), Cells(oCell.Row, 8 )) - соответствует ячейке столбца"H:H"
    End If
Next
End Sub
« Последнее редактирование: 03.12.2019, 14:37:13 от Дмитрий Щербаков(The_Prist) » Записан
Venger
Новичок
*

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

Сообщений: 33


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

Код: (vb)
Sub SCHET_ESLI()
     Dim oCell As Range

     For Each oCell In Range("G6:G100000")
          If oCell <> "" Then
               Range(Cells(oCell.Row, 8 ), Cells(oCell.Row, 8 )) = [COUNTIF($G$6:G6,G6)]
          End If
     Next
End Sub
« Последнее редактирование: 03.12.2019, 12:32:07 от vikttur » Записан
boa
Старожил
****

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

Сообщений: 252


Доброта спасет мир...


Просмотр профиля WWW
« Ответ #2 : 03.12.2019, 13:15:34 »

Здравствуйте,
Код: (vb)
Cells(oCell.Row, 8 ) = Application.WorksheetFunction.CountIf(Range("$G$6:G" & oCell.Row), Range("G" & oCell.Row))
« Последнее редактирование: 03.12.2019, 13:24:01 от boa » Записан

Ничто не обходится нам так дешево и не ценится так дорого, как вежливость...  Мигель Сервантес де Сааведра

Venger
Новичок
*

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

Сообщений: 33


Просмотр профиля E-mail
« Ответ #3 : 03.12.2019, 13:33:15 »

Спасибо за помощь!
Записан
Дмитрий Щербаков(The_Prist)
Администратор
Ветеран
*****

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

Сообщений: 5 830



Просмотр профиля WWW
« Ответ #4 : 03.12.2019, 14:44:03 »

Может это нужно было?
Код: (vb)
Sub SCHET_ESLI()
    Range("H6:H" & Cells(Rows.Count, 7).End(xlUp).Row).FormulaR1C1 = "=COUNTIF(R6C7:RC7,RC7)"
End Sub
Записан

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Пункты приёма Спасибов:    -41001332272872  -R298726502453
Страниц: [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