02. april 2003 - 11:31Der er
24 kommentarer og 1 løsning
Lopslag i flere ark
LOPSLAG kan åbenbart kun kigge i et ark. Hvad gør man når man gerne vil søge efter en værdi i flere ark? Jeg skal bruge det til at hente de andre værdier på samme linie som den værdi jeg søger efter.
Hvis der laves opslag på tal, kan du lave den med plusser mellem hvert opslag. Ellers skal du udskifte plusset med og & Eksempel: =LOPSLAG(A2;E1:F4;2)&LOPSLAG(A2;E1:F4;2)
Jeg ved godt, at jeg laver et opslag på det samme område begge gange. Men eksemplet fungerer *S*
Altså hvis jeg skriver + lægger den sammen, hvis jeg skriver & skriver den teksten after hinanden, men det er jo ikke det den skal. Min formel ser f.eks sådan ud: =LOPSLAG(A1;'Group 1'!A6:I44;3)&LOPSLAG(A1;'Group 2'!A6:I44;3) og så skriver den teksten i celle C6 på arket 'Group 1' og derefter teksten i celle C6 på arket 'Group 2', selvom det jeg har skrevet i A1 ikke svarer til celle C6 på arket 'Group 2', men kun til celle C6 på arket 'Group 1'. Meningen er at den skal søge i begge ark efter tallet der står i A1, og så returnere teksten der passer med mit indtastede tal.
Du skriver "svarer til celle C6", men der slås altså op i kolonne A. 3-tallet i LOPSLAG refererer til den kolonne, der returneres, ikke til den der slås op i.
Undskyld, jeg mente selvfølgelig A6. C6 er den celle den henter værdien fra. Jeg fandt også ud af at der burde stå falsk, men det virker ikke alligevel, for så skriver den bare #I/T
Det har jeg også overvejet at gøre, selvom den største gruppe er på 100 linier. Og dit "ER:FEJL" forslag virkede heller ikke, så nu gider vi ikke bruge mere tid på det. Men det undrer mig at der er noget der ikke kan lade sig gøre.
Du får pointene for dine ihærdige forsøg, tak fordi du gad prøve. Men skulle du pludselig finde de vises sten, må du endelig skrive igen.
Jeg forstår nu ikke, at ER.FEJL() ikke fungerer, men lad nu det ligge *S*.
Hvis der tale om en engangsøvelse, vil jeg klart samle tallene i et enkelt ark. Hvis det er en øvelse, der skal laves flere gange, kan du overveje at lave en makro, der samler dine data i et ark, uden at ødelægge de oprindelige (men der kan jeg ikke hjælpe).
Et alternativ til en makro kan være at oprette et nyt ark med referencer til dine oprindelige, hvis der ikke sker ændringer i arkenes antal linier.
b_hansen> Bare til din orientering: ER.FEJL virkede godt nok, jeg kopierede først bare din formel, og der skulle jo stå Group 2 de sidste to steder. Så i princippet kan det godt bruges borset fra at formlen bliver for lang p.g.a. de mange ark. Ærgeligt!
dla-> jeg ved ikke om du kan bruge det til noget, men denne VBA-funktion søger i alle ark undtaget den, funktionen skrives i. Indsæt den i et alm. modul. bruges sådan =vlookup_allsheets(Søgeværdi;område; kolonne til højre) =vlookup_allsheets(C1;A1:B10; 2)
Function Vlookup_AllSheets(opslag, matrix As Range, kol) Dim ws As Worksheet Dim StartArk As String Dim x As Long Dim var As Variant StartArk = ActiveSheet.Name For Each ws In ActiveWorkbook.Worksheets If ws.Name <> StartArk Then var = ws.Range(matrix.Address) For x = 1 To UBound(var, 1) If var(x, 1) = opslag Then Vlookup_AllSheets = var(x, kol) Exit Function End If Next End If Next End Function
bak > Fantastisk! Jeg er ikke nogen ørn til vba, så jeg kan ikke rigtig gennemskue hvorfor det virker, men det gør det! Jeg er dybt taknemlig, det var lige hvad jeg kunne bruge. Du fortjener nogle point, så jeg opretter et spørgsmål, du kan trykke svar på. Tusind tak!
Function Hlookup_AllSheets(opslag, matrix As Range, Række) Dim ws As Worksheet Dim StartArk As String Dim x As Long Dim var As Variant StartArk = ActiveSheet.Name For Each ws In ActiveWorkbook.Worksheets If ws.Name <> StartArk Then var = ws.Range(matrix.Address) For x = 1 To UBound(var, 2) If var(1, x) = opslag Then Hlookup_AllSheets = var(Række, x) Exit Function End If Next End If Next End Function
hvordan kan kode, at den kun skal søge, fx. to bestemte ark og ikke alle ark.
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.