excel - 有没有办法使用 Excel VBA 更新 powerquery 中的过滤器?
问题描述
所以我有一个 ODBC 数据集,我在加载到 Excel 之前在 PowerQuery 中进行了过滤。
在其中一个日期列上,我放置了一个过滤器:
保留“创建日期”在 日期 X之后和日期 Y之前的行
如果不不断更改过滤器,数据集对于 Excel 来说太大了。我想在重新加载查询时使用 VBA 自动更改“之后”和“之前”日期。
这个想法是变量“之后”和“之前”日期可以插入到 Excel 中的两个单元格中。假设 Sheet1.range("A1") 和 sheet1.range("A2")。VBA 脚本会在重新加载查询之前在 PowerQuery 字段中插入这些日期。
这可能吗?如何?
解决方案
如评论中所述,这不需要 VBA,您可以直接利用 Excel 名称和 Power Query。
脚步:
- 在 Excel 中添加单元格名称
from
和日期to
- 将起始日期添加到单元格并为该单元格添加名称:
fromDate
- 将截止日期添加到单元格并为该单元格添加名称:
toDate
- 将这些单元格添加到电源查询
- 选择单元格并单击数据 | 从表/范围
- 更改为日期类型
- 向下钻取到第一个单元格(右键单击)
- 在表日期列过滤器中使用 fromDate 和 toDate 查询
- 您可以编写代码或使用接口并对其进行调整:=
Table.SelectRows(#"Changed Type", each ([Date] >= fromDate and [Date] <= toDate))
码:
表格1
let
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Date", type date}}),
#"Filtered Rows" = Table.SelectRows(#"Changed Type", each ([Date] >= fromDate and [Date] <= toDate))
in
#"Filtered Rows"
从日期
let
Source = Excel.CurrentWorkbook(){[Name="fromDate"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type date}}),
Column1 = #"Changed Type"{0}[Column1]
in
Column1
迄今为止
let
Source = Excel.CurrentWorkbook(){[Name="toDate"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type date}}),
Column1 = #"Changed Type"{0}[Column1]
in
Column1
表 1 查询
从日期查询
检查截屏视频
让我知道它是否有效
推荐阅读
- jquery - Heroku 部署错误:无法解析 jquery
- rest - Rest API 设计:为什么路径变量比正文更受青睐
- list - dart 中的列表映射实际上是如何工作的?
- angular - 在通用组件中呈现输入组件的简单方法
- python - 使用 SQL 查询插入数据的 Python 函数
- opencl - OpenCL,了解 VectorAdd 程序
- .net-core - dotnet ef 无法执行,因为找不到指定的命令或文件
- swift - React Native App 在关闭 uiviewcontroller 时崩溃
- swift - 如何从 swift 中的字符串生成初始化调用
- ruby-on-rails - Rails - 验证一年中的唯一月份