Форум

Прежде чем задать вопрос - попробуйте найти ответ поиском. Если спрашиваете - будьте вежливы и терпеливы, четко и подробно сформулируйте свой вопрос, приложите файл с примером (если возможно) - и вам обязательно помогут. Один ум - хорошо, а два сапога - пара!
Яndex
 

Главный форум • Форумы • Вопросы по надстройке PLEX • Сосчитать количество ячеек с одинаковым цветом заливки • 
Автор Тема
Alex
20.01.2008, 11:43
Сосчитать количество ячеек с одинаковым цветом заливки
Можно ли в PLEX сосчитать количество ячеек с одинаковым цветом заливки?

Николай Павлов
20.01.2008, 13:15
Re: Сосчитать количество ячеек с одинаковым цветом заливки
Можно использовать в дополнительном столбце функцию CELLCOLOR, которая выдает код цвета ячейки, и далее считать по этому столбцу количество нужных кодов с помощью функции СЧЕТЕСЛИ (COUNTIF)

Igor
21.01.2008, 06:22
А как то еще можно? У меня файл из 48 столбцов и около 1700 строк, и каждая ячейка закрашена отдельным цветом, так что по вашеу совету это тоже достаточно трудоёмко.

Лузер
22.01.2008, 08:57
Используйте пользовательскую функцию
Например так:
Function CountColor(Diapazon As Range, Kriterij As Range) As Variant
Dim cc As Range
CountColor = 0
If Kriterij.Count = 1 Then
For Each cc In Diapazon
If cc.Interior.ColorIndex = Kriterij.Interior.ColorIndex Then CountColor = CountColor + 1
Next
Else
CountColor = "#H/Ä"
End If
End Function

Аналогична СЧЁТЕСЛИ() - указываете диапазон где считать заливку, указываете критерий - ячейку с заливкой которую надо считать

Лузер™
08.08.2008, 17:54
Надо наконец кракозябру исправить:
Variant
Dim cc As Range
CountColor = 0
If Kriterij.Count = 1 Then
For Each cc In Diapazon
If cc.Interior.ColorIndex = Kriterij.Interior.ColorIndex Then CountColor = CountColor + 1
Next
Else
CountColor = "#N/A"
End If
End Function

Артём
14.08.2008, 16:28
Сосчитать количество ячеек с одинаковым цветом заливки
А можно ли сделать тоже самое, только в Excel ? Если да то как ? Заранее спасибо

Лузер™
14.08.2008, 18:27
Re: Сосчитать количество ячеек с одинаковым цветом заливки
Сосчитать количество ячеек с одинаковым цветом заливки (Автор: Артём, Дата: 14.08.2008 04:28)
А можно ли сделать тоже самое, только в Excel ? Если да то как ? Заранее спасибо
А это где по Вашему? В блокноте или фотошопе?

Артём
14.08.2008, 18:52
Сори за ламерство, просто в первом посте было "Можно ли в PLEX сосчитать" вот я и спросил, про excel без plex или он тут особо роли неиграет??? Просто у меня его нет

Лузер
15.08.2008, 01:14
И у меня нет.
Это обычная пользовательская функция.

Артём
16.08.2008, 08:28
Re:
(Автор: Лузер(tm), Дата: 08.08.2008 05:54)
Надо наконец кракозябру исправить:
?Variant
?Dim cc As Range
?CountColor = 0
?If Kriterij.Count = 1 Then
?For Each cc In Diapazon
?If cc.Interior.ColorIndex = Kriterij.Interior.ColorIndex Then CountColor = CountColor + 1
?Next
?Else
?CountColor = "#N/A"
?End If
?End Function
??У меня ещё один ЛАМЕРСКИЙ вопросик, а куда это вставлять и как потом этой штукой пользоваться ???


16.08.2008, 21:58
Re: 
Еще раз поправлю:
Function CountColor(Diapazon As Range, Kriterij As Range) As Variant
Dim cc As Range
CountColor = 0
If Kriterij.Count = 1 Then
For Each cc In Diapazon
If cc.Interior.ColorIndex = Kriterij.Interior.ColorIndex Then CountColor = CountColor + 1
Next
Else
CountColor = "#N/A"
End If
End Function

Alt+F11 - откроется редактор, слева на имени книги пкм - инсерт - модуль
вот туда и копируйте это.
потом на листе ищете во вставке в определенных пользователем.

Artur
15.09.2008, 16:15
Как оставить критерий неизменным
У меня такой вопрос. Используя функцию CountColor в одной ячейки, мне надо использовать эту же функцию в других, я выделяю ячейку и тяну за правый нижний угол в сторону, но с изменением диапазона, меняется и критерий. Можно ли как сделать чтобы при таких манипуляциях критерий остовался неизменным ???

alex2621
Число сообщений: 1
28.01.2010, 15:52
MO2007
Работал в 2003, все с "CountColor" бало ОК, работала как часики, но сейчас на работе заменили комп и теперь стоит 2007, когда открыл документ то в ячейке с формулой увидел "#ИМЯ?", при перестановке модуля заново на 2007, функция получается "=имядокумента.xlsm!Module1.CountColor()".
Помогите, как сделать чтобы работала в МО2007?


13.02.2010, 03:49
Re: Re: 
Re:  (Автор: , Дата: 16.08.2008 09:58)
Еще раз поправлю:
Function CountColor(Diapazon As Range, Kriterij As Range) As Variant
Dim cc As Range
CountColor = 0
If Kriterij.Count = 1 Then
For Each cc In Diapazon
If cc.Interior.ColorIndex = Kriterij.Interior.ColorIndex Then CountColor = CountColor + 1
Next
Else
CountColor = "#N/A"
End If
End Function

Alt+F11 - откроется редактор, слева на имени книги пкм - инсерт - модуль
вот туда и копируйте это.
потом на листе ищете во вставке в определенных пользователем.


а почему эта функция не видит цвет, если он получается в результате условного форматирования?

IG
Число сообщений: 2
02.07.2010, 14:52
добрый день. у меня такой вопрос
есть функция:
'Подсчет количества ячеек по цвету заливки
Function СЧЕТЯЧЦВЕТ(Diapazon As Range, Kriterij As Range) As Variant
Dim cc As Range
СЧЕТЯЧЦВЕТ = 0
If Kriterij.Count = 1 Then
For Each cc In Diapazon
If cc.Interior.ColorIndex = Kriterij.Interior.ColorIndex Then СЧЕТЯЧЦВЕТ = СЧЕТЯЧЦВЕТ + 1
Next
Else
СЧЕТЯЧЦВЕТ = "#N/A"
End If
End Function

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

Longines
Число сообщений: 41
06.07.2010, 17:23
Re: 
(Автор: IG, Дата: 02.07.2010 02:52)
добрый день. у меня такой вопрос
есть функция:
'Подсчет количества ячеек по цвету заливки
Function СЧЕТЯЧЦВЕТ(Diapazon As Range, Kriterij As Range) As Variant
Dim cc As Range
СЧЕТЯЧЦВЕТ = 0
If Kriterij.Count = 1 Then
For Each cc In Diapazon
If cc.Interior.ColorIndex = Kriterij.Interior.ColorIndex Then СЧЕТЯЧЦВЕТ = СЧЕТЯЧЦВЕТ + 1
Next
Else
СЧЕТЯЧЦВЕТ = "#N/A"
End If
End Function

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


Function СЧЕТЯЧЦВЕТ(Diapazon As Range, Kriterij As Range) As Variant
Dim cc As Range
СЧЕТЯЧЦВЕТ = 0
If Kriterij.Count = 1 Then
For Each cc In Diapazon
If cc.value <> "" then
If cc.Interior.ColorIndex = Kriterij.Interior.ColorIndex Then СЧЕТЯЧЦВЕТ = СЧЕТЯЧЦВЕТ + 1
end if
Next
Else
СЧЕТЯЧЦВЕТ = "#N/A"
End If
End Function

В принципе какой смысл в критерии тогда?

Longines
Число сообщений: 41
06.07.2010, 17:26
Re: Re: Re: 
Re: Re:  (Автор: , Дата: 13.02.2010 03:49)


Для условного форматирования надо считать критерии окраски самому.


07.07.2010, 08:54
Re: Re: 
спасибо большое. все работает. я в принципе понимал как логически прописать, но с синтаксисом не разобрался..

(Автор: Longines, Дата: 06.07.2010 05:23)


дак критерий указывает цвет окраски ячейки. цветов же в таблице может быть несколько.. просто есть ячейки, которые без значений, а надо считать только с значениями.. смысл особый еще появляется, когда в критерии не цвет заливки а цвет шрифта! тогда ячейки с нулевыми значениями не видны, а подсчитываются (в моем недоработанном случае)

IG
Число сообщений: 2
07.07.2010, 08:57
Re: Re: 
спасибо большое. все работает. я в принципе понимал как логически прописать, но с синтаксисом не разобрался..

(Автор: Longines, Дата: 06.07.2010 05:23)

В принципе какой смысл в критерии тогда?


дак критерий указывает цвет окраски ячейки. цветов же в таблице может быть несколько.. просто есть ячейки, которые без значений, а надо считать только с значениями.. смысл особый еще появляется, когда в критерии не цвет заливки а цвет шрифта! тогда ячейки с нулевыми значениями не видны, а подсчитываются (в моем недоработанном случае)

Novenkaya
27.07.2010, 14:30
CountColor
А еще можно подсчитывать не просто цветные непустые ячейки, а с конкретными данными, в моем случае, например в Табеле учета рабочего времени нужно было "выбросить" дни отпуска, попадающие на выхи.
Автору текста функции БОЛЬШОЕ СПАСИБО!

[ ответить ]

[ создать новую тему ]