Excel 使用数据模型来补充我的跟踪 sheet
Excel Using Data Model to supplement my tracking sheet
我有一个跟踪 sheet,我想使用外部数据库对其进行更新。跟踪 sheet 只是 Excel 中的一个 table,有几列。有些列是手动条目、注释和东西。根据每行的索引值,某些列 link 编辑为我们数据库中的值。
我必须为我的 table 中的所有唯一索引值生成搜索字符串,搜索我的数据库,将这些结果导出到 csv
文件,将其转储到单独的工作中sheet,然后 link 它回到我的跟踪 table。我不想每隔几天就做一次数据转储,而是直接从数据库中提取我需要的数据。
我的 table 列如下所示,有几百行。我跟踪项目并在项目上做一些笔记或只是一般参考。
Index | Manual Entry 1 | Manual Entry 2 | Database Param 1 (DB1) | Database Param 2(DB2)
我的数据sheet是这样的。
Index | DB1 | DB2
我已经可以将我的数据库作为数据模型加载到 excel 中。根据我拉的是哪一个,其中一些有几百万行,所以我不能直接将它们加载到 table 中。我不知道如何根据索引值查询特定参数的数据模型。今天我使用宏从我从数据库导出的数据中提取 DB1 和 DB2 值。
我查找的有关数据模型的所有内容 excel 要么导致数据透视表 table 要么报告数字数据。我找到了 cubemember
和 cubevalue
函数,但是我无法得到表达式来根据索引给我一个原始值。它始终只是值的计数。
我今天的 sudo 代码是这样的。
'loop through rows of indexes
If DataIndex = TrackingIndex then
'loop through columns of DB1,DB2,DB3...
if DataDB# = TrackingDB# Then
TrackingValue = DataValue
end if
next
end if
next
我只需要知道什么公式可以index(match())
转化为数据库模型?或者什么 VBA 函数可以让我将数据模型加载到我可以循环访问的数组中?
或者是否有更好的方法一起完成这一切?
好吧,我终于明白了。我没有走真正的 SQL 路线。我合并了这两篇文章的帮助。
https://radacad.com/dynamic-sql-using-power-query
基本上,使用具有您想要的所有查找值的 table。将 table 添加到您的数据模型中。根据上面第一篇文章的前半部分在 power query 中编辑它,将其减少到只有一个唯一值列表。我这样做只是为了连接,因为我不需要该列表实际存在于任何地方。
然后加载与数据库的连接。选择数据集后使用转换数据按钮。按照第二篇文章,根据第一个 table 个唯一值在 power query 中过滤它。它需要对任何随机值使用 GUI 过滤器命令。然后使用高级编辑器,修改该过滤器命令以使用您的第一个 table 值作为过滤器。然后将它加载到 table 并执行任何你想要的 index/match、vlookup 或宏处理!
我有一个跟踪 sheet,我想使用外部数据库对其进行更新。跟踪 sheet 只是 Excel 中的一个 table,有几列。有些列是手动条目、注释和东西。根据每行的索引值,某些列 link 编辑为我们数据库中的值。
我必须为我的 table 中的所有唯一索引值生成搜索字符串,搜索我的数据库,将这些结果导出到 csv
文件,将其转储到单独的工作中sheet,然后 link 它回到我的跟踪 table。我不想每隔几天就做一次数据转储,而是直接从数据库中提取我需要的数据。
我的 table 列如下所示,有几百行。我跟踪项目并在项目上做一些笔记或只是一般参考。
Index | Manual Entry 1 | Manual Entry 2 | Database Param 1 (DB1) | Database Param 2(DB2)
我的数据sheet是这样的。
Index | DB1 | DB2
我已经可以将我的数据库作为数据模型加载到 excel 中。根据我拉的是哪一个,其中一些有几百万行,所以我不能直接将它们加载到 table 中。我不知道如何根据索引值查询特定参数的数据模型。今天我使用宏从我从数据库导出的数据中提取 DB1 和 DB2 值。
我查找的有关数据模型的所有内容 excel 要么导致数据透视表 table 要么报告数字数据。我找到了 cubemember
和 cubevalue
函数,但是我无法得到表达式来根据索引给我一个原始值。它始终只是值的计数。
我今天的 sudo 代码是这样的。
'loop through rows of indexes
If DataIndex = TrackingIndex then
'loop through columns of DB1,DB2,DB3...
if DataDB# = TrackingDB# Then
TrackingValue = DataValue
end if
next
end if
next
我只需要知道什么公式可以index(match())
转化为数据库模型?或者什么 VBA 函数可以让我将数据模型加载到我可以循环访问的数组中?
或者是否有更好的方法一起完成这一切?
好吧,我终于明白了。我没有走真正的 SQL 路线。我合并了这两篇文章的帮助。
https://radacad.com/dynamic-sql-using-power-query
基本上,使用具有您想要的所有查找值的 table。将 table 添加到您的数据模型中。根据上面第一篇文章的前半部分在 power query 中编辑它,将其减少到只有一个唯一值列表。我这样做只是为了连接,因为我不需要该列表实际存在于任何地方。
然后加载与数据库的连接。选择数据集后使用转换数据按钮。按照第二篇文章,根据第一个 table 个唯一值在 power query 中过滤它。它需要对任何随机值使用 GUI 过滤器命令。然后使用高级编辑器,修改该过滤器命令以使用您的第一个 table 值作为过滤器。然后将它加载到 table 并执行任何你想要的 index/match、vlookup 或宏处理!