Oprettet tor. d. 29. juli 2010 kl. 12:12:28

lineriber
lineriber (11.440 point. Point ude: 0)

Opslag skal returnerer ALLE linier der opfylder opslagsværdien

Hej

Jeg har lidt en udfordring i excel (2007, engelsk version), som er lidt svær at forklare, men jeg har forsøgt nedenfor.

Jeg har en liste med 50 rækker og 3 kolonner.
Jeg vil gerne lave et opslag (ala VOPSLAG) i denne liste, på kolonne A, og returnere de værdier fra kolonne B og kolonne C der opfylder min opslagsværdi, til 2 kolonner i en anden fane.
MEN jeg vil gerne have returneret ALLE de linier der opfylder opslagsværdien, stående på en linie pr. resultat

Eksempel:
Opslagsværdien = "HAM.MOD"
Så skal der i den nye fane blive returneret række 1, 4, 6 og 8

  A                        B                                      C
1 HAM.MOD    Pallemag                          802
2 HAM.PLU    Pallereoler                        4.966
3 HAM.PLU    Truck                                  9.490
4 HAM.MOD    Ombygning kantinen      814
5 HAM.PLU    Ombygning kantinen      1.018
6 HAM.MOD    Ombygning                      919
7 HAM.PLU    Ombygning                      1.149
8 HAM.MOD    Etablering kantine          219
9 HAM.PLU    Etablering kantine            273



Kan man på en eller anden måde løse det???
Til orientering, er der IKKE altid samme antalt linier i listen pr. opslagsværdi.

Mvh
Line

Skrevet tor. d. 29. juli 2010 kl. 13:04:23| #1

erikjuul
erikjuul (110.661 point)
LOPSLAG() (som det må være på den måde data er opbygget) kan ikke benyttes til opgaven. LOPSLAG() finder kun første forekomst af en given værdi.

Du kan opnå det ønskede med et avanceret filter.
Data->Filter->Avanceret filter.

Skrevet tor. d. 29. juli 2010 kl. 13:10:47| #2

lineriber
lineriber (11.440 point)
Jeg er godt klar over at hverken LOPSLAG eller VOPSLAG kan bruges, det var bare for at give en idé om hvad det var for en måde at lave et opslag på, som jeg mente.

Men hvordan bruger man datafiltre, når listen med alle data ligger i én fane, og jeg kun vil have de data over i den anden fane, som opfylder betingelserne (fx HAM.MOD) ??

Skrevet tor. d. 29. juli 2010 kl. 14:23:48| #3

zjat
zjat (8.936 point)
Du kan bruge denne løsning, hvor A5 er nummeret på forekomsten (dvs. skriv 1 i A5, hvis du vil have første forekomst). Du kan så bare lave flere rækker med informationen:

For at få Kolonne B resultaterne:

INDEX(ARK1!$B$1:$B$1000;SMALL(IF(ARK1!$A$1:$A$1000=$C$3;ROW(Ark1!$B$1:$B$1000)-MIN(ROW(Ark1!$B$1:$B$1000))+1);$A5))

For at få Kolonne C resultaterne:

INDEX(ARK1!$C$1:$C$1000;SMALL(IF(ARK1!$A$1:$A$1000=$C$3;ROW(Ark1!$C$1:$C$1000)-MIN(ROW(Ark1!$C$1:$C$1000))+1);$A5))

osv..

C3= det du gerne vil søge efter i kolonne A

Du laver så en kolonne I arket hvor du vil have resultaterne, som starter i A5, hvor du skriver 1. A6 = 2, A7= 3 osv.

Håber det giver mening - virker i hvert fald for mig :)

HUSK at trykke ALT + SHIFT + ENTER - i stedet for bare ENTER! Det er en Array formel!

Skrevet tor. d. 29. juli 2010 kl. 14:26:34| #4

zjat
zjat (8.936 point)
btw. skal det løses med VBA, hvis excel skal tænke på hvor mange rækker der er.

På denne måde skal du sikre dig at du har nok rækker med formelen :)

Skrevet tor. d. 29. juli 2010 kl. 14:30:09| #5

lineriber
lineriber (11.440 point)
btw?? Hvad betyder det?

Har du mulighed for at sende mig et excel ark hvor den formel virker i, da den er rimelig svær at overskue ;-)

Skrevet tor. d. 29. juli 2010 kl. 15:49:11| #6

dkhanknu
dkhanknu (33.955 point)
Engelsk version:

Kolonne B værdier:
=INDEX(Sheet1!$B$1:$B$9;SMALL(IF(Sheet1!$A$1:$A$9=Sheet2!$G$1;ROW(Sheet1!$A$1:$A$9));ROW(1:1)))

Kolonne C værdier:
=INDEX(Sheet1!$C$1:$C$9;SMALL(IF(Sheet1!$A$1:$A$9=Sheet2!$G$1;ROW(Sheet1!$A$1:$A$9));ROW(1:1)))

Opslagsværdien har jeg forudsat indtastet i Sheet2!$G$1.
Cellereferencerne skal selvsagt tilpasses det område der er relevant for dig.

Formlerne vil returnere #NUM! når der ikke findes flere udgaver af den søgte værdi. Hvis du gerne vil undgå #NUM!, kan du for eksempel bruge IFERROR funktionen.

Du kan kopiere formlerne herfra til din egen fil. Når du har formlen i en celle så tryk på F2, herefter holder du Ctrl og Shift nede før du trykker på Enter. Herved bliver formlerne omsluttet af tuborgparenteser som udtryk for, at Excel forstår dem som matriksformler. Kopier formlerne nedad så langt som nødvendigt.

Som allerede nævnt af erikjuul er det også muligt at bruge Avanceret Filter. Sig til hvis du ønsker hjælp til det.

Hans

Skrevet tor. d. 29. juli 2010 kl. 16:12:49| #7

zjat
zjat (8.936 point)
Hej Hans

Er det ikke det samme som jeg skrev? :)

Skrevet tor. d. 29. juli 2010 kl. 17:07:55| #8

dkhanknu
dkhanknu (33.955 point)
Det må du undskylde.
Jeg synes dog ikke det er helt det samme. Det du skriver om i følgende sætning:

Du laver så en kolonne I arket hvor du vil have resultaterne, som starter i A5, hvor du skriver 1. A6 = 2, A7= 3 osv

Det er ikke nødvendigt med formlerne i #6.

Men ved eftertanke medgiver jeg, at dit svar var en brugbar løsning og jeg burde måske ikke være kommet med noget indlæg.

NB
I og med spørgeren bruger engelsk version gætter jeg på, "Sheet" er mere relevant end "Ark".

Hans

Skrevet tor. d. 29. juli 2010 kl. 17:20:44| #9

zjat
zjat (8.936 point)
Hej Hans

Du har ret... Du har forfinet den lidt - det vil jeg straks overføre i mine excel ark!

Det med sheet og ark var bare en tanketorsk fra min side - men nu er eksempel på løsning sendt og så må vi se hvad brugeren siger :)

Venligst
Nis

Skrevet fre. d. 30. juli 2010 kl. 08:28:29| #10

lineriber
lineriber (11.440 point)
Godmorgen de herrer

Tak for det tilsendte zjat - det virker perfekt. Men det gør dine formler også Hans.
Jeg kan godt se at dine formler er lidt mere forfinede Hans, men zjat's løser dog fint mit problem.

DOG DOG DOG, vil mere jo altid have mere :-)
Zjat i #4, skriver du at man kan få excel til selv at finde ud af hvormange rækker der skal være, ved hjælp af en VBA kode.
Jeg kunne nemlig rigtig godt tænkte mig, at der kun var plads til præcis det antal linier der var nødvendige, da jeg efter disse linier skal have en Total linie med summering. Kan det lade sig gøre?
Hvis jeg nu gerne vil have hjælp til den VBA kode, skal jeg så oprette et nyt spørgsmål??

Skrevet fre. d. 30. juli 2010 kl. 11:10:58| #11

zjat
zjat (8.936 point)
Du kan jo altid lave en total linie nederst og vælge at summere de data som er tilstede.

Hvis du gerne vil have VBA, så kan du bruge en simpel hide funktion (der er smartere funktioner):

    Dim Criteria As Boolean
    Dim i As Integer
   
    Rows("23:182").EntireRow.Hidden = False
   
    On Error GoTo slut
    Sheets("Sheet1").Activate
    i = 1
   
    For i = 23 To 71
        If (Cells(i, 9).Value = "0") And (Cells(i, 11).Value = "0") Then
        Criteria = True
        Rows(i).EntireRow.Hidden = True
        End If

Den kigger på række 9 og 11 og tjekker om den er = 0

Hvis den er det, så skjuler den rækken.
Smid det ind under en knap og kør løs :)

Jeg går her udfra du kender lidt til VBA :)

Skrevet fre. d. 30. juli 2010 kl. 12:15:36| #12

lineriber
lineriber (11.440 point)
bob bob, kendskab er nu nok så meget sagt ;-)

Jeg kan finde ud af at indspille macroer og efterfølgende rette lidt i dem. Og jeg regner med at en VBA kode er i samme stil, bare en "skrevet" process istedet for en optaget..... har jeg fat i den rigtige opfattelse?

Skal jeg bare kopiere din tekst ind i en macro direkte, og rette tallene til?

Hvad henviser 23:182 til? Er det alle rækkerne i mit skema?

Min række 77 til 89 indeholder din formel zjat, så det er de rækker der skal skjules hvis de er tomme. Men betyder 0 at de er tomme? For der er jo formler i dem, hen over flere kolonner...?

Din række 9 og 11 som du kigger på, hvorfor de to rækkenumre? Hvad med række 10? Jeg tror ikke helt jeg forstår hvad det er for nogle rækkenumre jeg skal indsætte i VBA-koden......

Skrevet fre. d. 30. juli 2010 kl. 16:33:44| #13

zjat
zjat (8.936 point)
Du har fat i det rigtige, eksemplet er bare hvis du vil tjekke 2 kolonner for om der er noget. Du kan også nøjes med at tjekke en. Hvis felter i den kolonne er 0 så vil den skjule hele rækken :)

Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   

   

Seneste spørgsmål

Svar til: X i en celle giver et andet resultat i anden...

Oprettet den 11. februar 2012 kl. 14.15
ashurra giver 100 point for svar | Giv et svar »

Hjælp til formel rente/antal dage

Oprettet den 11. februar 2012 kl. 12.14
petert giver 30 point for svar | Giv et svar »

Problemløser, "HVIS" formel, eller andet til optimering?

Oprettet den 11. februar 2012 kl. 02.36
Olav123 giver 150 point for svar | Giv et svar »

Seneste guides

Installer win 7
Den gode bruger


   




Tips & Tricks fra PC World

Teaser billede

Her er fem sjove danske websider du skal kende

Trænger dine lattermuskler til en omgang fitness på dansk? Vi viser vej til fem websider fyldt med humor og vanvittig satire.


Anmeldelser fra PC World

Teaser billede

Test: Denne super-tablet er iPads hårdeste konkurrent

Eee Pad Transformer Prime er frygtindgydende med sin quadcore processor og evne til at trylle sig om til bærbar. Apple bør kigge i bagspejlet, for Asus' tablet-pc kommer buldrende - og gør det...


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Nu kan du snart hente Windows 8

Den nye offentlige betaversion af Windows 8 er klar i denne måned.


Nyheder fra Computerworld

Teaser billede

Måske snart slut med Androids helt store problem

Android-platformen har længe været plaget af et særligt problem. Men måske er problemet nu ved at være elimineret.


Kurser
Samarbejdspartnere

Udgiver · © 2012 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger