Turinys
"Excel" programoje nėra funkcijos, kuri leistų atlikti skaičiavimus pagal langelių spalvą. Tačiau naudodami "Microsoft Visual Basic for Applications" (VBA) galima sukurti pasirinktines funkcijas skaičiavimams pagal ląstelių spalvą. Šiame straipsnyje parodysiu, kaip "Excel" programoje galite sukurti ir naudoti funkciją ColorFunction.
Tarkime, turime duomenų rinkinį apie įmonės produktų užsakymus. Stulpelis Užsakymo kiekis pristatytų užsakymų spalva priklauso nuo jų pristatymo būsenos. Pristatyti užsakymai nuspalvinti šviesiai žalia spalva, o užsakymai, kurie yra pristatomi, nuspalvinti šviesiai oranžine spalva. Dabar, suskaičiavę tos pačios spalvos langelius, galime sužinoti klientų, kurie gavo arba negavo užsakymų, skaičių. Bendrą pristatytų arba pristatomų užsakymų kiekį galima sužinoti sudėjus tos pačios spalvos langelius.
Atsisiųsti praktikos sąsiuvinį
Spalvų funkcija Excel.xlsmColorFunction "Excel" programoje
1 žingsnis : Makrokomandos modulio atidarymas VBA lange
Pirmiausia turite atidaryti VBA langą paspausdami ALT+F11. Po to dešiniuoju pelės klavišu spustelėkite lapo pavadinimą kairiajame skydelyje ir eikite į Insert> Modulis
Dėl to Modulis bus atidarytas langelis.
2 žingsnis : VBA kodo, skirto ColorFunction sukūrimui, įterpimas
Įterpkite šį kodą į Modulis langelį ir uždarykite VBA langas.
Funkcija 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
Čia VBA kodas sukuria pasirinktinę funkciją, pavadintą SpalvaFunkcija kuris skaičiuos spalvotus langelius, jei argumentą pateiksime kaip FALSE ir susumuos spalvotus langelius, jei argumentą pateiksime kaip TIESA.
3 žingsnis : Darbo knygos išsaugojimas kaip "Excel" makrokomandų įjungimo darbo knyga
"Excel" darbaknygę turite išsaugoti .xlsm formatą, kad išsaugotumėte pasirinktinę funkciją. Pirmiausia eikite į Failas iš viršutinio kairiojo "Excel" lango kampo.
Po to pasirinkite Išsaugoti kaip.
Tada pasirinkite "Excel" darbaknygė su makrokomandomis (*xlsm) ir spustelėkite Išsaugoti.
4 žingsnis : Naudojant "ColorFunction" spalvotoms ląstelėms skaičiuoti
Dabar galite naudoti savo pasirinktinį SpalvaFunkcija.
Norėdami gauti šviesiai žalių langelių skaičių, tuščiame langelyje įveskite šią formulę,
=ColorFunction(F5,$D$5:$D$11,FALSE)
Čia, F5 = Kriterijus ląstelė, kurios spalva bus skaičiuojama
$D$5:$D$11 = Skaičiavimo diapazonas
FALSE nurodo, kad bus skaičiuojamas ląstelių, kurių spalva yra tokia pati kaip kriterijaus ląstelės, skaičius.
Paspauskite ĮVESKITE ir gausite šviesiai žalių ląstelių skaičių.
Panašiai galite gauti šviesiai oranžinių ląstelių skaičių.
5 veiksmas : Naudojant "ColorFunction" spalvotoms ląstelėms sumuoti
Norėdami gauti šviesiai žalios spalvos ląstelių sumą, tuščioje ląstelėje įveskite šią formulę,
=ColorFunction(F5,$D$5:$D$11,TRUE)
Čia, F5 = Kriterijaus ląstelė, kurios spalva bus sumuojama
$D$5:$D$11 = sumos diapazonas
TRUE rodo, kad bus sumuojamas ląstelių, turinčių tą pačią spalvą kaip ir kriterijaus ląstelė, skaičius.
šviesiai žalių langelių sumą gausite paspaudę ĮVYKDYTI.
Panašiai galite gauti šviesiai oranžinių langelių sumą.
Alternatyvūs spalvotų ląstelių skaičiavimo ir sumavimo būdai
Užuot naudoję SpalvaFunkcija, galite gauti spalvotų langelių skaičių arba susumuoti spalvotus langelius dviem skirtingais būdais.
1. Naudojant FILTER ir SUBTOTAL funkcijas
Spalvotų langelių skaičių ir sumą galite gauti naudodami Filtras ir funkcija SUBTOTAL .
Pirmiausia eikite į Duomenys skirtuką ir spustelėkite Filtras.
Po to šalia kiekvieno stulpelio antraštės atsiras žemyn nukreipta rodyklė. Spustelėkite žemyn nukreiptą rodyklę šalia Užsakymo kiekis (Spalvotas stulpelis), eikite į Filtruoti pagal spalvą ir pasirinkite šviesiai žalią spalvą.
Dabar šiame stulpelyje matysite tik šviesiai žalios spalvos duomenis. Norėdami gauti skaičių, įveskite šią formulę,
=SUBTOTAL(2,D5:D11)
Čia 2 rodo, kad ląstelė bus skaičiuojama ir D5:D11 yra duomenų diapazonas.
Paspaudus ĮVESKITE gausite šviesiai žalios spalvos ląstelių skaičių.
Norėdami gauti spalvotų langelių sumą, įveskite šią formulę,
=SUBTOTAL(9,D5:D11)
Čia 9 rodo, kad langelis bus sumuojamas ir D5:D11 yra duomenų diapazonas
Paspaudus ĮVESKITE gausite šviesiai žalios spalvos langelių sumą.
Pakeitę filtrą į šviesiai oranžinę spalvą, galite gauti oranžinės spalvos ląstelių skaičių ir sumą.
2. Naudojant funkciją GET.CELL
Naudodami GET.CELL funkcija taip pat galite suskaičiuoti ir sudėti spalvotus langelius.
Pirmiausia eikite į Formulės skirtuką ir pasirinkite Apibrėžti pavadinimą.
A Naujas pavadinimas Bus rodomas langas. Įveskite pavadinimą, pvz. Spalva į Pavadinimas ir Įterpkite formulę į Nurodo langelį ir paspauskite GERAI.
=GET.CELL(38,'GET CELL'!$D5)
Čia 38 reiškia, kad formulė pateiks nurodytos ląstelės spalvos kodą, o 'GET CELL'!$D5 yra nurodytas langelis (pirmas langelis po spalvoto stulpelio antraštės).
Dabar įveskite =Spalva (Vardas, kurį anksčiau nurodėte Apibrėžti pavadinimus langelis) gretimame spalvotame stulpelyje.
Paspaudus ĮVESKITE ir vilkdami ląstelę E5 į duomenų rinkinio pabaigą, gausite visų spalvotų stulpelio langelių spalvų kodus. E .
Dabar įveskite šią formulę, kad gautumėte šviesiai žalios spalvos ląstelių skaičių
=COUNTIF($E$5:$E$11,50)
Čia, $E$5:$E$11 yra skaičiavimo diapazonas, o 50 yra šviesiai žalios spalvos kodas.
Paspaudus Įveskite gausite žalios spalvos ląstelių skaičių.
Įveskite šią formulę, kad gautumėte šviesiai žalios spalvos langelių sumą,
=SUMIF(E5:E11,50,D5:D11)
Čia, E5:E11 kriterijų diapazonas, 50 reiškia šviesiai žalios spalvos kodą ir D5:D11 yra sumos intervalas.
Paspauskite ĮVESKITE ir gausite visų žalios spalvos langelių sumą.
Panašiai galite gauti šviesiai oranžinės spalvos langelių skaičių ir sumą.
Išvada
Tikiuosi, kad perėję straipsnį dabar galite sukurti ir naudoti "ColorFunction" "Excel" programoje. Jei susiduriate su kokia nors problema, palikite komentarą.