Formulat e grupeve janë një nga veçoritë më të fuqishme të Excel. Nëse jeni njohur me formulat e grupeve, do të jeni të lumtur të dini se mund të krijoni funksione VBA që kthejnë një grup.
Kthimi i një sërë emrash muajsh
Le të fillojmë me një shembull të thjeshtë. Funksioni Emrat e muajve kthen një grup prej 12 elementësh - e keni marrë me mend - emrat e muajve.
Emrat e muajve të funksionit ()
Emrat e muajve = Array ("Janar", "Shkurt", "Mars", _
"Prill", "maj", "qershor", "korrik", "gusht", _
"Shtator", "Tetor", "Nëntor", "Dhjetor")
Funksioni i Fundit
Për të përdorur funksionin Emrat e muajve në një fletë pune, duhet ta futni atë si një formulë grupi me 12 qeliza. Për shembull, zgjidhni intervalin A2:L2 dhe shkruani =MonthNames() . Më pas shtypni Ctrl+Shift+Enter për të futur formulën e grupit në të 12 qelizat e zgjedhura. Shikoni rezultatin.
Përdorimi i funksionit MonthNames për të kthyer një grup me 12 elementë.
Nëse dëshironi që emrat e muajve të shfaqen në një kolonë, zgjidhni 12 qeliza në një kolonë dhe përdorni këtë formulë të grupit. (Mos harroni ta futni duke shtypur Ctrl+Shift+Enter.)
=TRANSPOSE(Emrat e muajve())
Ju gjithashtu mund të zgjidhni një muaj të vetëm nga grupi. Këtu është një formulë (jo një formulë grupi) që shfaq elementin e katërt të grupit: Prill.
=INDEX(Emrat e muajve(),4)
Po kthen një listë të renditur
Supozoni se keni një listë me emra që dëshironi të shfaqni në rend të renditur në një gamë tjetër qelizash. A nuk do të ishte mirë që një funksion i fletës së punës ta bënte këtë për ju?
Ky funksion i personalizuar bën pikërisht këtë: Ai merr një varg qelizash me një kolonë si argument dhe më pas kthen një grup të atyre qelizave të renditura. Gama A2:A13 përmban disa emra. Gama C2:C13 përmban këtë formulë të grupit shumëqelizor. (Mos harroni se duhet të futni formulën duke shtypur Ctrl+Shift+Enter.)
Përdorimi i një funksioni të personalizuar për të kthyer një diapazon të renditur.
=Të renditura (A2:A13)
Këtu është kodi për funksionin Sorted:
Funksioni i renditur (Rng si varg)
Dim SortedData() Si variant
Qeliza e zbehtë si varg
Dim Temp As Variant, i Sa Long, j Sa Long
E zbehtë jo e zbrazët për aq kohë sa
' Transferoni të dhënat në të dhënat e renditura
Për çdo qelizë në Rng
Nëse nuk është bosh (qeliza) Atëherë
NonEmpty = Jo Bosh + 1
ReDim ruaj të dhënat e renditura (1 në jo bosh)
Të dhënat e renditura (Jo bosh) = Qeliza.Vlera
Fundi Nëse
Qeliza tjetër
' Rendit grupin
Për i = 1 Në NonEmpty
Për j = i + 1 Në Jo Bosh
Nëse Të dhënat e renditura(i) > Të dhënat e renditura(j) Pastaj
Temp = Të dhënat e renditura(j)
Të dhënat e renditura(j) = Të dhënat e renditura(i)
Të dhënat e renditura(i) = Temp
Fundi Nëse
Tjetra j
Tjetra i
' Transpozoni grupin dhe kthejeni atë
Renditur = Application.Transpose(Të dhënat e renditura)
Funksioni i Fundit
Funksioni Sorted fillon duke krijuar një grup të quajtur SortedData. Ky grup përmban të gjitha vlerat jo bosh në diapazonin e argumenteve. Më pas, grupi SortedData renditet, duke përdorur një algoritëm të renditjes me flluska. Për shkak se grupi është një grup horizontal, ai duhet të transpozohet përpara se të kthehet nga funksioni.
Funksioni i renditur funksionon me një gamë të çdo madhësie, për sa kohë që është në një kolonë ose rresht të vetëm. Nëse të dhënat e pakontrolluara janë në një rresht, formula juaj duhet të përdorë funksionin TRANSPOSE të Excel për të shfaqur të dhënat e renditura horizontalisht. Për shembull:
=TRANSPOSE(Të renditur(A16:L16))