- iPhone topik
- Apple Watch
- Samsung Galaxy A55 - új év, régi stratégia
- Samsung Galaxy A56 - megbízható középszerűség
- Vivo X200 FE – fenséges méret
- Fotók, videók mobillal
- EarFun Air Pro 4+ – érdemi plusz
- Telekom mobilszolgáltatások
- Honor Magic8 Pro - bevált recept kölcsönvett hozzávalókkal
- Milyen okostelefont vegyek?
-
Mobilarena
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
- Kormányok / autós szimulátorok topikja
- Milyen videókártyát?
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Milyen TV-t vegyek?
- Philips LCD és LED TV-k
- Arc Raiders
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- Vác és környéke adok-veszek beszélgetek
- WLAN, WiFi, vezeték nélküli hálózat
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- További aktív témák...
- Azonnali készpénzes AMD Radeon RX 5000 sorozat videokártya felvásárlás személyesen / csomagküldéssel
- Thermal Grizzly Aeronaut paszta 3,9g /BONTATLAN/Több darab/Számlával/
- HIBÁTLAN iPhone 13 256GB Pink -1 ÉV GARANCIA - Kártyafüggetlen, MS3732
- Lenovo L13 Core I3-10110U / 4GB DDR4 / LAPTOP 1
- HP 430 G5 Intel CEL 3865U laptop (kijelző hibás)
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Fferi50

