Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 30.09.2015
Сообщений: 6

Функция подсчета ячеек в диапазоне, если она определенного цвета и в ней есть определенный текст

01.11.2016, 06:21. Показов 2332. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужна функция счета ячеек в диапазоне если она определенного цвета и в ней есть определенный текст.
Имеется табель. И есть норма часов. Когда работник в отпуске или на больничном норма часов для него меняется. я привел пример как ведётся подсчет нормы труда. и нужна формула которая это всё учитывала. А для этого нужно просто что бы он проверял есть ли в выбранном диапазоне буква "О" или "Б" и является ли эта ячейка где нашлась эта буква определенного цвета. Я уже искал на форумах функцию подсчета количества ячеек определенного цвета но я не могу туда внедрить условие если в этой ячейки буква "Б" или "О" то тогда считать как 1. Он просто почитывает все ячейки выбранного цвета

использовал вот эту формулу

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Public Function СЧЁТЗАЛИВКА(ДИАПАЗОН As Range, ЯЧЕЙКА) As Long
    Dim S As Double
    Dim rCell As Range
    Dim ColCell As Long
 
    ColCell = ЯЧЕЙКА.Interior.Color
    S = 0
 
    For Each rCell In ДИАПАЗОН
        If rCell.Interior.Color = ColCell Then
            S = S + 1
        End If
    Next
 
    СЧЁТЗАЛИВКА = S
End Function
Может ли кто нить помочь. Буду признателен. Можно писать в ВК. Т.к. могу не углядеть когда тут ответили. https://vk.com/id76287909
Вложения
Тип файла: xlsx Пример.xlsx (19.4 Кб, 9 просмотров)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.11.2016, 06:21
Ответы с готовыми решениями:

Если в диапазоне ячеек есть текст, то в другой ячейке выполняется условие
Всем привет! Подскажите пожалуйста, как реализовать такую логику: Если в диапазоне ячеек, например A1:A10, есть текст (любой), то B1...

Если в диапазоне ячеек есть СЕГОДНЯ, то взять значение слева от этой ячейки
Был бы очень благодарен помощи в подборе нужной формулы. Нужно, чтобы в отдельно стоящую ячейку(желтую) подтягивалось значение из...

Если в элементе есть определенный текст, то элемент оставить
Здравствуйте, подскажите как мне сделать такой скрипт? Есть сайт https://gryazeviky.ru/, на нем есть под ценой ссылка на форму, если цена...

10
Чорумфанин
346 / 346 / 320
Регистрация: 06.03.2014
Сообщений: 899
01.11.2016, 09:21
В строку 10 добавить условие
Visual Basic
1
If rCell.Interior.Color = ColCell and (rCell.Value="Б" or rCell.Value="О") Then
1
0 / 0 / 0
Регистрация: 30.09.2015
Сообщений: 6
02.11.2016, 10:59  [ТС]
Всё хорошо, но столкнулся с проблемой. Эта формула не учитывает цвет УСЛОВНОГО ФОРМАТИРОВАНИЯ. Ячейки по условию стали зеленые, а он их воспринимает как белые. Как это исправить?
0
0 / 0 / 0
Регистрация: 30.09.2015
Сообщений: 6
02.11.2016, 11:55  [ТС]
Вот чтобы было нагляднее о чём я говорю
Вложения
Тип файла: rar Пример 2.rar (35.6 Кб, 7 просмотров)
0
 Аватар для KoGG
5643 / 1625 / 418
Регистрация: 23.12.2010
Сообщений: 2,440
Записей в блоге: 1
02.11.2016, 13:52
Для Офиса 2010 и выше:
Visual Basic
1
If rCell.DisplayFormat.Interior.Color = ColCell and (rCell.Value="Б" or rCell.Value="О") Then
1
0 / 0 / 0
Регистрация: 30.09.2015
Сообщений: 6
03.11.2016, 08:54  [ТС]
KoGG, Щас попробую. Тока на работе 2007 стоит. Поставлю поновее.

Добавлено через 1 час 1 минуту
KoGG, на 2016 екселе не работает. Пишет знач и всё. В чем может быть проблема

Добавлено через 2 часа 41 минуту
KoGG, поправка в 2013 екселе
0
 Аватар для KoGG
5643 / 1625 / 418
Регистрация: 23.12.2010
Сообщений: 2,440
Записей в блоге: 1
03.11.2016, 09:19
DisplayFormat - капризная вещь, работает в процедурах, но не работает в UDF, запускаемых из ячейки листа.
0
0 / 0 / 0
Регистрация: 30.09.2015
Сообщений: 6
03.11.2016, 10:12  [ТС]
KoGG, оказалось на работе 2010 офис стоит. И вот и на 2010 версии и на 2013 версии не работает эта формула. И что теперь ни как не вылечить это безобразие?
0
Чорумфанин
346 / 346 / 320
Регистрация: 06.03.2014
Сообщений: 899
03.11.2016, 11:05
Условное форматирование закрашивает ячейки при заданных условиях, почему эти условия не прописать в IF?
Всмысле не сравнивать цвета, а значения.
0
0 / 0 / 0
Регистрация: 30.09.2015
Сообщений: 6
03.11.2016, 11:59  [ТС]
kasan, мне надо что бы она сравнивала значение в ячейки в которой есть буква (Б или О) и была определенного цвета закрашена.
Миниатюры
Функция подсчета ячеек в диапазоне, если она определенного цвета и в ней есть определенный текст  
Вложения
Тип файла: rar Пример 2 без проги.rar (36.4 Кб, 9 просмотров)
0
 Аватар для KoGG
5643 / 1625 / 418
Регистрация: 23.12.2010
Сообщений: 2,440
Записей в блоге: 1
03.11.2016, 14:03
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Public Function СчетДеньНедели(ДИАПАЗОН As Range, TipDnyaZadanniy) As Long
    ' TipDnyaZadanniy 1 - будни, 6 - суббота, 7 воскресение
    Application.Volatile True
    Dim S As Double
    Dim rCell As Range
    Dim ColCell As Long
    Dim TipDnyaTekuschiy%
    S = 0
    For Each rCell In ДИАПАЗОН
        Select Case rCell.Row
            Case 12, 18, 30, 36
                TipDnyaTekuschiy = Weekday(rCell.Parent.Cells(8, rCell.Column), vbMonday)
            Case 14, 20, 32, 38
                TipDnyaTekuschiy = Weekday(rCell.Parent.Cells(9, rCell.Column), vbMonday)
            Case Else
        End Select
        If TipDnyaTekuschiy < 6 Then TipDnyaTekuschiy = 1
        If TipDnyaTekuschiy = TipDnyaZadanniy And (rCell.Value = "Б" Or rCell.Value = "О") Then
            S = S + 1
        End If
    Next
    СчетДеньНедели = S
End Function
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.11.2016, 14:03
Помогаю со студенческими работами здесь

Если на странице есть определенный текст, то сохранять URL страницы в файл
Здравствуйте! Ну вот совсем я что-то дубовый, как ни делаю ничего не работает. Задача для второклассника, а я хоть убейте не могу...

Суммировать цифры в диапазоне ячеек. Буквы заменить на цифры, если таковые есть
Добрый день. Помогите кто может.(Excel) Есть диапазон ячеек, в котором есть и буквы и цифры. Надо суммировать только цифры и если есть...

Есть функция. Как сделать, что бы текст, который выводиться в Memo был не стандартного цвета?
void __fastcall TForm1::Button5Click(TObject *Sender) { Memo1-&gt;SelText =...

Защита ячеек определенного цвета макросом
Добрый день! Подскажите пожалуйста как сделать с помощью ВБА запрет на редактирование всех ячеек кроме синих и белых? Ячейки могут быть...

Скрывает блоке если есть определенный текст Например "Дата:"
Можно сделать что бы если в .miniblock находило слово например: &quot;Дата:&quot;, то блок .miniblock, скрывался? .profile_info .miniblock если...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru