我有一张包含近 800 行(每位客户一行)的月度支出表,我想为每个客户制作一个带有趋势的折线图。是否有宏可以帮助我为每一行执行此操作,并将它们整齐地放在工作表上,以便我快速浏览以进行概览?
我知道这要求很多,但逐一完成是一项艰巨的任务。
答案1
怎么样迷你图? 这些是单元格内的小图表,您可以为第一行设置一个迷你图,然后简单地向下复制和粘贴。滚动浏览也会容易得多。
您甚至可以将迷你图移到新工作表,添加客户名称列并增加行高以提高可见性。或者将它们堆叠成正方形?
创建多个迷你图的快捷方法:
迷你图默认使用相对引用。也就是说,如果您在 A1 中创建第二张表,其中的迷你图引用 sheet1!A1:J1,则将迷你图复制并粘贴到 A2 将自动引用 sheet1!A2:J2。如果您复制并粘贴迷你图,它们也会自动分组。如果您更改其中一个的格式,则所有格式都会更改。您可以根据需要取消分组。您还可以在与数据相同的工作表上创建迷你图,然后剪切并粘贴到需要的位置。
动态迷你图(使用公式更改迷你图的来源)
OP 的评论“引发”了一个有趣的问题。当数据是线性/逐行的,但迷你图可能在网格中时,如何轻松地堆叠和排列迷你图。迷你图的源在对话框中是硬连线的,不接受公式。如何在不使用 VBA 的情况下以编程方式更改迷你图源?好吧,输入“相对命名范围”。迷你图源可以是命名范围,我们称之为sparkref. 将光标放在 A1 中。单击公式 > 定义名称,然后定义sparkref如=INDIRECT(A1)
在“引用至”文本框中所示(注意 A1 不是 $A$1)。现在在 E1 中创建一个新的迷你图,然后输入sparkref作为源。在 E1(与迷你图相同的单元格)中输入迷你图的数据范围,例如“Sheet3!A1:J1”作为文本(不带等号)。任何以这种方式定义的迷你图都将始终从其自身单元格中的范围(在文本中定义)获取源数据。将单元格字体大小设为 1,颜色为白色,并放置在左上角。现在您可以使用公式将逐行数据包装到 8x8 网格中="Sheet3!A" & (ROW()+(COLUMN()-1)*8) & ":J" & (ROW()+(COLUMN()-1)*8)
。