我不确定这在 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 |
+------+------+----------+
我需要解析原始数据并将其添加到日历表中。第一个数据行将在“04/08”下的星期一添加 2。
如果年份是 0000,我需要将数字添加到正确周数的“Week Extra”中。
这可能吗?
谢谢
答案1
最好的方法是将原始表格中的日期转换为实际的 Excel 日期。从实际的 Excel 日期中,您可以提取星期几的文本、月份的文本和星期开始日期,然后可以将其转换回文本以匹配您的表格。执行此操作的公式在下面的屏幕截图中(因为它太冗长而无法输入)。
要将这些内容放入日历表中,您可以做几件事。=getpivotdata()
一种方法是使用数据透视表,您可以从中提取日历中每个单元格的值。我更喜欢使用它,=sumproduct()
因为它的开销较少。公式在下面的屏幕截图中,下面是简要说明。
=sumproduct()
可以测试一系列值中的多个条件的真/假(在本例中,测试每一行的条件),然后当该行的所有条件都为真时,对另一个范围的结果求和。这里我们测试 E2:E5 是否包含 J2 中的 DD/MM、F2:F5 是否包含 J1 中的月份文本,以及 G2:G5 是否包含 I3 中的工作日文本。如果所有条件都为真,则它会抓取并求和 C2:C5 中的值。使用此公式时需要注意的是,您测试的范围必须始终具有相同的长度。您不能测试 E2:E5 的 DD/MM 和 F2:F20 的月份。Sumproduct 将引发错误。