Gå til innhold

Excel. Finne like verdier i 2 poster.


kjaa

Anbefalte innlegg

Hei.

 

Jeg har en post A og B hvor det registreres postnummer i tekstformat. Det er normalt 4 siffre, men det hender at det er fler.

 

Problem:

Jeg skal finne og fjerne de postene hvor de 2 første tallene i post A er lik de 2 første tallene i post B, men bare hvis det er 4 tall i postene.

 

A B

0668 0668 Fjernes

1400 1440 Fjernes

1520 1600

1210 1200 Fjernes

2920 3240

8530 8530E Skal ikke fjernes

 

Takker for alle forslag til løsning.

Lenke til kommentar
Videoannonse
Annonse

Står tilhørende poster på samme rad? Eller kan du ha

 

0668 0368

1400 1440 Fjernes

1520 0608 match med rad 1 ?

 

Hei. De som skal fjernes står på samme rad.

I tillegg ønsker jeg å fjerne alle oslo postnr som er på rad, fra 0000 til 1299.

Eks: 0101 - 1299 fjernes.

Lenke til kommentar

Altså hvis det står noe lavere enn 1300 i A? Eller i B? Eller bare i både A og B?

 

Vil du ha en formel som merker raden "Fjernes" i C, eller vil du ha en makro som faktisk fjerner greiene?

 

Mener ikke å være byråkratisk, dette er veldig enkelt. Men jeg trenger mer info for å gi deg noe brukbart. Hva skal det brukes til og når er også kjekt å vite.

 

Beste hilsen Harald

Lenke til kommentar

Altså hvis det står noe lavere enn 1300 i A? Eller i B? Eller bare i både A og B?

 

Vil du ha en formel som merker raden "Fjernes" i C, eller vil du ha en makro som faktisk fjerner greiene?

 

Mener ikke å være byråkratisk, dette er veldig enkelt. Men jeg trenger mer info for å gi deg noe brukbart. Hva skal det brukes til og når er også kjekt å vite.

 

Beste hilsen Harald

 

Hei.

 

Hvis det står 1300 i A og 1300 i B , skal posten fjernes. Det samme om det står 1300 i A og 1350 i B fordi de 2 første tegn i A og B er like. Når det gjelder Oslo nr skal alle fjernes eks 0102 i A og 1250 i B fjernes. Vi bruker oslo nr fra 0000 til 1299.

 

Formel eller makro? Ja takk begge deler om mulig så får jeg prøve ut det som passer best.

Jeg gjør dette manuelt på jobben hver dag og det er tidkrevende i de tillfeller som det er mange hundre rader.

 

Sender deg en excel fil. Hm får ikke lastet opp???

 

Takk for all hjelp så langt.

Lenke til kommentar

Du svarte ikke på spørsmålet mitt:

Hva med de gangene det står 1150 i A og 1850 i B?

Hva med de gangene det står 1560 i A og 0830 i B?

 

Edit: Jo unnskyld, det gjorde du i vedlagte eksempel. Her er en makro som gjør jobben for deg:

 

 

 

Sub Kill()

 

Dim R As Long

 

Dim L1 As Long, L2 As Long

 

Dim S1 As String, S2 As String

 

Dim KillThis As Boolean

 

Application.ScreenUpdating = False

 

With ActiveSheet

 

For R = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1

 

KillThis = False

 

L1 = Val(.Cells(R, 1).Value)

 

L2 = Val(.Cells(R, 2).Value)

 

S1 = Trim(.Cells(R, 1).Text)

 

S2 = Trim(.Cells(R, 2).Text)

 

If L1 * L2 > 0 Then

 

If L1 < 1300 And L2 < 1300 Then KillThis = True

 

If L1 \ 100 = L2 \ 100 Then KillThis = True

 

If Len(S1) > 4 Or Len(S2) > 4 Then KillThis = False

 

If KillThis = True Then .Rows( R ).Delete

 

End If

 

Next

 

End With

 

Application.ScreenUpdating = True

 

End Sub

 

 

 

Den sletter fra 0001 til 1299, men ikke 0000.

 

Er Excel'en din på engelsk eller norsk?

 

Harald

Endret av Harald Staff
Lenke til kommentar

Du svarte ikke på spørsmålet mitt:

Hva med de gangene det står 1150 i A og 1850 i B?

Hva med de gangene det står 1560 i A og 0830 i B?

 

Er Excel'en din på engelsk eller norsk?

 

Harald

 

Hei.

Mener jeg svarte på det.

 

1150 i A og 1850 i B skal ikke fjernes.

1560 i A og 0830 i B skal ikke fjernes.

 

Bruker norsk 2007.

 

Kjetil

Lenke til kommentar

Sorry, en feilkilde til eliminert, bruk denne:

 

Sub Kill()

 

Dim R As Long

 

Dim L1 As Long, L2 As Long

 

Dim S1 As String, S2 As String

 

Dim KillThis As Boolean

 

Application.ScreenUpdating = False

 

With ActiveSheet

 

For R = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1

 

KillThis = False

 

L1 = Val(.Cells(R, 1).Value)

 

L2 = Val(.Cells(R, 2).Value)

 

S1 = Trim(.Cells(R, 1).Text)

 

S2 = Trim(.Cells(R, 2).Text)

 

If L1 * L2 > 0 Then

 

If L1 < 1300 And L2 < 1300 Then KillThis = True

 

If L1 \ 100 = L2 \ 100 And Abs(L1 - L2) < 100 Then KillThis = True

 

If Len(S1) > 4 Or Len(S2) > 4 Then KillThis = False

 

If KillThis = True Then .Rows®.Delete

 

End If

 

Next

 

End With

 

Application.ScreenUpdating = True

 

End Sub

Lenke til kommentar

Sorry, en feilkilde til eliminert, bruk denne:

 

Sub Kill()

 

Dim R As Long

 

Dim L1 As Long, L2 As Long

 

Dim S1 As String, S2 As String

 

Dim KillThis As Boolean

 

Application.ScreenUpdating = False

 

With ActiveSheet

 

For R = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1

 

KillThis = False

 

L1 = Val(.Cells(R, 1).Value)

 

L2 = Val(.Cells(R, 2).Value)

 

S1 = Trim(.Cells(R, 1).Text)

 

S2 = Trim(.Cells(R, 2).Text)

 

If L1 * L2 > 0 Then

 

If L1 < 1300 And L2 < 1300 Then KillThis = True

 

If L1 \ 100 = L2 \ 100 And Abs(L1 - L2) < 100 Then KillThis = True

 

If Len(S1) > 4 Or Len(S2) > 4 Then KillThis = False

 

If KillThis = True Then .Rows®.Delete

 

End If

 

Next

 

End With

 

Application.ScreenUpdating = True

 

End Sub

 

Jeg trenger litt mer hjelp(stresser) L1, L2- S1,S2 R variablene. Ser ikke hvor de refererer til. Postnr og routing er i tekstformat. Det må de være siden de ofte har siffer som begynner med 0?) Hvis jeg navngir kollone A til postnr og kollone B til Routing. Skal disse erstatte L1 og L2?

 

Kjetil

Lenke til kommentar

Nå er jeg usikker på hva du holder på med. Makroen funker, bare sett den inn i en Excelmodul og kjør den.

 

Når jeg kjører den får jeg denne feilmeldinga: Object doesn't support this property or method.

Lenke til kommentar

Det skjer noe skit med formatteringen her, det er umulig å poste kode på forumet for tiden. Tipper det er denne linja:

 

.Rows®.Delete

 

den skal være, og var siste jeg prøvde

 

.Rows( R ).Delete

 

altså .Rows parentes R sluttparentes .Delete

 

Det stemmer. Virker helt perfekt. Takker og bukker.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...