社区新手。我尝试在公式中使用两个可能单元格中的一个单元格中的值,这两个单元格位于两个单元格的右侧,其中一个单元格的内容将由 MIN 函数选择。MIN 函数作用的单元格位于同一行,但不相邻。因此,我的问题看起来像:
=MAX(F8,M8)+SUM(G8,N8)-MIN(F8,M8)+ {F8 或 M8 右侧的单元格内容取决于 MIN 函数的结果
我尝试过同时使用 CELL、INDEX 和 MATCH 函数来返回最小内容的单元格引用作为起点,然后尝试将单元格引用向右偏移一个,但对于非连续范围,这种方法不起作用。有人有什么想法吗?谢谢大家。D.
答案1
人们忘记了你可以在另一个数学语句中间使用 IF:
=MAX(F8,M8)+SUM(G8,N8)-MIN(F8,M8)+IF(F8<M8, G8, N8)
更确切地说
=MAX(F8,M8)+SUM(G8,N8)+IF(F8<M8, G8-F8, N8-M8)
更确切地说
=MAX(F8,M8)+IF(F8<M8, 2*G8-F8+N8, 2*N8-M8+G8)
或者更确切地说,以最有效的形式:
=IF(F8<M8, 2*G8-F8+N8+M8, 2*N8-M8+G8+F8)
现在,这仅在 F8 右侧紧邻 G8 且 M8 右侧紧邻 N8 时才有效。您提到的问题是,例如,如果您在 F 或 M 旁边插入一个新列。右侧的单元格仍为 G 和 N,但公式会自动将 G8 更新为 H8,将 N8 更新为 O8。为了避免这种情况,您可以使用 OFFSET(为了清楚起见,不使用有效形式):
=MAX(F8,M8)+SUM(G8,N8)-MIN(F8,M8)+IF(F8<M8, OFFSET(F8,0,1), OFFSET(M8,0,1))
请注意,在大型工作簿中使用 OFFSET 可能会显著降低计算机速度。OFFSET 是一个易失性函数,会一直重新计算。
您还可以使用例如 INDIRECT("G"&ROW()),无论列插入或单元格移动和复制如何,它始终会解析为 G8。不幸的是,INDIRECT 也是不稳定的!此外,如果您插入了新的 F 列,公式现在将比较 G 和 N,并且实际上应该返回 H 和 O。
首选方法是使用非易失性的 INDEX。我认为这应该可行,但尚未测试:
=MAX(F8,M8)+SUM(G8,N8)-MIN(F8,M8)+IF(F8<M8, INDEX(F8:G8,1,2), INDEX(M8:N8,1,2))