Переставити списки рядків в одному місці на основі хронологічного порядку дат у цих рядках


0

У мене є чотири курси, які я хочу планувати цей термін. Я перерахував кожні дані тестів і завдань у окремих таблицях у excel, як зазначено нижче:

https://i.stack.imgur.com/DZz8Wl.png

Я хочу вирішити проблему компіляції та переупорядкування рядків цих таблиць на основі хронологічного порядку їх дат у різних і єдиних місцях:

https://i.stack.imgur.com/CXE4Ul.png

Чи є найефективнішим методом для цього, використовуючи Формули, Умовне форматування або щось інше?


Скопіюйте всі дані (у поточному порядку) до нового місця розташування. Потім виділіть всі дані та відсортуйте їх за стовпцями дати у порядку зростання. У меню Дані виберіть пункт Сортувати ... та вкажіть стовпець і порядок сортування.
Bandersnatch

Відповіді:


0

Після розгляду діапазонів даних для різних курсів і остаточного випуску, я можу запропонувати вам зробити наступне.

  1. Зберіть всі 4 частини в одному діапазоні даних за допомогою функції Copy & amp; Вставити або код VBA.
  2. Сортувати весь діапазон на дату у порядку зростання.
  3. Нарешті застосуємо умовне форматування.

Ви можете скористатися цим простим кодом VBA для копіювання & amp; Вставити дані разом з Cell Formats заощадить ваш час, і ви можете пропустити формат.

Sub CommandButton1_Click()

Dim CopyRng As Range, PasteRng As Range

Title = "Copy & Paste"

Set CopyRng = Application.Selection

  Set CopyRng = Application.InputBox("Ranges to Copy :", Title, CopyRng.Address, Type:=8)
    Set PasteRng = Application.InputBox("Range to Paste, select Single cell):", Title, Type:=8)

       CopyRng.Copy

         PasteRng.Parent.Activate

           PasteRng.PasteSpecial xlPasteValuesAndNumberFormats

            PasteRng.PasteSpecial xlPasteFormats

         Application.CutCopyMode = False

End Sub

Цей код VBA можна використовувати для сортування на стовпці Дата.

Sub CommandButton2_Click()

Dim SortRange As Range, keyRange As Range

  Set SortRange = Application.InputBox("Sort Range", SortRange.Address,Type:=8)

  Set keyRange = Application.InputBox("Key Range", keyRange.Address,Type:=8) 

SortRange.Sort Key1:=keyRange, Order1:=xlAscending

End Sub

NB: Сподіваюся, що це допоможе вам. Якщо моє рішення відрізняється від вашої ідеї, просто напишіть коментар.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.