Hirdetés
-
PROHARDVER!
A Microsoft Excel topic célja segítséget kérni és nyújtani Excellel kapcsolatos problémákra.
Kérdés felvetése előtt olvasd el, ha még nem tetted.
Új hozzászólás Aktív témák
-
Mutt
senior tag
válasz
Nyomdász
#19454
üzenetére
Hello,
Tömbfüggvénnyel esetleg megoldható, illetve az újabb változatokban van GYAKORISÁG függvény, de ez sem segít sokat.
A javaslatom egy saját függvény használata. Feltöltöttem ide egy mintával:
https://www.sugarsync.com/pf/D0303523_164_627981888A függvénnyel mind a legtöbbször, mind a legkevesebbszer használt számokat meg lehet kapni.
A kód a pedig:
Function GYAKORI(Tartomany As Range, Elem As Long, Optional Kicsi As Boolean = False, Optional Rendezetlen As Boolean = False)
Dim Adatok As New Collection 'egyedi számok tömbje
Dim arryAdatok() 'végső tömb
Dim rngAdatsor As Range 'adatokat tartalmazó terület
Dim cell As Range
Dim i As Long
'csak a kijelölt és számokat tartalmazó terület metszetét vizsgáljuk
Set rngAdatsor = Intersect(Tartomany, ActiveSheet.Cells.SpecialCells(xlCellTypeConstants, xlNumbers))
'a collection-be felvesszük a számokat, mivel csak egyedi értékeket
'tud fogadni, ezért ki kell kapcsolni a hibakezelést
On Error Resume Next
'végigmegyünk az adatterületen és felvesszük a collection-be
For Each cell In rngAdatsor
Adatok.Add cell.Value, CStr(cell.Value)
Next cell
'hibakezelés visszakapcsolása
On Error GoTo 0
'létrehozunk egy két dimenziós tömböt: számokat és gyakoriságukat fogjuk tárolni
ReDim arryAdatok(1 To Adatok.Count, 1 To 2)
'feltöltjük a tömböt
For i = 1 To UBound(arryAdatok, 1)
'számérték
arryAdatok(i, 2) = Adatok.Item(i)
'számérték gyakorisága - DARABTELI-vel határozzuk meg
arryAdatok(i, 1) = WorksheetFunction.CountIf(rngAdatsor, Adatok.Item(i))
Next i
'sorbarendezzük a számokat alapból (ha a rendezetlen IGAZ-ra van állítva akkor nem fut le)
If Not Rendezetlen Then
BubbleSort arryAdatok, 2
End If
'a gyakoriság (első dimenzió) szerint növekvő sorrendbe tesszük a tömböt
'buborék rendezés kódja innen származik
'http://social.msdn.microsoft.com/Forums/en-US/320f3328-cb4f-43ce-aedf-c0f00f253b64/sorting-a-2-dimension-array-in-excel-vba?forum=isvvba
BubbleSort arryAdatok, 1
'ha KICSI-ként használjuk a függvényt, akkor a tömb első elemei kellenek
'ha NAGY-ként akkor viszont az utolsók
If Not Kicsi Then
Elem = UBound(arryAdatok, 1) - Elem + 1
End If
'eredmény
GYAKORI = arryAdatok(Elem, 2)
End Functionüdv.
Új hozzászólás Aktív témák
- Házimozi belépő szinten
- Honor Magic8 Pro - bevált recept kölcsönvett hozzávalókkal
- Milyen SSD-t vegyek?
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Milyen billentyűzetet vegyek?
- Brogyi: CTEK akkumulátor töltő és másolatai
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- PlayStation 5
- Milyen légkondit a lakásba?
- Samsung Galaxy Felhasználók OFF topicja
- További aktív témák...
- Antivírus szoftverek, VPN
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! Automatikus 0-24
- MEGA AKCIÓ! - Jogtiszta Windows - Office & Autodesk & CorelDRAW - Azonnal - Számlával - Garanciával
- Bitdefender Total Security 3év/3eszköz! - Tökéletes védelem.
- Windows 10/11 Home/Pro , Office 2024 kulcsok
- Telefon felvásárlás!! Xiaomi Redmi 9, Xiaomi Redmi 9AT, Xiaomi Redmi 10, Xiaomi Redmi 10 2022
- magyar billentyűzet - 121 - Lenovo Legion Pro 5 (16ARX8) - AMD Ryzen 7 7745HX, RTX 4070 - 4 év gar
- AKCIÓ! Apple iPhone 12 Mini 64GB mobiltelefon garanciával hibátlan működéssel
- Kihagyhatatlan ajánlat! Lenovo ThinkPad P14s Gen 5 Ultra 7 165H (vPro) 32gb DDR5 ram RTX500 ADA 3K
- HONOR Magic 8 Pro 12/512GB Black használt, újszerű garanciás 2029.02.20-ig
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Fferi50
