Excel - Az összes közös lista összehangolása?
![](http://img.brin-designs.com/img/games/518/excel-how-align-all-common-list.png)
Probléma
4 oszlopom van. az első két (A & B) oszlop a kiadott ellenőrzések listája. akkor a másik két (C & D) oszlop a csekkek listáját tartalmazza. ez így néz ki:
A ---------- B ---------- C ---------- D MEGHATÁROZOTT ---- Összeg ---- Készpénzzel --- 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
Most azt akarom tenni, hogy az A és C oszlopban az összes közös ellenőrző számot igazítsuk. És az E oszlopon hagyja, ha az összeg azonos értékű. amely így néz ki:
A ---------- B ---------- C ---------- D ---------- E KIZÁROTT ---- Összeg ---- En-cashed ---- összeg ----- Érték 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
Megoldás
Feltételezések
- 1. Az adatsorok az A oszlopban találhatók
- 2. A makró végrehajtásakor az aktív lap az adatlap
Sub AlignAndAccount () Dim lMaxRows, amint hosszú domb lRowBeanCounter mint hosszú oszlopok ("A: B"). Válasszuk a Selection.Sort _ Key1: = Range ("A2"), Order1: = xlAscending, _ Header: = xlYes, OrderCustom: = 1, _ MatchCase: = False, Orientation: = xlTopToBottom, _ DataOption1: = xlSortNormal oszlopok ("C: D"). Válasszuk a Selection.Sort _ Key1: = Range ("C2"), Order1: = xlAscending, _ Header: = xlYes, OrderCustom: = 1, _ MatchCase: = False, Orientation: = xlTopToBottom, _ DataOption1: = xlSortNormal lMaxRows = cellák (sorok.szám, "A"). Vége (xlUp). ) = "Érték" az lRowBeanCounter = 2 számára lMaxRows Válassza ki az esetcellákat (lRowBeanCounter, "A") Eset = Cells (lRowBeanCounter, "C") Ha (Cellák (lRowBeanCounter, "B") = Cellák (lRowBeanCounter, "D" )) Ezután a cellák (lRowBeanCounter, "E") = "TRUE" Else Cells (lRowBeanCounter, "E") = "FALSE" Vége Ha az eset <Cells (lRowBeanCounter, "C") tartomány ("C" & lRowBeanCounter & " : D "& lRowBeanCounter) .Select Selection.Insert Shift: = xlDown 'Cells (lRowBeanCounter, " E ") =" FALSE "Case Else Range (" A "& lRowBeanCounter &": B "& lRowBeanCounter) .Válassza ki a Selection.Insert Shiftet: = xlDown lMaxRows = lMaxRows + 1 vége Válasszon Következő lRowBeanCounter End Sub
jegyzet
Köszönet a rizvisa1-nek a fórumon található tippért.