Avatar billede patrickpetersen Nybegynder
03. maj 2013 - 03:46 Der er 4 kommentarer

Overskrive tekst i kolonne hvis der den findes som dublet i en anden kolonne

Hej eksperter!
Jeg håber I kan hjælpe mig.
Jeg sidder med er regneark, hvor der, kogt ned, er to kolonner:
Kolonne A, som indeholder en adresse og Kolonne B, som indeholder en status.

Arket er bygget sådan op, at man kan se en udvikling i statussen, hvilket betyder at der godt kan være en adresse med to modstridende oplysninger, for eksempel Klar, ikke mulig og ukendt.

Det jeg gerne vil have er, at excel går ind og finder alle adresser der optræder mere end én gang, for herefter at gøre følgende:

Adresser som har ikke mulig eller ukendt, men også klar skal overskrive de tidligere på adressen til klar

Men adresser hvor der fx er ukendt og ikke mulig, skal den bare lade være som de er.

Hvordan pokker gør man det, jeg er begyndt at få grå hår af det!

Håber der en en venlig sjæl derude :)
Avatar billede finb Ekspert
03. maj 2013 - 08:36 #1
Forslag:

A2 og ned: Alle adresser UDEN dubletter
B1: "Ikke mulig"
C1: "Ukendt"
D1: "Klar"

Eksempel:
I A5 står der Tulipanvej,
i B5 står der dato for status "ikke mulig"
i C5 står der dato for status "Ukendt"
i D5 står der dato for status "Klar"
Avatar billede store-morten Ekspert
03. maj 2013 - 12:59 #2
Prøv denne makro, på en Kopi.

En kørt makro, kan ikke fortrydes ;-(
(Med mindre, der vælges: Luk, uden at gemme)

Sub Ret_Til_Klar()
Dim x As Range

Application.ScreenUpdating = False

    Columns("C:C").Select
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("C2").Select
        ActiveCell.FormulaR1C1 = _
        "=IF(COUNTIFS(C[-2],RC[-2],C[-1],""Klar"")>0,""Klar"",IF(RC[-1]="""","""",RC[-1]))"
       
Range("C2").Select
Set x = Range(Selection.Offset(0, -2), Selection.Offset(0, -2).End(xlDown))
Selection.AutoFill Destination:=x.Offset(0, 2)
     
Range(Selection.Offset(0, 0), Selection.Offset(0, 0).End(xlDown)).Copy
   
Range(Selection.Offset(0, -1), Selection.Offset(0, -1).End(xlDown)).PasteSpecial _
Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
       
    Columns("C:C").Select
    Application.CutCopyMode = False
    Selection.Delete Shift:=xlToLeft
   
Range("B2").Select
Application.ScreenUpdating = True
End Sub
Avatar billede finb Ekspert
05. maj 2013 - 22:46 #3
ad 1

Du kan lave betinget formattering på datoen,
så nyeste dato er grøn, mellemste gul, ældste er rød.

i B5 står der dato for status "ikke mulig"
i C5 står der dato for status "Ukendt"
i D5 står der dato for status "Klar"
Avatar billede patrickpetersen Nybegynder
13. maj 2013 - 11:02 #4
@Finb:
Ikke helt forstået :[

@Store-Morten:
Jeg har prøvet ved en lille test fil med 20 linjer og her virker den perfekt. Min database er midlertidig 350.000 linjer og jeg har prøvet at lade pc'en stå i et par timer, men langt de fleste gange er den crashed. Er der en mindre tung løsning? (Som sagt, virker den ganske perfekt.. men crasher når jeg når over 1000 linjer :[ )
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



Seneste spørgsmål Seneste aktivitet
I går 20:46 opkaldside Af hagbartm i Mobiltelefoner
I går 16:05 win 10 vil ikke boote Af bb69 i Windows
I går 11:20 Lenovo x390 Af tobberjas i PC
I går 10:14 Alder i Excel Af Nanarsi i Excel
I går 09:00 Flere linier på faneblad Af Peder Lund Nielsen i Excel