假设我想要这种类型的答案,formula = SUM(startcell:endcell)
但是startcell
和endcell
组件发生了变化。
因此,我不想C1
直接在公式中使用来表示 cell 中的值C1
,而是希望能够使用其中的任何值并B1, B2, and B3
构造可以在公式中表示的东西C1
?
也许问这个问题的更好方法是,Excel 有类似 Python 的东西eval()
吗?
假设我想要这种类型的答案,formula = SUM(startcell:endcell)
但是startcell
和endcell
组件发生了变化。
因此,我不想C1
直接在公式中使用来表示 cell 中的值C1
,而是希望能够使用其中的任何值并B1, B2, and B3
构造可以在公式中表示的东西C1
?
也许问这个问题的更好方法是,Excel 有类似 Python 的东西eval()
吗?
在文本中解释 Excel 公式很乏味......我认为图像更好
!
我认为更有用的是地址公式,它允许您从指定的输入构建单元格地址字符串。表示法是 =ADDRESS(row_number, column_number,absolute_number_flag,bool_A1Style,sheet_text)。
因此,对于您的示例: - 要返回 Sheet1!R1C3,您将使用 =ADDRESS(B3,B2,,FALSE,B1) - 要返回 Sheet1!C1,您将使用 =ADDRESS(B3,B2,,TRUE,B1) 或 =ADDRESS (B3,B2,,,B1)
然后,您可以在此返回的地址上使用您的 INDIRECT 函数。
请注意,如果您希望使用 sum() 函数对动态范围求和,则可以使用两个地址调用来构建整个范围的字符串。
EG 如果您在示例的单元格 C3 和 C4 中添加 5 的值来指定最终单元格的行和列,您可以有一个公式 =ADDRESS(B4,B3,,,B2)&":"&ADDRESS(C4, C3) 将返回 'Sheet1!'!$C$1:$E$5
我还不能发布图片,所以希望这在文本中有意义!
你可以试试
formula = SUM(INDIRECT(B1),INDIRECT(B2),INDIRECT(B3))
并进行更多测试,看看您是否可以在范围内工作