Как да създадете и използвате функцията ColorFunction в Excel

  • Споделя Това
Hugh West

В Excel няма функция за извършване на изчисления въз основа на цвета на клетките. Но с помощта на Microsoft Visual Basic for Applications (VBA) е възможно да се създават потребителски функции за изчисления въз основа на цвета на клетките. В тази статия ще ви покажа как можете да създадете и използвате функцията ColorFunction в Excel.

Да речем, че имаме набор от данни за поръчките на продукти на дадена компания. Количество за поръчка Доставените поръчки са оцветени в светлозелено, а поръчките, които са в процес на доставка, са оцветени в светлооранжево. Сега можем да намерим броя на клиентите, които са получили или не са получили поръчките си, като преброим същите оцветени клетки. Общото количество на доставените поръчки или поръчките в процес на доставка може да бъде намерено чрез сумиране на същите оцветени клетки.

Изтегляне на работна тетрадка за практика

Функцията Colorfunction в Excel.xlsm

ColorFunction в Excel

Стъпка 1 : Отваряне на макромодул в прозореца на VBA

Първо трябва да отворите VBA като натиснете ALT+F11. След това щракнете с десния бутон върху името на листа от левия панел и отидете на Insert> Модул

В резултат на това Модул кутията ще бъде отворена.

Стъпка 2 : Вмъкване на код VBA за създаване на функция ColorFunction

Въведете следния код в Модул и затворете полето VBA прозорец.

 Функция ColorFunction(rColor As Range, rRange As Range, Optional SUM As Boolean) Dim rCell As Range Dim lCol As Long Dim vResult lCol = rColor.Interior.ColorIndex If SUM = True Then For Each rCell In rRange If rCell.Interior.ColorIndex = lCol Then vResult = WorksheetFunction.SUM(rCell, vResult) End If Next rCell Else For Each rCell In rRange If rCell.Interior.ColorIndex = lCol Then vResult = 1 +vResult End If Next rCell End If ColorFunction = vResult End Function 

Тук кодът VBA създава потребителска функция с име ЦвятФункция която ще преброи цветните клетки, ако зададем аргумента като FALSE и ще обобщи оцветените клетки, ако зададем аргумента като ИСТИНА.

Стъпка 3 : Запазване на работната книга като работна книга с активирани макроси на Excel

Трябва да запазите работната книга на Excel в .xlsm за запазване на потребителската си функция. Първо, отидете в Файл от горния ляв ъгъл на прозореца на Excel.

След това изберете Запазете като.

След това изберете Работна книга на Excel с активирани макроси (*xlsm) и щракнете върху Запазете.

Стъпка 4 : Използване на функцията ColorFunction за броене на цветни клетки

Сега можете да използвате персонализираните си ЦвятФункция.

За да получите броя на светлозелените клетки, въведете следната формула в празна клетка,

=ColorFunction(F5,$D$5:$D$11,FALSE)

Тук, F5 = Критерий клетка, която цвят ще се брои

$D$5:$D$11 = Обхват за броене

FALSE указва, че ще бъде преброен броят на клетките с еднакъв цвят с клетката на критерия.

Натиснете ВЪВЕДЕТЕ и ще получите броя на светлозелените клетки.

По подобен начин можете да получите броя на светлооранжевите клетки.

Стъпка 5 : Използване на функцията ColorFunction за сумиране на цветни клетки

За да получите сумата на клетките със светлозелен цвят, въведете следната формула в празна клетка,

=ColorFunction(F5,$D$5:$D$11,TRUE)

Тук, F5 = Клетка с критерии, чийто цвят ще се сумира

$D$5:$D$11 = Обхват за сумата

TRUE показва, че броят на клетките с еднакъв цвят с клетката на критерия ще бъде сумиран.

ще получите сумата на светлозелените клетки, като натиснете ВЪВЕЖДАНЕ.

По подобен начин можете да получите сумата на светлооранжевите клетки.

Алтернативни начини за броене и сумиране на цветни клетки

Вместо да използвате ЦвятФункция, можете да получите броя на оцветените клетки или да съберете оцветените клетки по два различни начина.

1. Използване на функциите FILTER и SUBTOTAL

Можете да получите броя и сумата на оцветените клетки, като използвате Филтър и функцията SUBTOTAL .

Първо, отидете в Данни и щракнете върху Филтър.

След това до заглавието на всяка ваша колона ще се появи стрелка надолу. Щракнете върху стрелката надолу до Количество за поръчка (Оцветена колона), отидете на Филтриране по цвят и изберете светлозеления цвят.

Сега в тази колона ще виждате само данни със светлозелен цвят. За да получите броя, въведете следната формула,

= МЕЖДИННА СУМА(2,D5:D11)

Тук 2 показва, че клетката ще бъде преброена, а D5:D11 е обхватът на данните.

След натискане на ВЪВЕДЕТЕ ще получите броя на клетките със светлозелен цвят.

За да получите сумата от оцветените клетки, въведете следната формула,

=ПОЛУЧАЕН СБОР(9,D5:D11)

Тук 9 показва, че клетката ще бъде сумирана, а D5:D11 е обхватът на данните

След натискане на ВЪВЕДЕТЕ ще получите сумата от клетки със светлозелен цвят.

Като промените филтъра на светлооранжев цвят, можете да получите броя и сумата на оранжево оцветените клетки.

2. Използване на функцията GET.CELL

С помощта на GET.CELL можете също така да преброите и съберете оцветените клетки.

Първо, отидете в Формули и изберете Име на дефилето.

A Ново име Ще се появи полето. Въведете име, например Цвят в Име и вмъкнете формулата в Отнася се за и натиснете ДОБРЕ.

=GET.CELL(38,'GET CELL'!$D5)

Тук 38 показва, че формулата ще даде кода на цвета на посочената клетка, а 'GET CELL'!$D5 е посочената клетка (първата клетка след заглавието на колоната на оцветената колона).

Сега въведете =Цвят (Името, което сте посочили преди това в Определяне на имена ) в съседната колона на вашата цветна колона.

След натискане на ВЪВЕДЕТЕ и плъзгане на клетка E5 до края на набора от данни, ще получите цветовите кодове на всички цветни клетки в колоната E .

Сега въведете следната формула, за да получите броя на клетките със светлозелен цвят

=COUNTIF($E$5:$E$11,50)

Тук, $E$5:$E$11 е обхватът за броене, а 50 е цветният код на светлозеленото.

След натискане на Въведете ще получите броя на оцветените в зелено клетки.

Въведете следната формула, за да получите сумата на светлозелените клетки,

=SUMIF(E5:E11,50,D5:D11)

Тук, E5:E11 е обхватът на критериите, 50 показва цветовия код на светлозелено и D5:D11 е диапазонът на сумата.

Натиснете ВЪВЕДЕТЕ и ще получите сумата от всички зелени клетки.

По подобен начин можете да получите броя и сумата на клетките със светлооранжев цвят.

Заключение

Надявам се, че след като преминете през статията, вече можете да създавате и използвате ColorFunction в Excel. Ако срещнете някакъв проблем, моля, оставете коментар.

Хю Уест е опитен обучител и анализатор на Excel с над 10 години опит в индустрията. Има бакалавърска степен по счетоводство и финанси и магистърска степен по бизнес администрация. Хю има страст към преподаването и е разработил уникален подход на преподаване, който е лесен за следване и разбиране. Неговите експертни познания по Excel са помогнали на хиляди студенти и професионалисти по целия свят да подобрят уменията си и да постигнат отлични резултати в кариерата си. Чрез своя блог Хю споделя знанията си със света, като предлага безплатни уроци за Excel и онлайн обучение, за да помогне на хората и фирмите да достигнат пълния си потенциал.