Реструктуризация данных электронной таблицы Excel - PullRequest
0 голосов
/ 09 февраля 2020

У меня есть таблица Excel с данными о членстве, которая включает дату начала покрытия каждого участника и дату окончания покрытия (если применимо) среди многих других полей данных. Я пытаюсь реструктурировать данные так, чтобы каждый месяц, когда охват участника был эффективным, представлен одной строкой. Например, если у члена есть начальная дата покрытия 01.01.2009 и конечная дата покрытия 31.12.2009, информация об участнике будет отображаться 12 раз. Если у участника нет указанной даты окончания покрытия, то число строк, перечисленных для этого участника, будет основано на количестве месяцев между датой начала покрытия и датой, определенной пользователем.

Чтобы еще больше усложнить проблему, в данных имеются случаи, когда элемент отображается более одного раза из-за изменений в различных параметрах покрытия, поэтому общее количество строк для конкретного элемента должно будет представлять все месяцы в какой их охват действовал.

Любые идеи / предложения относительно того, как выполнить sh все это?

1 Ответ

0 голосов
/ 09 февраля 2020

Ответ зависит от ваших потребностей двигаться вперед. Изменение данных в ежемесячный формат и их обслуживание таким образом отличается от продолжения сохранения исходных данных, а также необходимости преобразования их в этот новый формат. Обдумайте это внимательно, когда решите, как это сделать. Вы можете усложнить себе движение вперед.

Для того, чтобы преобразовать данные, которые у вас есть в данный момент (я предполагаю, что это одна строка на члена), в данные, которые вы хотите (одна строка в месяц на участника) I напишет сценарий VBA, который будет l oop по всему первому листу и сделает шаги, чтобы получить его в формате, который я хочу. Если вы не VBA saavy, вы можете сделать это с помощью фильтров. Шаги для ручной фильтрации будут следующими:

  • Найдите самый ранний месяц, который у вас есть (скажем, для этого примера, это январь 2000 года), и отфильтруйте данные только за этот месяц.
  • Скопируйте отфильтрованные строки только на новый лист. Это ваши данные за январь 2000 года.
  • На данный момент вы можете либо изменить только что скопированные строки, чтобы они указывали на январь 2000 года, либо назвать страницу январем 2000 года, и хранить каждый месяц на отдельной странице.
  • Сделайте то же самое для следующего месяца. Продолжайте до тех пор, пока все данные не будут отсортированы по месяцам.

На этом этапе вы можете изменять и рекомбинировать данные или оставлять их на отдельных листах.

Для решения VBA , Я бы go построчно просматривал исходные данные и копировал строку в каждое место в зависимости от даты начала / окончания. Если бы отдельные листы, я бы предварительно создал все нужные мне листы.

Удачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...