Avatar billede nyhavn18 Mester
15. maj 2009 - 10:04 Der er 9 kommentarer og
1 løsning

Lopslag....ens opslagsværdi forskellige udtræk?

Halløj Skarpe hoveder


Jeg har en EXCEL-liste i 2 kolonner
Kolonne 1 har fortløbende numre, dog i klumper af ca. 10 ens numre ad gangen (1-1-1-1-1-1-2-2-2-2-2-2-2-3-3-3-3-3- osv)Der er cirka 50 forskellige numre.
Kolonne 2 indeholder forskellige adresser.(alle 1'erne repræsenterer altså forskellige adresser og alle 2'erne repræsenterer forskellige adresser osv osv.)

Mit mål er nu at få en fane til hvert nummer med de adresser som står ud for et valgt nummer.
Altså Fane 1 = de forskellige adresser som står ud for 1'erne i hovedlisten. OSV

Hvis jeg laver et normalt Lopslag får jeg selvfølelig den samme første adresse med det aktuelle nummer ud for igen og igen, og det er ikke godt.

Jeg vil helst undgå at bruge en tung makroløsning, med mange sorteringer og kopieringer ud til forskellige ark.

Hvis du har en god løsning med en formel, som henter og udelukker adressen når den er hentet en gang, er der 120 point til dig.

På forhånd tak!
Morten
Avatar billede nyhavn18 Mester
15. maj 2009 - 13:37 #1
En lille tillægsinformation:

Nu kan jeg få den første adresse og den sidste adresse ved at ændre i "lig_med"-værdien i Lopslaget ( henhv. 0 og 1), hvordan får jeg fat i de mellemliggende værdier.?

Morten
Avatar billede hellstern Nybegynder
15. maj 2009 - 14:13 #2
Hej Morten,
Jeg ved godt at du skrev at du ikke ville have en makro løsning,
men jeg ville nu bruge en sådan hvis jeg var dig. Så her får du den - bruge den hvis du vil

Sub mcrAdresse()
    'Variable
    Dim varArkNavn As String
    Dim varData As String
    Dim varStartArk As String
   
    'Start Ark/Celle
    varStartArk = ActiveSheet.Name
    Range("A2").Select
    varArkNavn = ActiveCell.Value
    Sheets.Add After:=Sheets(Sheets.Count)
    Sheets(Sheets.Count).Name = varArkNavn 'Opret første nye ark
    Sheets(varStartArk).Select
   
    'Gennemløb og flytning af data
    Do Until ActiveCell.Value = ""
        If ActiveCell.Value = varArkNavn Then
            'Flyt data
            varData = ActiveCell.Offset(0, 1).Value
            Sheets(varArkNavn).Select
            Range("A1").Select
           
            With Range("A1").CurrentRegion
                n = .Rows(.Rows.Count).Row
            End With
           
            Range("A" & n + 1).Select
            ActiveCell.Value = varData
        Else
            varData = ActiveCell.Offset(0, 1).Value
           
            'Opret ark
            varArkNavn = ActiveCell.Value
            Sheets.Add After:=Sheets(Sheets.Count)
            Sheets(Sheets.Count).Name = varArkNavn
           
            'Flyt data
            Sheets(varArkNavn).Select
            Range("A1").Select
           
            With Range("A1").CurrentRegion
                n = .Rows(.Rows.Count).Row
            End With
           
            Range("A" & n + 1).Select
            ActiveCell.Value = varData
        End If
       
        Sheets(varStartArk).Select
        ActiveCell.Offset(1, 0).Select 'Gå en celle ned
    Loop
End Sub

Hilsen
Tue Hellstern
www.F1-support.dk
Avatar billede nyhavn18 Mester
15. maj 2009 - 14:51 #3
Hej Tue


Tak for dit arbejde

Jeg holder fast i min "anti-makro" tilgang lidt endnu, men hvis jeg hiver dit svar op af posen og får det til at funke så er pointene dine.

PS Arkene som dataene skal sættes ind i er oprettede i forvejen og fyldt med andre oplysninger så jeg skal have puttet mine adresser ind i nogle særlige felter.

Vender tilbage senere

Morten
Avatar billede hellstern Nybegynder
15. maj 2009 - 15:18 #4
Hej Morten,
Det gør du bare :-)
Hvis  du vælger at bruge min makro løsning, så skal den rettes lidt til, da den opretter arkene!

God weekend
Tue
Avatar billede excelent Ekspert
15. maj 2009 - 18:54 #5
Under forudsætning at numre er i kolonne A og adresser i kolonner B i Ark1 - ret til aktuelle forhold.
Formlerne er matrix-formler (afslut med CTRL+SHIFT+ENTER)

henter adresser med nr 1
=HVIS(TÆL.HVIS(Ark1!$A$1:$A$1000;1)>=RÆKKE(1:1)-1;INDEKS(Ark1!$B$1:$B$1000;MINDSTE(HVIS(Ark1!$A$1:$A$1000=1;RÆKKE($A$1:$A$1000));RÆKKE(1:1)));"")
henter adresser med nr 2
=HVIS(TÆL.HVIS(Ark1!$A$1:$A$1000;1)>=RÆKKE(1:1)-1;INDEKS(Ark1!$B$1:$B$1000;MINDSTE(HVIS(Ark1!$A$1:$A$1000=2;RÆKKE($A$1:$A$1000));RÆKKE(1:1)));"")
Avatar billede jens48 Ekspert
16. maj 2009 - 00:59 #6
Hej Exelent,
Jeg prøvede lige din formel af og kunne kun få den til at skrive den første adresse i alle linierne.
Det virkede med nedenstående formel for 1'erne:
=IF(ROW()>MATCH(2;Sheet1!A:A)-MATCH(1;Sheet1!A:A);"";INDIRECT("sheet1!b"&ROW()+MATCH(1;Sheet1!A:A)))
og for 2'erne
=IF(ROW()>MATCH(3;Sheet1!A:A)-MATCH(2;Sheet1!A:A);"";INDIRECT("sheet1!b"&ROW()+MATCH(2;Sheet1!A:A)))
Den danske version ser sådan ud for 1'erne:
=hvis(række()>sammenlign(2;ark1!A:A)-sammenlign(1;ark1!A:A);""Indirekte("ark1!b"&række()+sammenlign(1;ark1!A:A))
Formelen skal kopieres så langs ned at man er sikker på at få alle 1'ere hhv. 2'ere etc. med. Den virker kun hvis der startes i række 1
Avatar billede nyhavn18 Mester
16. maj 2009 - 21:40 #7
Hej Jens48 og excellent

Jeg er på sagen og da jeg er lidt tidspresset er jeg nød til at stole på jens48 og kaste mig direkte over hans løsningsforslag.

Så indtil videre tak.

Vender tilbage snarest når jeg har fået det testet

Morten
Avatar billede nyhavn18 Mester
18. maj 2009 - 20:20 #8
Jeg skiftede lidt mening og synes at ret skal være ret!
Så jeg testede Excellent's forslag først og det virker til UG!.

Det endte med at se sådan ud, efter jeg havde rettet lidt kolonner:
=HVIS(TÆL.HVIS(Ark3!$E$1:$E$1000;O$1)>=RÆKKE(1:1)-1;INDEKS(Ark3!$J$1:$J$1000;MINDSTE(HVIS(Ark3!$E$1:$E$1000=O$1;RÆKKE($E$1:$E$1000));RÆKKE(1:1)));"")

Så Excellent smid et svar og jeg kaster pointene til dig.

PS er der en måde man kan få den til at lade være med at skrive #NUM efter den sidste genkendte post?

Morten
Avatar billede excelent Ekspert
18. maj 2009 - 21:25 #9
ja ret -1 til -0 som her

=HVIS(TÆL.HVIS(Ark3!$E$1:$E$1000;O$1)>=RÆKKE(1:1)-0;INDEKS(Ark3!$J$1:$J$1000;MINDSTE(HVIS(Ark3!$E$1:$E$1000=O$1;RÆKKE($E$1:$E$1000));RÆKKE(1:1)));"")
Avatar billede nyhavn18 Mester
18. maj 2009 - 21:39 #10
Mange tak for hjælpen!!

Morten
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester