
Я не уверен, возможно ли это в Excel.
У меня есть лист, который выглядит так:
+---------------+-------+--------+-------+-------+-------+-------+-------+-------+
| | August | September |
+---------------+-------+--------+-------+-------+-------+-------+-------+-------+
| Week Starting | 04/08 | 11/08 | 18/08 | 25/08 | 01/09 | 08/09 | 15/09 | 22/09 |
+---------------+-------+--------+-------+-------+-------+-------+-------+-------+
| Monday | | | | | | | | |
+---------------+-------+--------+-------+-------+-------+-------+-------+-------+
| Tuesday | | | | | | | | |
+---------------+-------+--------+-------+-------+-------+-------+-------+-------+
| Wednesday | | | | | | | | |
+---------------+-------+--------+-------+-------+-------+-------+-------+-------+
| Thursday | | | | | | | | |
+---------------+-------+--------+-------+-------+-------+-------+-------+-------+
| Friday | | | | | | | | |
+---------------+-------+--------+-------+-------+-------+-------+-------+-------+
| Week Extra | | | | | | | | |
+---------------+-------+--------+-------+-------+-------+-------+-------+-------+
| Week Total | | | | | | | | |
+---------------+-------+--------+-------+-------+-------+-------+-------+-------+
(В настоящем листе указаны все месяцы.)
И необработанные данные, которые выглядят так:
+------+------+----------+
| DDMM | Year | Quantity |
+------+------+----------+
| 0408 | 2014 | 2 |
| 0708 | 2014 | 7 |
| 0509 | 2014 | 12 |
| 0508 | 0000 | 6 |
+------+------+----------+
Мне нужно проанализировать необработанные данные и добавить их в таблицу календаря. Первая строка данных добавит 2 к понедельнику под "04/08".
Если год — 0000, мне нужно добавить число к «Недельной дополнительной неделе» для правильной недели.
Это возможно?
Спасибо
решение1
Лучший способ — преобразовать даты в вашей необработанной таблице в фактические даты Excel. Из фактической даты Excel вы можете извлечь текст для дня недели, текст для месяца и начальную дату недели, которые вы можете преобразовать обратно в текст, чтобы они соответствовали вашей таблице. Формулы для этого приведены на снимке экрана ниже (потому что это слишком многословно для ввода).
Чтобы поместить их в таблицу календаря, вы можете сделать несколько вещей. Сводная таблица, из которой вы можете =getpivotdata()
извлечь значения для каждой ячейки в календаре, является одним из методов. Я предпочитаю использовать , =sumproduct()
так как это требует меньших накладных расходов. Формулы приведены на снимке экрана ниже, а затем следует краткое объяснение.
=sumproduct()
может проверить несколько условий на истинность/ложь в диапазоне значений (в данном случае, проверяя условия для каждой строки), а затем суммировать результаты другого диапазона, когда все условия истинны для строки. Здесь мы проверяем, что E2:E5 содержат DD/MM в J2, что F2:F5 содержат текст месяца в J1, и что G2:G5 содержат текст рабочего дня в I3. Если все условия истинны, то она захватывает и суммирует значение в C2:C5. Одно слово предостережения с этой формулой: ваши диапазоны, которые вы тестируете, ВСЕГДА должны быть одинаковой длины. Вы не можете проверить E2:E5 на DD/MM и F2:F20 на месяц. Sumproduct выдаст ошибку.