Відтворення записів в Excel

У мене є ряд рядків у Excel, які містять дані за певний місяць. Місяць ідентифікується колоною під назвою "Місяць", і дані в цьому стовпці містяться у форматі mm/yyyy .

Тепер я хотів би дублювати ці записи вертикально для кожного наступного 11 місяців, і кожен раз, коли він буде дублюватися, рядки місяця повинні змінюватися для цього місяця (наприклад, другий раз він повторюється, рядки місяця повинні відображатися лютий, а потім наступного разу березня тощо).

Який найкращий спосіб зробити це, крім 11 разів копіювання та вставки та зміни вручну вручну?

1
Існує декілька рішень, не пов'язаних з ручним копіюванням/вклеюванням. (1) Код, який 23 може писати, якщо у вас є бажання (2) Використання формули OFFSET на окремому аркуші з деякими маніпуляціями, щоб додати місяць до вашого стовпця дат. У вас є переваги?
додано Автор brettdj, джерело
я б скопіював 11 разів, а не писав макрос ... 11 не так вже й погано, щоб повторити (якщо це було як 300 id, то розглянемо щось інше), щоб мати справу з місячним випуском, я б окремо місяць і рік спочатку або вручну, або = year() і = month() функція перша. скажіть, заради аргументації у вас є 36 записів. тому ваші вихідні дані закінчуються в рядку 37 (припускаючи, що перший рядок є заголовком). потім у рядку38, у формули складемо як = a2 + 1, так що я отримую наступного місяця. Скопіюйте це вниз вниз, таким чином, ви отримали 36 рядків того ж числа, збільшившись на один, а потім ще 36 рядків і так далі. ви скопіюєте цю річ
додано Автор yosukesabai, джерело

2 Відповіді

Підхід OFFSET вимагає лише двох формул, скопійованих на новий аркуш, для налаштування розширеного набору даних

Цей зразок передбачає

  • ваш поточний аркуш називається sheet1
  • дані вашого місяця mm/yyyy починаються з 2-го рядка і знаходяться в колонці A

Зміна назви листа та стовпця в двох нижченаведених формулах легко, якщо ваші дані для витягування починаються з рядка 3, а не по рядку 2, то змініть всі ROW() - 2) на ROW() - 3) тощо

Хоча перший вигляд виглядає менш справжнім (додати 1 місяць), ця концепція проста. Підхід OFFSET переміщається вниз по одній комірці з листа 1 лише кожні 12 рядків, місяць котується кожною клітиною

  1. In A2 put, =DATE(YEAR(OFFSET(Sheet1!A$2,INT((ROW()-2)/12),0)),MONTH(OFFSET(Sheet1!A$2,INT((ROW()-2)/12),0))+MOD(ROW()-2,12),DAY(OFFSET(Sheet1!A$2,INT((ROW()-2)/12),0)))
  2. In B2 put, =OFFSET(Sheet1!B$2,INT((ROW()-2)/12),0) and copy over as far as you have fields

enter image description here

1
додано
Схоже, я неправильно зрозумів питання О.П. Ваші здається більш ймовірними завданнями, які потрібно зробити ....
додано Автор yosukesabai, джерело

На жаль, Excel 2007 (тільки той, який я є) розуміє mm/yyyy як дату, тому формула = TEXT (DATE (YEAR (A2), MONTH (A2) +1) 1), "mm/yyyy") створює наступну дату, і її можна скопіювати.
Копіювання інших даних буде просто справою введення значень як = B2 і так далі

0
додано