Avatar billede karina1971 Seniormester
14. februar 2019 - 14:45 Der er 8 kommentarer og
1 løsning

Opslag

Er det muligt at lave formel, således at opslag i kolonne B - Rabat/MU i ark "Hieraki" fra enten kolonne F eller G i ark "Nuv. aftale"?

Såfremt et tal er nævnt i kolonne G - Eksist. afvigelse (Nuv. aftale) er udfyldt, skal dette overføres til kolonne B i Hieraki.

Er cellen ikke udfyldt, skal tallet fra cellen i kolonne F (arket Nuv. aftale) overføres. Er dette også tomt, skal den først udfyldte celle ovenover i samme kolonne vælges.

Håber det giver mening:-)

https://drive.google.com/open?id=1QZl4KRrYBWbe8n9h5WfLM-JvXLeS-aOp
Avatar billede karina1971 Seniormester
14. februar 2019 - 14:48 #1
Der skulle stå:

Er det muligt at lave formel, således at indholdet fra cellerne enten i kolonne F eller G i ark "Nuv. aftale" overføres til kolonne B - Rabat/MU i ark "Hieraki"?
Avatar billede xl-Enthusiast Ekspert
14. februar 2019 - 15:45 #2
Avatar billede Jan Hansen Ekspert
14. februar 2019 - 16:35 #3
Hej
Jeg har lavet en brugerdefineret function som hedder:
=MyLopslag(opslagsværdi,matrix)

https://1drv.ms/x/s!AmlqgsyjsAq5hZUJLUlIDq6-yT9lAQ

Jan
Avatar billede karina1971 Seniormester
15. februar 2019 - 07:08 #4
@xl-Enthusiast Nej, for hvis cellen i kolonne F (Nuv. aftale) er tom, skal den automatisk vælge den første udfyldte celle ovenover
Avatar billede karina1971 Seniormester
15. februar 2019 - 07:10 #5
@Jan Hansen Ja, præcis, men hvordan overfører jeg din formel til mit regneark, da de to ark indgår i et større regneark?
Avatar billede Jan Hansen Ekspert
15. februar 2019 - 07:29 #6
Følgende kode lægges i et modul


Function MyLopslag(OpslagsVærdi As Range, OpslagsMatrix As Range) As Variant
    Dim rVærdi As Range
    Dim Arr() As Variant
    Dim iCount As Integer, T As Integer
    ReDim Arr(1 To OpslagsMatrix.Rows.Count, 1 To OpslagsMatrix.Columns.Count)
    Arr = OpslagsMatrix
    Set rVærdi = OpslagsVærdi
    For iCount = 1 To UBound(Arr, 1)
        If Arr(iCount, 1) = rVærdi.Value Then
            If Not Arr(iCount, 3) = "" Then
                MyLopslag = Arr(iCount, 3)
                GoTo Slut
            Else
                If Not Arr(iCount, 2) = "" Then
                    MyLopslag = Arr(iCount, 2)
                    GoTo Slut
                Else
                    For T = iCount To 1 Step -1
                        If Not Arr(T, 2) = "" Then
                            MyLopslag = Arr(T, 2)
                            GoTo Slut
                        End If
                    Next
                End If
            End If
        End If
    Next
Slut:
Erase Arr
End Function


og du vil kunde bruge funktionen som alle andre funktioner

Jan
Avatar billede karina1971 Seniormester
15. februar 2019 - 07:36 #7
Beklager, Jan - men det rækker mine Excelfærdigheder (eller mangel på samme) desværre ikke til, men tak for hjælpen under alle omstændigheder:-)
Avatar billede Jan Hansen Ekspert
15. februar 2019 - 07:45 #8
Karina det er ikke så svært

Tryk Alt+F11
Tryk Alt+I efterfulgt af Alt+M
tag en kopi af min kode og sæt den ind

nu kan du i cellen hvor du vil lave beregningen kunne skrive =MyLopslag() og tryk fx
og der vil komme en formular frem som ved andre funktioner.

Jan
Avatar billede xl-Enthusiast Ekspert
15. februar 2019 - 09:06 #9
#7
Ja, den havde jeg overset, beklager, men her er en ny udgave i fald du måtte foretrække en formelløsning.

https://www.dropbox.com/s/aai9a9idpm0gk7x/Rabatgruppe_3.xlsx?dl=0
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

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