答案1
如果您一次只想使用一个行字段,则可以使用 PowerQuery 堆叠变量。
将光标放在数据中并使用数据>获取和转换数据>从表/范围。
这将创建一个表并打开 PowerQuery 编辑器:
按住 Ctrl 并单击标题以选择 Lower 和 Upper 列,然后使用 Transform>Unpivot Columns。您应该看到以下内容:
右键单击列标题并选择“重命名”,将列重命名为对您有意义的名称。您还可以拖动列以重新定位它们。我已重命名它们并重新排序如下:
现在使用“主页”>“关闭并加载”将数据放回工作簿。
您可以从该数据集创建一个数据透视表,将 VariableMember 放在行上,将 Value 放在值中,并在 Variable 上创建一个切片器:
编辑1:
这是另一种不使用 VBA、DAX 或 PowerQuery 的方法,但确实要求您在选择要作为行标题的列后刷新数据透视表。
我已将单元格 G2 重命名为 selected_column。此操作通过选择一个单元格,然后在名称框中输入名称来完成,如所述这里。这不是绝对必要的,但我发现它使阅读引用此列的公式变得更容易。
我使用 Ctrl+T 将数据范围转换为表格,并使用以下公式添加了一个名为“数据透视行标题”的列:
=IFS(selected_column="Lower",[@Lower],selected_column="Upper",[@Upper],TRUE,"")
这只是说“如果单元格 G2 中的值为 Lower,则在此列中显示 Lower 列中的值。如果单元格 G2 中的值为 Upper,则在此列中显示 Upper 列中的值。否则,在此列中不显示任何内容。”
如果您有更多列可供选择,则可以根据需要多次扩展 IFS 公式。
在单元格 G2 中,我通过使用数据>数据验证添加了数据验证,并像这样配置对话框:
因此,单元格 G2 中的下拉列表显示了表格中前两列的列标题,即值 Lower 和 Upper。
当我从 G2 中的下拉菜单中选择一个值时,表中 C 列中的值会更新。
然后我需要刷新数据透视表来查看更改。