-
Fototrend
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
- Nintendo Switch 2
- Kezünkben a OnePlus 15 és az Oppo Find X9-ek
- Kompakt vízhűtés
- Az eddigieknél részletesebb videón a Samsung harmonikamobilja
- Hivatalos a OnePlus 13 startdátuma
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- Építő/felújító topik
- Ne várj sokat a vásárlással: drágulás a láthatáron
- Gitáros topic
- ASUS routerek
- További aktív témák...
- Macbook Pro 2019 // i9 // 32GB / 2TB // Számla+Garancia //
- ÁRGARANCIA!Épített KomPhone Ryzen 7 7800X3D 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- Lenovo ThinkPad T14s Gen 2 i5-1135G7 16GB 512GB 1 év garancia
- Samsung Galax A25 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
- ÁRGARANCIA!Épített KomPhone i5 10400F 16/32/64GB RAM RX 7600 8GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: NetGo.hu Kft.
Város: Gödöllő
Cég: Laptopműhely Bt.
Város: Budapest
Fferi50
