Brug for vælg til excel formel (blanding af vlookup og IF)
Hej
Jeg håber en af Jer har en mulig løsning.
Jeg har en sheet (sheet input), hvor jeg skal hente data til. Derudover har jeg 2 sheets. Det ene sheet er med 2013 tal, hvor der i Kolonne A med "Kunder" og Kolonne B med "omsætning". Det samme er tilfældet for 2 sheet, bare med 2012 tal, ellers det samme.
Jeg vil gerne bruge en formel, hvor jeg automatisk kan hente de 5 nye kunder der fremgår i 2013 sheet, men ikke i 2012 sheet. Samtidig skal den slå de 5 største tilbage (af de nye), målt på beløbene.
Jeg ved ikke om der er én formel der kan gøre dette, eller alternativt lave en formel i sheet 2013 og derefter en anden formel i input sheet
Manuelle og semi-automatiske strategier for identitetsstyring virker - lige indtil nogen beder om dokumentation. For at undgå denne fare har DKTV taget kontrol over sin identitets- og adgangsstrategi.
Var lidt dårligt formuleret, men formel skal give 5 nye kunder tilbage, men samtidig skal det være de 5 med mest omsætning ud af den samlede liste. Så selvom der måske er 7 nye kunder i forhold til 2012, er det kun de 5 største formlen skal give tilbage.
Rem Version 1.1 Rem =========== Const dataRæk = 3 Const kundeIdKol = "B" 'kan justeres Const topRæk1 = 10 Dim arkÅr1 As Worksheet, arkÅr2 As Worksheet
Dim tællerNye As Integer Public Sub topFem() Dim antalRæk1 As Integer, ræk As Integer, kundeId As String, turnOver As Long, topRæk As Integer nyeKunder = "" tællerNye = 0
Set arkÅr1 = ActiveWorkbook.Sheets(2) Set arkÅr2 = ActiveWorkbook.Sheets(3)
Rem Antal rækker sidste år antalRæk1 = arkÅr1.Range("A65000").End(xlUp).Row
Rem Traverser sidste år Application.ScreenUpdating = False
For ræk = dataRæk To antalRæk1 kundeId = arkÅr1.Range(kundeIdKol & ræk) If kundeId <> "" Then If findesKundenForrigeÅr(kundeId) = False Then turnOver = arkÅr1.Range(kundeIdKol & ræk).Offset(0, 1) tællerNye = tællerNye + 1
klargørNyeTilSortering tællerNye, kundeId, turnOver End If End If Next ræk
If tællerNye > 0 Then Rem Sorter nye iflg. turnover sorteringNye tællerNye
Rem Placer de 5 "største" topRæk = topRæk1
For ræk = 1 To 5 Range(kundeIdKol & topRæk) = Range("Y" & ræk) Range(kundeIdKol & topRæk).Offset(0, 1) = Range("Z" & ræk) topRæk = topRæk + 1 Next ræk
Rem Slet sorteringsOmrådet Range("Y1:Z" & tællerNye).Select Selection.ClearContents Range("A1").Select End If End Sub Private Function findesKundenForrigeÅr(kundeId) With arkÅr2.Range(kundeIdKol & dataRæk & ":" & kundeIdKol & 65000) Set c = .Find(kundeId, LookIn:=xlValues, LookAt:=xlWhole) If Not c Is Nothing Then findesKundenForrigeÅr = True Else findesKundenForrigeÅr = False End If End With End Function Private Sub klargørNyeTilSortering(tællerNye, kundeId, turnOver) Range("Y" & tællerNye) = kundeId Range("Z" & tællerNye) = turnOver End Sub Private Sub sorteringNye(tællerNye) Range("Y1:Z" & tællerNye).Select ActiveWorkbook.Worksheets("Input data").Sort.SortFields.Clear ActiveWorkbook.Worksheets("Input data").Sort.SortFields.Add Key:=Range( _ "Z1:Z" & tællerNye), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _ xlSortNormal With ActiveWorkbook.Worksheets("Input data").Sort .SetRange Range("Y1:Z" & tællerNye) .Header = xlGuess .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End Sub
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.