如何对 Google 表格中的多组过滤数据运行公式

问题描述 投票:0回答:1

我有大约 12 列数据和一个复杂的公式,可以根据该数据计算一些值。该公式涉及

XIRR
MAP
GOOGLEFINANCE
INDEX
IF
以及其他多次引用多个列的函数。

我有 2 列,我想在其中过滤数据并对过滤后的数据运行相同的公式。这意味着根据两列中的值将有数十种组合。

对所有此类可能的过滤数据运行公式的最简单方法是什么?

这是我探索过的选项

  1. 在公式中引用某些列的每个地方,我都将其替换为 FILTER 函数。然后将此公式复制粘贴到多个单元格上,每个单元格具有不同的过滤条件值。我总共需要引用 4 列,并且需要在 4 个独立的嵌套公式中对每一列引用 4 次。这将使已经很长的公式(目前有 7 行)变得太大而难以管理。

  2. 创建一个新工作表,并使用具有所需条件的 FILTER 从主工作表填充该工作表中的数据,然后将原始公式从主工作表复制粘贴到此新工作表,以便该公式现在仅在过滤后的数据上运行。虽然这很简洁,但我无法在一张表中整理多个过滤数据的结果。要么我必须为每个可能的过滤数据创建一个新工作表,要么我可以在任何给定时间点仅检查 1 个数据的结果

有没有更简单的方法?

也许有一种方法可以让我使用选项 2 但不必创建多个工作表?我不需要存储 FILTER 函数的结果并在 FILTER 的输出之上运行复杂的公式吗?

类似的东西

=(FILTER(A2:H, A2:A = 'X1', B2:B = 'Y1'))MY_COMPLEX_FORMULA <---- In cell 1
=(FILTER(A2:H, A2:A = 'X2', B2:B = 'Y2'))MY_COMPLEX_FORMULA <---- In cell 2 and so on

这样 MY_COMPLEX_FORMULA 就可以处理 FILTER 的输出并自然地引用这些单元格和列,而无需将 FILTER 的结果存储在工作表上的任何位置

google-sheets google-sheets-formula filtering
1个回答
2
投票

如果您包含一个样本集,这个问题会容易得多,但是,假设您的复杂公式始终产生单个结果(而不是数组),那么您很可能可以使用 LET 为每个结果创建一个临时数组计算的行,然后将其作为参数传递给复杂的公式。

类似这样的:

=let(fullRng,A$2:H,cleanRng,filter(fullRng,if(CHOOSECOLS(fullRng,1)=X2,
choosecols(fullRng,2)=Y2)),ComplexFormula(cleanRange)

这会在每个 ROW 中创建一个过滤范围,但实际上并不显示它。您的复杂公式必须采取一些措施来最大限度地减少这种情况,这样它就不会占用超过一个单元格,因为它会溢出到自身中。

© www.soinside.com 2019 - 2024. All rights reserved.