Excel - изменить дополнительные столбцы на строки - PullRequest
0 голосов
/ 21 ноября 2018

Я получаю файл с номерами для различных продуктов и их количество, возвращаемое каждый месяц.

Необработанные данные

Чтобы сделать данные более точнымиЯ хочу разделить это равномерно по дням.Я написал несколько формул для этого в Excel, но теперь у меня остается множество столбцов для каждого месяца.

Преобразованные данные

Вместо того же числастроки с несколькими столбцами, я хочу строку для каждой даты и комбинации продуктов с одним столбцом для возвращаемых продуктов и одним столбцом для значения возврата. Я превратил свой прогресс в Google Sheet здесь

Окончательные данные

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

1 Ответ

0 голосов
/ 21 ноября 2018

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

enter image description here

Столбцы A: D ваш начальный продукт таблицы.Столбец F - это список каждой даты, который можно создать вручную или с помощью формулы.Столбец G: =COUNTIF(A:A,F2)

Перемещение на новый лист:

enter image description here

Столбец A представляет собой список дат, повторенных X раз длякаждый продукт в этом месяце.Я начал с того, что несколько раз вручную написал «6/1/2018», затем переключился на эту формулу, которая ищет количество продуктов за определенный месяц и проверяет, повторяется ли уже столько раз.Если это так, он добавляет еще один день.В противном случае он продолжает повторяться:

=IF(COUNTIF(A$2:A6,A6)=INDEX(Sheet3!G:G,MATCH(DATE(YEAR(A6),MONTH(A6),1),Sheet3!F:F,0)),A6+1,A6)

Столбец B ищет продукт, видя, сколько раз данная дата была повторена до сих пор:

=INDIRECT("Sheet3!B"&MATCH(DATE(YEAR(A2),MONTH(A2),1),Sheet3!A:A,0)+COUNTIF(A$2:A2,A2)-1)

Столбец C - формула массива(зафиксируйте его с помощью Ctrl + Shift + Enter), который получает общее количество продуктов и делит их на количество дней в каждом месяце:

=INDEX(Sheet3!C:C,MATCH(1,INDEX((B2=Sheet3!B:B)*(DATE(YEAR(A2),MONTH(A2),1)=Sheet3!A:A),0,1),0))/DAY(EOMONTH(A2,0))

Столбец D такой же, как C, но вместо этого получает общее значение продукта:

=INDEX(Sheet3!C:C,MATCH(1,INDEX((B2=Sheet3!B:B)*(DATE(YEAR(A2),MONTH(A2),1)=Sheet3!A:A),0,1),0))/DAY(EOMONTH(A2,0))

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

Спасибо!

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