需借助数据透视表、页面字段与控件组合实现:先规范数据源并启用自动筛选;再插入列表框绑定字段列;接着创建含页面字段的数据透视表;然后基于透视表区域插入图表;最后确保图表引用透视表地址以实现实时更新。

如果您在 LibreOffice Calc 中创建了交互式图表,但希望用户能通过搜索框动态筛选数据并实时更新图表显示,则需要借助数据透视表、筛选器与控件组合实现。以下是实现此功能的步骤:
一、准备可筛选的数据源
交互式图表依赖于结构清晰、字段明确的原始数据表。确保数据区域无空行空列,且每列均有唯一且规范的标题(如“产品名称”“销售额”“地区”),以便后续筛选和绑定控件。数据应位于单独的工作表中,并建议将其转换为 Calc 的“自动筛选”区域或定义为“命名区域”,便于控件引用。
1、选中数据区域(含标题行)。
2、点击菜单栏【数据】→【筛选】→【自动筛选】。
3、右键工作表标签 →【重命名】,将该表命名为“数据源”。
二、插入列表框控件并绑定数据列
使用“列表框”控件可模拟搜索框效果,允许用户从下拉选项中选择某一字段值(如“产品名称”),从而触发筛选。该控件需通过宏或内置筛选联动实现响应,此处采用无需宏的静态筛选联动方式——结合“数据透视表”与“页面字段”实现。
1、点击菜单栏【视图】→【工具栏】→【表单控件】,启用控件工具栏。
2、点击【列表框】图标,在空白单元格区域(如Sheet2的A1位置)绘制一个列表框。
3、右键该列表框 →【控件属性】→ 在【数据】选项卡中设置:输入列表:=数据源.$A$2:$A$100(假设产品名称在数据源表A列,共99条记录)。
4、在【通用】选项卡中设置:名称:lstProduct,便于识别。
三、构建带页面字段的数据透视表
数据透视表支持“页面字段”,可将某字段设为筛选器,其值变化时自动刷新透视结果,进而驱动关联图表更新。这是实现“搜索即过滤”的核心机制,不依赖宏且完全交互。
1、选中“数据源”任意单元格 → 点击【数据】→【数据透视表】→【创建】。
2、在透视表向导中,点击【确定】进入布局界面。
3、将需筛选的字段(如“产品名称”)拖入【页面字段】区域;将数值字段(如“销售额”)拖入【数据字段】;将分类字段(如“月份”)拖入【行字段】。
4、点击【确定】生成透视表,此时顶部会出现下拉筛选器,其选项与列表框内容一致。
四、基于透视表创建图表并启用动态链接
图表必须直接引用透视表单元格区域,而非原始数据,才能随透视表筛选结果自动重绘。若引用原始区域,图表将保持静态,无法响应筛选变化。
1、选中透视表生成后的数据区域(不含页字段控件,仅选行字段+数据字段对应区域)。
2、点击【插入】→【图表】→ 选择柱状图或折线图类型 → 完成向导。
3、右键图表 →【编辑】→ 确认数据范围地址形如 Sheet2.$A$3:$B$15(即透视表输出区域),而非 $Sheet1.$A$1:$C$100。
4、关闭编辑模式,此时更改页面字段下拉选项,图表将同步更新。
五、用文本框+公式模拟简易搜索框(替代方案)
若需更接近传统“输入关键词搜索”的体验,可利用 Calc 的 FILTER 函数(LibreOffice 7.3+)配合动态命名区域构建响应式数据集,再以此生成图表。该方式无需控件,纯公式驱动,适合轻量筛选。
1、在新工作表(如Sheet3)的D1单元格输入关键词,例如“手机”。
2、在E1输入公式:=FILTER(数据源.A2:C100;ISNUMBER(SEARCH(D1;数据源.A2:A100)))。
3、选中E1:G(自动溢出区域)→【插入】→【图表】→ 创建图表。
4、修改D1内容,图表数据源自动重算并刷新显示。










