从Excel数据表(假设分析)中提取公式

Sta*_*lav 5 excel vba r excel-vba excel-formula

我面临在R中重写Excel项目.我看到一个表格,其中显示了一个单元格 {= TABLE(F2,C2)}.我理解如何创建这样的表(假设分析,数据表......).

由于我必须理解这在R中重写,我怎样才能找到支持该单元格的原始公式?

实施例:我已经创建了一个数据表如图这里和片材看起来像这样:

SO32606771问题示例

在我的情况下,我不知道如何创建工作表,我想知道最初的公式.现在这显示为{=TABLE(,C4)}.(在示例中,我知道答案,它在单元格(D10)中,但数据表中此单元格的引用位置在哪里?)

use*_*637 2

我使用的是 Excel 2007,但没有理由相信其他版本的情况有所不同。

@Stanislav 拒绝我的评论建议是正确的,即 TABLE 是一个名称;这是一个EXCEL函数。但这是一个非常奇怪的功能:-}

  • 本地帮助中没有关于 TABLE 函数的任何帮助,它没有列在“工作表函数列表(按字母顺序)”中。
  • 您无法手动输入或编辑 TABLE 函数;错误“该功能无效”。
  • 即使您指定“选择性粘贴”>“公式”,复制/粘贴包含 TABLE 函数的单元格也会粘贴其值,而不是其公式
  • 您不能在包含 TABLE 函数的单元格的正上方/左侧插入行/列;错误“无法更改数据表的一部分”。
  • 使用公式 > 公式审核包含 TABLE 函数的单元格显示没有先例,也没有单元格将它们显示为依赖项。尽管在我使用 Range.DirectDependents 属性的 VBA 工作表审核工具中,发现“公式范围”依赖于包含公式的“边距”单元格,但不依赖于包含值的单元格(请参阅下面对这些术语的解释)。

我还没有找到任何我认为像样的 TABLE() 文档。我找到了很多关于如何生成和使用该函数的插图,但没有明确指定参数和结果。我发现的最好的是https://support.office.com/en-us/article/Calculate-multiple-results-by-using-a-data-table-e95e2487-6ca6-4413-ad12-77542a5ea50b。如果有人能给我指出更好的文档,我会很高兴。

我推断出这里描述的行为:

TABLE(Rowinp,Colinp) 是连续单元格数组中的数组公式。我将该连续数组称为数据表的“公式范围”。公式范围上方/左侧的单元格也是数据表的一部分,即使它们不包含 TABLE() 函数并且可以编辑;我将这些单元格称为数据表的“边距”。

Rowinp 和 Colinp 必须为空或对单个单元格的引用。Rowinp 和 Colinp 必须不同(或出现错误“输入单元格引用无效”),它们不能均为空白。

公式范围内的值是通过从边距中获取公式并用边距中的值替换对 Rowinp 和/或 Colinp 的引用来计算的。

存在三种互斥的可能性,对应Rowinp 空白或不对应。

  1. 表(Rowinp, ) Colinp 空白。公式是在同一行的左边距中将 Rowinp 实例替换为同一列上边距中的值。
  2. TABLE( , Colinp) Rowinp 空白。公式是在同一列的上边距中,将 Colinp 实例替换为同一行左边距的值。
  3. TABLE(Rowinp, Colinp) 都不为空。公式是,在左侧和上边距交叉处的单元格中,将 Rowinp 实例替换为同一列上边距中的值,将 Colinp 实例替换为同一行左边距中的值。

我认为这应该让您弄清楚公式范围的每个单元格中的有效公式是什么。

但如果我知道上述任何内容都是错误的,我不会感到惊讶:-0
我欢迎指向任何更权威的内容。