gpt4 book ai didi

powerquery - 使用电源查询在 Excel 中将 "section-document"写入何处?

转载 作者:行者123 更新时间:2023-12-05 04:12:22 24 4
gpt4 key购买 nike

我可以在编辑器中编写“表达式文档”。但是放“section-document”会出错。

根据 PDF Excel 公式语言规范的 Power Query,2015 年 8 月第 15 页,2.1 文档

A document either consists of exactly one expression or of groups of definitions organized into sections.

当我像下面这样放置“部分定义”时,在“高级编辑器”中,错误消息是“无效表达式”:

section SectionA;
A = 1;

很明显,高级编辑期望的是“表达式文档”,而不是“节文档”。 (这 2 个术语来自 PDF 第 107 页,12.2.1 文档。而“表达式文档”只是一个“表达式”,12.2.3.1 表达式)

我感觉 PQ 中的“部分”将是一种组织代码的功能,就像“模块”一样。我想使用它。

但是,我找不到编写“section-document”的方法。 (规范的 第 98 页,第 11 节)

一个变通方法是创建一个名为 MyFunSet 的“查询”,它返回许多函数的记录。

Query-Name: MyFunSet has following "expression" in Adv Editor

[ FunA = () => ...,
FunB = (x) => ...
]

在其他“查询”中使用此 MyFunSet 时如下所示。我已经测试过它有效。

  let a = MyFunSet[FunA]()
, b = MyFunSet[FunB](1)
in 1

let FunA = MyFunSet[FunA]
, FunB = MyFunSet[FunB]
, a = FunA()
, b = FunB(1)
in 1

这种变通还可以,但不好。

发现#1(#settions) PDF第 100 页,PQ 表达式 #sections 将返回节的记录。创建一个值#sections 的新查询,返回的记录有一个名为“Section1”的字段,值是 Excel 工作簿中所有查询的记录。例如,一个工作簿有

Query1 = ...
Query2 = ...
Query3 = #sections

Query3 将返回如下记录:

[ Section1 = [Query1 = ..., Query2 = ..., Query3 = ...] ]

据此,我解释整个Excel工作簿只允许一个部分,名称为“Section1”

发现 #2(部分访问表达式) PDF第 110 页,

12.2.3.13 Section-access expression
section-access-expression: identifier ! identifier

发现#3(文件) PDF第 107 页,

12.2.1 Documents
document:
section-document
expression-document

“高级编辑器”只接受表达式文档,不接受节文档

发现#4(将 PQ 导出为 *.odc)

在 Excel 356 中,每个 loaded PQ 都是一个工作簿连接,可以导出为 *.odc

  • loaded 查询表中找到单元格,
  • 转到菜单“数据”,单击“连接属性..”,
  • 在页面选项卡的“定义”中,单击“导出连接文件”,
  • 创建了一个 *.odc。
  • 检查 *.odc 文件中的标签

下面是查找

<Formula><![CDATA[let
Query3 = #sections,
in
Query3]]></Formula>

这 4 个发现让我觉得一个工作簿将始终只创建一个名为“section1”的“部分”。如果一个工作簿可以“引用”一个或多个其他工作簿,则允许多节。这些带有 2 个问题:

  • 如何推荐?
  • 如何将始终为“Section1”的部分名称重命名为其他名称?

我想知道如何在 Excel Power Query 中使用 --“部分”。

最佳答案

好问题。您不能直接编辑分区文档。在 Excel/Power Query 中,每次您编辑某些查询的表达式时,您都在编写节文档的一部分。

如果您将“Query1”定义为1 + 1,并创建一个单独的“Query2”作为Query1 + 1,则Excel 会写出此部分文档:

section Section1;

shared Query1 = 1 + 1;

shared Query2 = Query1 + 1;

您的解决方法应该也能正常工作。我认为这就是例如这个"M" library on GitHub做。

关于powerquery - 使用电源查询在 Excel 中将 "section-document"写入何处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40689689/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com