08. november 2015 - 13:58Der er
12 kommentarer og 1 løsning
søg med lopslag
Jeg har et regneark med 2 ark, i første ark A1 sætter jeg navn ind , i B1 sætter jeg formlen =LOPSLAG($A$1;'Ark2'!A1:C10;2;FALSK)ind, som jeg kopierer ned til A10 i ark 2 A1 til A10 sætter jeg navne ind navnene går igen ca 3 gange eksempel: ole er i A1,A4,A7,A10 I B1-10 er der bare nr. 1-10 Når jeg så skriver ole i Ark1 A1 så kommer resultatet1,4,4,4,7,7,7,10,10,10, jeg kan ikke forstå at resultatet ikke er 1,4,7,10 Kan nogen hjælpe mig ?
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.
Når du kopierer formlen, ændre opslagsområdet sig.
1. opslagsområde 'Ark2'!A1:C10 Ole findes i A1 2. opslagsområde 'Ark2'!A2:C11 Ole findes i A4 3. opslagsområde 'Ark2'!A3:C13 Ole findes i A4 4. opslagsområde 'Ark2'!A4:C14 Ole findes i A4 5. opslagsområde 'Ark2'!A5:C15 Ole findes i A5 ... osv
Super text: Ja jeg bruger kun A1 som søgefelt Store Morten: Navnene kommer i denne rækkefølge:1-10 ole ,finn,per ,ole,fin,per,ole finn.per,ole Ole forekommer kun 1,4,7,10 når jeg låser opslagsområdet med $ i A1 og C10 så kommer kun det første fundne =1 Hvordan får jeg den til at vise at ole kun findes i 1,4,7,10 ?
Sub InsertNumbers() Dim x, y As Integer Sheets("Ark1").Range("B1:B10").ClearContents y = 1 For x = 1 To 10 If Sheets("Ark2").Cells(x, 1) = Sheets("Ark1").Range("A1") Then Sheets("Ark1").Cells(y, 2) = Sheets("Ark2").Cells(x, 2) y = y + 1 End If Next End Sub
Prøv med denne makro i stedet. Den kører automatisk, når der skrives i A1, hvis du højreklikker på Ark1 fanebladet og indsætter den under vis koder. Bemærk at der skelnes mellem store og små bogstaver.
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A1")) Is Nothing Then Dim x, y, z As Integer z = Application.WorksheetFunction.CountA(Sheets("Ark2").Range("A:A")) Sheets("Ark1").Range("B:B").ClearContents y = 1 For x = 1 To z If Sheets("Ark2").Cells(x, 1) = Sheets("Ark1").Range("A1") Then Sheets("Ark1").Cells(y, 2) = Sheets("Ark2").Cells(x, 2) y = y + 1 End If Next End If End Sub
Jens: Virker perfekt når der kun er 1 ting at referer til , men i virkligheden er der 10 kolonner der skal vises i ark 1 oplysningerne ligger i Ark2 eks. B1 til K500 kan jeg få dette til at virke ved at udvide din formel ?
Makroen skelner ikke længere mellem store og små bogstaver
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A1")) Is Nothing Then Dim x, y, z, a As Integer z = Application.WorksheetFunction.CountA(Sheets("Ark2").Range("A:A")) Sheets("Ark1").Range("B:K").ClearContents y = 1 For x = 1 To z If UCase(Sheets("Ark2").Cells(x, 1)) = UCase(Sheets("Ark1").Range("A1")) Then Worksheets("Ark2").Range("B" & x & ":K" & x).Copy _ Destination:=Worksheets("Ark1").Range("B" & y) y = y + 1 End If Next End If End Sub
Her er makroen igen med kommentarer. Hvis du indsætter den, vil kommentarerne vises i grønt.
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A1")) Is Nothing Then ' starter makroen, når der skrives i A1 Dim x, y, z, a As Integer ' variablerne defineres som integer z = Application.WorksheetFunction.CountA(Sheets("Ark2").Range("A:A")) ' der tælles linier i kolonne A (Ark2) Sheets("Ark1").Range("B:K").ClearContents ' de gamle data på Ark1 slettes y = 1 ' y angiver linien der skal skrives i på Ark1 For x = 1 To z ' linierne 1 til z (sidste linie) testes. x angiver linien der testes If UCase(Sheets("Ark2").Cells(x, 1)) = UCase(Sheets("Ark1").Range("A1")) Then ' Hvis celle Ax (Ark2) = A1 (Ark1) så: Worksheets("Ark2").Range("B" & x & ":K" & x).Copy _ Destination:=Worksheets("Sheet1").Range("B" & y) ' kopiering af Bx:Kx (Ark2) til By:Ky (Ark1) y = y + 1 'y forøges med 1 End If Next 'tilbage i sløjfen til sidste linie nås End If 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.