Programmets navn: Excel (2013)
Spørgsmål: Hej Forum.
Jeg forsøger at lave en HVIS-formel, som jeg er i tvivl om, hvorvidt kan lade sig gøre.
Jeg har fem navne, som kan have en tilhørende værdi fx:
De fremgår af fane 2.
På fane 1, vil jeg gerne vise alle navnene, som har en tilhørende værdi dvs. A, B og E. Jeg kan sagtens lave en alm. formel: =HVIS(B3=0;””;A3), men det vil betyde, at listen vil have huller hvor C og D skulle have været. (I andre tilfælde kan der være flere huller, hvis fx A, B, C og D ikke har en værdi). Er der mon en smart måde at løse det her på? Eller kræver det fx VBA for at opnå en dynamisk løsning, hvor listen undgår huller?
Vedhæftede filer:
Hej
Du kan prøve, de logiske funktioner OG, ELLER og IKKE.
Jeg viser her for funktionen OG, her er alle værdier SANDE så funktionen returnerer værdien af A3, havde en af værdierne været FALSK ville funktionen returnerer ingenting.
=HVIS(OG(B3=5000;B4=1000;B5=0;B6=0;B7=4500);A3;””)
Med venlig hilsen
Kaj-Emil
Hej Kaj-Emil.
Mange tak for svaret 🙂
Det virker fint, men det var ikke helt det jeg var ude efter. Måske jeg egentlig vil to ting:
1. Kun vise det tilhørende bogstav, hvis der er en tal-værdi, som ikke er 0 (eller tomt).
2. Hvis fx bogstav A, B og E vises, vil jeg gerne have de står under hinanden som en liste, og ikke med et tomt mellemrum for C og D.
1. er der nu rimelig godt styr på, det virker fint. Men 2 har jeg lidt svært ved at finde en løsning på (hvis der er en, som ikke involverer kompliceret VBA kode).
Hej igen.
Jeg fandt ud af en VBA kode, som sorterer de blivende værdier, alt efter hvad der slettes 🙂
Hej
Den funderede jeg lidt over – men så havde du allerede fundet noget kode til det!
Har du mulighed for at dele koden her, så andre læsere kan få glæde af den?
Hej
Opgaven kan også løses, ved en kombination af funktionerne HVIS og LOPSLAG og nogle hjælpeceller, jeg viser her hvordan:
Se billedet:
I A2 indsættes 0
I A3 indsættes formlen =HVIS($C3>0;$A2+1;$A2), der trækkes ned.
I C3 indsættes 1 og i C4 indsættes 2, der trækkes ned.
I F3 indsættes formlen =LOPSLAG($E3;$A$2:$C$7;2;0), der trækkes ned
I G3 indsættes formlen =LOPSLAG($E3;$A$2:$C$7;3;0), der trækkes ned.
Med venlig hilsen
Kaj-Emil
Vedhæftede filer:
Det var snedigt, Kaj-Emil!
Kolonnerne A og E kan skjules, går jeg ud fra, så man kun ser cellerne med rigtigt indhold.
Tak Henrik for de pæne ord – og jo – jeg skulle have gjort det færdigt, det kommer så her:
Kolonne A og E består af hjælpeceller og kan skjules gør følgende:
Højreklik på A og venstreklik på Skjul, gør det samme for kolonne E.
I mit tidligere svar står der:
I C3 indsættes 1 og i C4 indsættes 2, der trækkes ned. C skal naturligvis erstattes med E.
Med venlig hilsen
Kaj-Emil
God løsning, Kaj-Emil – det havde jeg ikke gennemskuet 🙂 Og væsentligt simplere end VBA.
Hvis nogen alligevel vil give sig i kast med VBA;
Kode der indsættes i det ark, hvor data fremgår som standard:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim actwks As Worksheet
Set actwks = ActiveSheet
Application.ScreenUpdating = False
If Target.Address = “$C$32” Then
Call Module2.sort
Application.ScreenUpdating = False
End If
If Target.Address = “$C$34” Then
Call Module2.sort
End If
If Target.Address = “$C$36” Then
Call Module2.sort
End If
If Target.Address = “$C$38” Then
Call Module2.sort
End If
If Target.Address = “$C$40” Then
Call Module2.sort
End If
actwks.Activate
Application.ScreenUpdating = True
Set actwks = Nothing
End Sub
Kode der indsættes i modulet:
Sub sort()
Worksheets(“Beregning*”).Activate
‘Worksheets(“Beregning”).Range(“C34:C38”).Select
Range(“C34:E38”).sort Key1:=Range(“C34”), Order1:=xlDescending, Header:=xlNo
End Sub
*Beregning er det ark, hvor data skal vises (data, som ikke indeholder 0)