Excel - Sådan justeres al almindelig liste?

Problem

Jeg har 4 kolonner. De første to (A & B) søjler er en liste over checks, jeg har udstedt. så er de to andre (C & D) kolonner en liste over checks indesluttet fra Bank. der ser sådan ud:

 A ---------- B ---------- C ---------- D ISSUED ---- Beløb ---- En indbetalt --- -antal 001 ------ 112, 00 ------ 001 ------ 112, 00 002 ------ 200, 25 ------ 003 ------ 350, 00 003 --- --- 350, 00 ------ 004 ------ 512, 00 004 ------ 512, 05 ------ 005 ------ 200, 10 005 ------ 200, 05 - ---- 007 ------ 821.30 006 ------ 300.25 ------ 009 ------ 100.10 007 ------ 821.30 ------ 010 - ----- 500, 00 008 ------ 254, 23 009 ------ 100, 00 010 ------ 500, 00 

Nu, hvad jeg vil gøre, er at justere alle almindelige kontrolnumre i kolonne A og C. Og lade mig vide om kolonne E, hvis mængden har samme værdi. som vil se sådan ud:

 A ---------- B ---------- C ---------- D ---------- E ISSUED ---- Beløb ---- En-indbetalt ---- Beløb ----- Værdi 001 ------ 112, 00 ------ 001 ------ 112, 00 ----- TRUE 002 - ---- 200, 25 003 ------ 350, 00 ------ 003 ------ 350, 00 ----- TRUE 004 ------ 512, 05 ------ 004 - ---- 512, 00 ----- FALSE 005 ------ 200.05 ------ 005 ------ 200.10 ----- FALSE 006 ------ 300.25 007 - ---- 821.30 ------ 007 ------ 821.30 ----- TRUE 008 ------ 254.23 009 ------ 100.00 ------ 009 - ---- 100.80 ----- FALSE 010 ------ 500, 00 ------ 010 ------ 500, 00 ----- TRUE 

Opløsning

Forudsætninger

  • 1. De maksimale rækker af data findes i kolonne A
  • 2. På det tidspunkt, hvor makro udføres, er det aktive ark arket med data

 Sub AlignAndAccount () Dim lMaxRows Så Long Dim lRowBeanCounter som lange kolonner ("A: B"). Vælg Selection.Sort _ Key1: = Range ("A2"), Order1: = xlAscending, _ Overskrift: = xlYes, OrderCustom: = 1, _ MatchCase: = False, Orientering: = xlTopToBottom, _ DataOption1: = xlSortNormal Columns ("C: D"). Vælg Selection.Sort _ Key1: = Range ("C2"), Order1: = xlAscending, _ Header: = xlYes, OrderCustom: = 1, _ MatchCase: = False, Orientering: = xlTopToBottom, _ DataOption1: = xlSortNormal lMaxRows = Celler (Rows.Count, "A"). End (xlUp) .Rowceller (1, "E" ) = "Værdi" For lRowBeanCounter = 2 Til lMaxRows Vælg Case Celler (lRowBeanCounter, "A") Case = Cells (lRowBeanCounter, "C") Hvis (Celler (lRowBeanCounter, "B") = Celler (lRowBeanCounter, "D" )) Celler (lRowBeanCounter, "E") = "TRUE" Else Cells (lRowBeanCounter, "E") = "FALSE" : D "& lRowBeanCounter) .Vælg Selection.Insert Shift: = xlDown 'Celler (lRowBeanCounter, " E ") =" FALSK "Case Else Range (" A "& lRowBeanCounter &": B "& lRowBeanCounter) .Vælg Selection.Insert Shift: = xlDown lMaxRows = lMaxRows + 1 End Vælg Næste lRowBeanCounter End Sub 

Bemærk

Takket være rizvisa1 for dette tip på forummet.

Forrige Artikel Næste Artikel

Top Tips