Excel - Як вирівняти загальний список?

Проблема

У мене 4 колонки. Перші дві колонки (A & B) - це список перевірок, які я видав. тоді два інших стовпці (C & D) - це список перевірок, що були звільнені від банку. це виглядає так:

 A ---------- B ---------- C ---------- D ВИДЕНО ---- Сума ---- En-cashed --- 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 

Тепер, що я хочу зробити, це вирівняти всі загальні чекові числа в стовпці А і С. який буде виглядати так:

 A ---------- B ---------- C ---------- D ---------- E ВИДЕНА ---- Сума ---- En-cashed ---- сума ----- Значення 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 

Рішення

Припущення

  • 1. Максимальна кількість рядків даних знаходиться в стовпці А
  • 2. Під час виконання макросу активний аркуш є листом з даними

 Sub AlignAndAccount () Dim lMaxRows Як довго Dim lRowBeanCounter як довгі стовпці ("A: B") Виберіть Selection.Sort _ Key1: = Range ("A2"), Order1: = xlAscending, _ Header: = xlYes, OrderCustom: = 1, _ MatchCase: = False, орієнтація: = xlTopToBottom, _ DataOption1: = xlSortNormal Стовпці ("C: D") Виберіть Selection.Sort _ Key1: = Range ("C2"), Order1: = xlAscending, _ Header: = xlYes, OrderCustom: = 1, _ MatchCase: = False, Орієнтація: = xlTopToBottom, _ DataOption1: = xlSortNormal lMaxRows = Клітинки (Rows.Count, "A"). End (xlUp) .Row Cells (1, "E") ) = "Значення" Для lRowBeanCounter = 2 Для lMaxRows Вибрати клітинки випадку (lRowBeanCounter, "A") Випадок = Клітинки (lRowBeanCounter, "C") If (Клітинки (lRowBeanCounter, "B") = Клітинки (lRowBeanCounter, "D") )) Потім клітинки (lRowBeanCounter, "E") = "ІСТИНА" Інші клітинки (lRowBeanCounter, "E") = "FALSE" Кінець, якщо випадок <Cells (lRowBeanCounter, "C") Діапазон ("C" & lRowBeanCounter & ") : D "& lRowBeanCounter) .Select Selection.Insert Shift: = Клітинки xlDown" (lRowBeanCounter, "E") = "FALSE" Діапазон випадків ("A" & lRowBeanCounter & ": B "& lRowBeanCounter) .Select Selection.Insert Shift: = xlDown lMaxRows = lMaxRows + 1 Кінець Вибрати далі lRowBeanCounter End Sub 

Примітка

Завдяки rizvisa1 за цей відгук на форумі.

Попередня Стаття Наступна Стаття

Кращі Поради