Oprettet tor. d. 04. marts 2010 kl. 13:19:36

zjat
zjat (8.901 point. Point ude: 340)

Find ved at kigge på række og kolonne

Hej Alle sammen

Jeg har et lille excel problem.

Jeg har en bestemt celle jeg gerne vil finde. Jeg ved hvilken række (5), hvor cellen befinder sig - nu vil jeg gerne vide hvilken kolonne.

=MATCH("*001";Boeger!$A$38:$IL$38;0)

Problemet er bare at der findes flere kolonner med *001 til sidst. Med den funktion finder den bare først kommende kolonne. Jeg vil gerne finde først kommende kolonne med en værdi i række 5. (gerne uden vba).

Er der nogen der kan hjælpe med dette?

Skrevet tor. d. 04. marts 2010 kl. 15:28:07| #1

excelent
excelent (94.580 point)
=MATCH("*";5:5;0)

Skrevet tor. d. 04. marts 2010 kl. 15:41:41| #2

zjat
zjat (8.901 point)
? *001 skal også være opfyldt. På den måde finde man bare først kommende celle med en værdi, uden at tage højde for at der i række 38 skal stå *001.

bøger 134  333  001  001
hej    5    7    0    1

Et forsimplet eksempel, vil gerne have excel til at finde "1"

Skrevet tor. d. 04. marts 2010 kl. 15:42:30| #3

zjat
zjat (8.901 point)
bøger 134  333  001  001
hej      5    7    0    1

prøver lige igen - så tallene står under hinanden :)

Skrevet tor. d. 04. marts 2010 kl. 15:54:28| #4

excelent
excelent (94.580 point)
lav et eks i excel og send det på mail

Skrevet tor. d. 04. marts 2010 kl. 21:10:32| #5

zjat
zjat (8.901 point)
Et eksempel på filen kan hentes her:

http://peecee.dk/ (...)

tallet markeret med gult vil jeg godt finde.

tallet markeret med grøn kender jeg inden søgning. På den måde ved jeg hvilken række jeg skal søge i. Jeg ved også at kolonnen hvor det gule tal findes i slutter på 001. Desværre er der flere tal der slutter på 001 - men der er kun en kolonne der slutter med tallet 001, hvor der er et tal i den "grønne" række.

Skrevet fre. d. 05. marts 2010 kl. 17:54:58| #6

excelent
excelent (94.580 point)
Prøv denne brugerdefineret Funktion:
Indsæt den i et almindeligt modul
I arket taster du: =xfind(A1:K1;2;"001")
A1:K1 er det område hvor du har nogle tal som ender på 001
2 er den række du vil hente værdi fra og "001" din betingelse
Er det række 5 du vil hente værdi fra, udskifter du blot 2 med 5

Function xfind(rng As Range, rk, tal)
Application.Volatile
For Each c In rng
If Right(c, 3) = tal And c.Offset(rk, 0) <> "" Then xfind = c.Offset(rk, 0): Exit Function
Next
End Function

Skrevet man. d. 08. marts 2010 kl. 09:20:59| #7

zjat
zjat (8.901 point)
Den siger at der er:

Compile error:
Variable not defined

og markerer "c" i "For each c ln rng

Og kan jeg godt sætte rækken til at være lig en celle i stedet for en bestemt række?

Skrevet man. d. 08. marts 2010 kl. 09:46:42| #8

zjat
zjat (8.901 point)
Har fundet problemet. Koden skulle være:

Function xfind(rng As Range, rk, tal)
Dim c As Variant
Application.Volatile
For Each c In rng
If Right(c, 3) = tal And c.Offset(rk, 0) <> "" Then xfind = c.Offset(rk, 0): Exit Function
Next
End Function

Nu får jeg så tallet - men ville egentlig også gerne vide hvilket *001 tal den nåede frem til. Om det var 953001 eller 338001 :)

Skrevet man. d. 08. marts 2010 kl. 09:55:21| #9

zjat
zjat (8.901 point)
Derudover tror jeg funktionen stadig ikke virker :( Den skriver i hvert fald 0 hvor den burde have undersøgt videre.

Skrevet tir. d. 09. marts 2010 kl. 18:17:35| #10

excelent
excelent (94.580 point)
Hvis du skal have begge værdier, kan du ikke umiddelbart regne videre på dem.
Vis et eks på opstilling når den fejler

denne returnerer begge værdier adskilt af #

Function yfind(rng As Range, rk, tal)
Dim c As Variant
Application.Volatile
For Each c In rng
If Right(c, 3) = tal And c.Offset(rk, 0) <> "" Then yfind = c.Offset(rk, 0) & "#" & c: Exit Function
Next
End Function

Skrevet ons. d. 10. marts 2010 kl. 12:37:14| #11

zjat
zjat (8.901 point)
Den skal bare hoppe over celler, hvor der ikke står noget eller hvor der står 0. Indtil den kommer til en kolonne hvor der er en værdi over 0 :)

Skrevet ons. d. 10. marts 2010 kl. 15:13:24| #12

excelent
excelent (94.580 point)
Function yfind(rng As Range, rk, tal)
Dim c As Variant
Application.Volatile
For Each c In rng
If Right(c, 3) = tal And c.Offset(rk, 0).Value > 0 Then yfind = c.Offset(rk, 0) & "#" & c: Exit Function
Next
End Function

Skrevet tor. d. 11. marts 2010 kl. 17:53:09| #13

excelent
excelent (94.580 point)
Denne er vist bedre:

Function yfind(rng As Range, rk, tal)
Dim c As Variant
Application.Volatile
For Each c In rng
If Right(c, 3) = tal And IsNumeric(c.Offset(rk, 0).Value) = True And c.Offset(rk, 0).Value > 0 Then yfind = c.Offset(rk, 0) & "#" & c: Exit Function
Next
End Function

Skrevet tor. d. 11. marts 2010 kl. 22:43:17| #14

zjat
zjat (8.901 point)
Det er sku dejligt du gider hjælpe :)

Den finder nu rigtige kolonne, den vælger bare at tage tallet fra næste række.

Kunne det være muligt, at funktionen bare fandt kolonne nummeret?

Skrevet fre. d. 12. marts 2010 kl. 18:02:03| #15

excelent
excelent (94.580 point)
Ja jeg fik vist lavet rk relativ i forhold til startrækken

Function yfind(rng As Range, rk, tal)
Dim c, x
Application.Volatile
For Each c In rng
x = Cells(rk, c.Column).Value
If Right(c, 3) = tal And IsNumeric(x) = True And x > 0 Then yfind = x & "#" & c.Column: Exit Function
Next
End Function

hvis du kun vil have kolonne returneret, så slet x & "#" &

Skrevet tir. d. 16. marts 2010 kl. 22:13:38| #16

zjat
zjat (8.901 point)
Jeg vil prøve den en af de næste par dage...glæder mig til at se resultatet :)

Skrevet tor. d. 18. marts 2010 kl. 16:01:53| #17

zjat
zjat (8.901 point)
Hej Excelent

Nu siger den at den ikke kan finde navnet "yfind" ? Burde det ikke bare være copy paste ind i excel arket?

Skrevet ons. d. 24. marts 2010 kl. 12:02:33| #18

zjat
zjat (8.901 point)
Ups... var kommet til at sætte det udenfor et modul ... men kan ikke få kolonne visningen til at virke når jeg slette det du skrev

Skrevet ons. d. 24. marts 2010 kl. 12:41:14| #19

zjat
zjat (8.901 point)
Jeg tror jeg fandt en anden løsning ved at sætte minus 1 ind i den formel jeg fik til at virke... Tak for hjælpen du får point :)

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

Farve område i excel diagram ( mellem 2 (eller flere)...

Oprettet den 4. februar 2012 kl. 09.16
endurancel giver 60 point for svar | Giv et svar »

søg i tekst - VBA

Oprettet den 4. februar 2012 kl. 00.44
Mathias- giver 15 point for svar | Giv et svar »

Hvordan beregnes antallet af rentetilskrivninger? (lav...

Oprettet den 3. februar 2012 kl. 15.25
haastrup giver 200 point for svar | Giv et svar »

Seneste guides

Den gode bruger
Adgang til NAS-server via WAN
Kollektion af Batch tutorials (FJERNET)
Tilpas din YouTube afspiller


   




Tips & Tricks fra PC World

Teaser billede

Sådan fjerner du pladskrævende metadata fra dine fotos

Det er langt fra altid, at dine billeders metadata såsom kameramodel og geografisk placering er vigtige at bevare. JPG & PNG Stripper kan luge ud i billedfilerne, så de fylder meget mindre....


Anmeldelser fra PC World

Teaser billede

Test: Superlet bærbar med mange muligheder

Toshiba har med Satellite Z830 skabt en af verdens letteste ultrabooks. Den vejer 1,1 kilo, og computeren på 13 tommer ser på papiret ud til at være en oplagt rejsekammerat. Men den lave vægt har...


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

Samsung Galaxy S III på vej

Samsungs bedst sælgende smartphone nogensinde får en efterfølger om kort tid.


Nyheder fra Computerworld

Teaser billede

Apple retter hele 51 sikkerhedshuller i Mac OS X

Apple lukker hele 51 sårbarheder i Mac OS X, hvoraf de fleste er kritiske. Se her, hvor hullerne er.


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