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
Skrevet tor. d. 04. marts 2010 kl. 15:41:41| #2
? *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
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
lav et eks i excel og send det på mail
Skrevet tor. d. 04. marts 2010 kl. 21:10:32| #5
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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 :)