I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Jeg havde nu egentligt forestillet mig en makro der enten placerer dem for mig, eller tæller antal i intervaller og placerer i celler, ellers ville jeg skulle lave en hulens masse formler...
Nu er det måske for sent, men hvor bruger du ikke bare FREKVENS funktion. Det er en matrix funktion, hvor du skriver både dataområde og et område med dine intervaller. Det lyder som lige det du søger - men det er selvfølgelig lettere, hvis flemming vil lave det for dig :0)
Eksempel: Du har dine data i A1:A100 Så skriver du følgende: B1: 1000 B2: 1100 B3: 1200 osv. det er øvre grænse i alle intervallerne. I F.eks. C1 skriver du så =FREKVENS(A1:A100;B1:B10) Anden del af funktionen er di intervalområde og hvis du f.eks. har skrevet det sidste interval i B9, så angives intervallet til B10 (dvs. der medtages et blank felt). Derved tælles også alle værdier større end det sidst angivne interval. Det er lidt kryptisk beskrevet, men jeg håber du forstår. Når du har indlæst formlen, markerer du felterne C1 - C10 (én for meget ligesom ovenfor) trykker F2 og derefter trykker du Ctrl-Shift-Enter så fyldes matrixformlen ud i alle de valgte felter og du kan straks se resultatet.
Forudsætinger...... - tallene står i kolonne V i Sheet1 - intervallerne står i kolonne A+B i Sheet2
Private Const msCOL_LETTER As String = "V" Private Const mlFIRST_ROW As Long = 2 Private mcolNumbers As Collection
Public Sub DoInterval() Dim lRow As Long
FilNumbersCollection
With Sheet2 For lRow = mlFIRST_ROW To .Range("A1").End(xlDown).Row .Cells(lRow, 3).Value = FrequenceInCollection(.Cells(lRow, 1).Value, .Cells(lRow, 2).Value) Next lRow End With
End Sub
Private Function FrequenceInCollection(ByVal lLow As Long, ByVal lHigh As Long) As Long Dim lRetVal As Long Dim lItem As Long
For lItem = 1 To mcolNumbers.Count If mcolNumbers(lItem) >= lLow And mcolNumbers(lItem) <= lHigh Then lRetVal = lRetVal + 1 End If Next lItem
FrequenceInCollection = lRetVal End Function
Private Sub FilNumbersCollection() Dim lRow As Long Set mcolNumbers = New Collection
With Sheet1 For lRow = mlFIRST_ROW To Sheet1.Range(msCOL_LETTER & CStr(mlFIRST_ROW)).End(xlDown).Row mcolNumbers.Add Sheet1.Range(msCOL_LETTER & CStr(lRow)).Value Next lRow End With End Sub
Nu har jeg ikke lige prøvet Flemmings funktion, men svarer det ikke til at opfinde den dybe tallerken. Jeg spørger blot fordi det umiddelbart ligner en funktion, der laver det samme som FREKVENS funktionen. Eller er er der noget jeg har misforstået?
sjap> Den laver i princippet det samme. Problemerne ved formler kan nu og da være, at de fylder en del, og gør regnearket langsomt. Tror det er årsagen til ønsket om en VBA løsning...
flemmingdahl -> Jeg havde bare ikke lige set, at der blev ønsket en VBA løsning, og jeg har ikke oplevet at frekvensfunktionen er langsom (har godt nok heller ikke prøvet den op mod din), men med 30000 tal som mile skriver om, kan jeg slet ikke registrere nogen forsinkelse.
frekvens er heller blandt de sløveste, men det kan jo være i en stor løsning, hvor jo færre formler jo bedre..... hvem ved
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.