Avatar billede rune_daub Nybegynder
13. september 2007 - 20:35 Der er 7 kommentarer og
1 løsning

Mulighed for at finde korresponderede tal

Forestil dig følgende data.
Kolonne A indeholder data om start af et interval.
Kolonne B indeholder data om slut af et interval.
Kolonne C indeholder 1 tal, som skal sammenlignes med intervallerne.
Kolonne D indeholder 1 tal, som skal placeres ud for det interval som kollone C's tal svarer til.

Tricket er at der kan være flere tal i kollonne C som har det samme interval, og derfor skal placeringen af kollone D værdierne kunne samles i 1 felt med et semikolon imellem.

Jeg har tænkt over om jeg kunne gøre det med et vloopup, men kan ikke få det til at fungere, fordi jeg reelt bliver nødt til at lave en monster if sætning for overhovedet at finde ud af hvor tallet i kolonne C hører til. Nogen der kender til en nemmere måde at gøre det på?

Eksempel:
Kolonne A    Kolonne B    Kolonne C    Kolonne D
1            2            3.4          112
2.1          3            1.2          95
3.1          4            2.1          86
4.1          5            2.2          72

Resultatet skulle gerne komme til at se således ud.
Kolonne A    Kolonne B    Kolonne C    Kolonne D    Kollone E
1            2            3.4          112          95
2.1          3            1.2          95          86;72
3.1          4            2.1          86          112
4.1          5            2.2          72          False

Altså placer Kolonne D tallene ud for det interval som kolonne C svarer til.

Der er max point til den der klarer det.. for jeg er kørt fuldstændigt fast.. eneste løsning jeg kan tænke på er en kæmpe IF sætning kombineret med noget vlookup og text merge.
Avatar billede kabbak Professor
13. september 2007 - 21:57 #1
Jeg må indrømme, jeg kan ikke se sammenhængen, imellem tallene, kan du forklare nærmere
Hvorfor skal  95 op efter 112 og hvorfor skal 86:72 efter 95.
Avatar billede excelent Ekspert
13. september 2007 - 22:05 #2
kabak: hvis vi fokuserer på 95 og derefter tallet til venstre 1.2
så skal vi finde den linie hvor intervallet 1.2 ligger inden for
nemlig linie 1, fordi 1.2 passer i intervallet 1 til 2
derfor skal 95 stå i linie 1
meen derfra og til den færdige løsning !!!! held og lykke :-)
Avatar billede kabbak Professor
13. september 2007 - 22:41 #3
som makro

Sub Makro1()
    Dim Res() As Variant, Data As Variant
    Dim I As Long, X As Long

    Data = Range("A1:D" & Range("A65536").End(xlUp).Row)
    ReDim Res(UBound(Data))

    For I = 1 To UBound(Data)

        For X = 1 To UBound(Data)

            If Data(X, 3) >= Data(I, 1) And Data(X, 3) <= Data(I, 2) Then

                If IsEmpty(Res(I - 1)) Then
                    Res(I - 1) = Data(X, 4)
                Else
                    Res(I - 1) = Res(I - 1) & ";" & Data(X, 4)
                End If

            End If
        Next

    Next
    For I = 0 To UBound(Res) - 1
        If IsEmpty(Res(I)) Then Res(I) = False
    Next
    Range("E1:E" & UBound(Res)) = Application.WorksheetFunction.Transpose(Res)
End Sub
Avatar billede excelent Ekspert
13. september 2007 - 22:55 #4
Eller Funktion :

Function Test(rk)
Application.Volatile
For t = 1 To 4
If Cells(t, 3) >= Cells(rk, 1) And Cells(t, 3) <= Cells(rk, 2) Then X = X & Cells(t, 4) & ";"
Next
If Right(X, 1) = ";" Then X = Left(X, Len(X) - 1)
If X = False Then X = Empty
Test = X
End Function

i arket taster du =Test(række(1:1))
Avatar billede rune_daub Nybegynder
15. september 2007 - 11:27 #5
Kabak
Du ramte lige på :) tak for hjælpen.. fuld point til dig.
Jeg fik desværre ikke excelent's forslag til at fungere.
Avatar billede excelent Ekspert
15. september 2007 - 11:41 #6
nej jeg glemte i farten at lave løkken dynamisk
som den er nu tester den kun i 4 rækker
men fint nok når du kan bruge kabaks forslag :-)
Avatar billede kabbak Professor
15. september 2007 - 11:43 #7
et svar ;-))
Avatar billede kabbak Professor
15. september 2007 - 13:03 #8
tak for point ;-))
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
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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