我尝试搜索但找不到任何与我的问题有关的内容。我是一个优秀的新手。
我在宿舍消费必需品,每周更新一次。这是表 -
Essentials Day 1 Day 2 Day 3 Day 4 Day 5 Avg
Soap 10 9 8 - 2 7.25
Toothpaste 3 2 4 - 1 2.5
Bread 8 7 6 7 3 6.2
Butter 5 4 5 6 2 4.4
从这张表中我每周手动将平均值复制到一张单独的表格中。这个表看起来像 -
Essentials Week 1 Week 2 Week 3 Week 4 Week 5 Week 6
Soap 7.25 7 7.75 8 6 2
Toothpaste 2.5 2 2.75 3 2 1
Bread 6.2 6 6.5 7 6 1
Butter 4.4 4 4.6 6 4 1
我每周绘制平均值的图表。
我的问题:这种活动似乎是一个常见问题,Excel必须拥有一些工具和技术来自动完成此过程。我希望在我更新第一个表后,之前的平均值会自动转到表2并且图表会更新。可能吗?我是否忽视了一些显而易见的事情,或者这样做的方法有点棘手?
如果有人能指出我正确的方向,那将是非常有帮助的。任何指向教程/视频的链接也会有所帮助。
答案 0 :(得分:1)
转置您的数据,并为周数插入一列:
Week Day Soap Toothpaste Bread Butter
1 1 10 3 8 5
1 2 9 2 7 4
1 3 8 4 6 5
1 4 0 0 7 6
1 5 2 1 3 2
2 1 12 2 6 3
2 2 6 1 5 2
2 3 4 1 5 3
2 4 5 3 6 5
2 5 5 0 8 1
将其转换为表格(选择范围,然后单击功能区中的“插入表格”)。
从此数据创建数据透视表(选择表格,然后单击功能区中的“插入数据透视表”)。数据透视表可以转到不同的工作表上。
将Soap,Toothpaste,Bread和Butter字段放入数据透视表的数据/值区域,并将每个字段从Sum更改为Average(右键单击每个字段并单击Value Field Settings)。然后将“列”区域中显示的“值”字段移动到数据透视表的“行”区域,并将“周”字段放入“列”区域。最后将数据透视表转换为表格视图。
数据透视表将如下所示:
Week
Values 1 2
Average of Soap 5.8 6.4
Average of Toothpaste 2 1.4
Average of Bread 6.2 6
Average of Butter 4.4 2.8
每周添加数据后,请刷新数据透视表,并追加下周的平均值。
答案 1 :(得分:0)
Sub copyVals()
Dim weekNbr As Long
weekNbr = Sheets("Sheet1").Range("A1").Value
Sheets("Sheet1").Range("D2:D6").Copy
Sheets("Sheet1").Range("G2:G6").Offset(0, weekNbr - 1).PasteSpecial xlPasteValuesAndNumberFormats
Application.CutCopyMode = False
End Sub

除非您希望每周保留一个表,否则您可能需要一个简单的宏来进一步自动化该过程。如果每周覆盖第一个表,表2中的值也将被覆盖。我在这里编写了一个示例宏,可以帮助您入门。
首先,当您更新表1时,您应该有一个指示符单元格,显示该表所代表的周数。
然后您可以将其映射到按钮或只是手动运行。
希望这有帮助!