在不引用前一个单元格的情况下扩展 Excel 公式

Expanding an Excel formula without referencing the previous cell

我正在尝试使用 IF 语句检查来自另一个 Excel sheet 的两个单元格的总和是否大于或等于 1。

对于名为 Test1 的 sheet,其感兴趣的值在列 C 中,这是我目前所拥有的,效果很好: =IF((Test1!C1+Test1!C2>=1),1,0)

在第二个 sheet 的 B 列中,我将调用 Test2,我想将此公式复制到 200,000 行。但是,如果上述公式在单元格 B1 中,对于 B2 中的公式,我希望公式为: =IF((Test1!C3+Test1!C4>=1),1,0)

我想将公式向下复制到列中,以便第一行公式中的第二个单元格引用不会成为第二行公式中的第一个单元格引用(例如,它会变成 C1+C2,然后是 C3+C4C5+C6,等等)。

我尝试手动输入几行的公式,突出显示这些公式,然后将它们复制下来,但无法获得所需的单元格引用模式。如果我突出显示前三个公式并将其向下拖动到另外三行,则会重复 C4C5 并且不在正确的对中。

=IF((Test1!C1+Test1!C2>=1),1,0)

=IF((Test1!C3+Test1!C4>=1),1,0)

=IF((Test1!C5+Test1!C6>=1),1,0)

=IF((Test1!C4+Test1!C5>=1),1,0)

=IF((Test1!C6+Test1!C7>=1),1,0)

=IF((Test1!C8+Test1!C9>=1),1,0)

我曾尝试在此公式中使用 OFFSET(),但无法正常工作。与上一行相比,我基本上只是想将 1 添加到公式中的每个单元格引用(而不是实际将 1 添加到该单元格的值,就像使用C1+1 例如)。

如有任何见解,我们将不胜感激!

如果您打算将此复制下来 200K 行,那么您将需要实现交错的绝对最简单的公式。避免 volatile OFFSET function 或准备花费大量时间等待随机计算周期完成。每当工作簿中的任何内容发生变化时,volatile 函数就会重新计算;不仅仅是单元格中涉及公式的更改。

 =--(SUM(INDEX(Test1!C:C, (ROW(1:1)-1)*2+1), INDEX(Test1!C:C, (ROW(1:1)-1)*2+2))>=1)

下面的公式应该可以解决问题:

=(SUM(INDIRECT("C"&ROW()*2-1);INDIRECT("C"&ROW()*2))>=1)*1

这是使用 IF 的版本:

=IF(SUM(INDIRECT("C"&ZEILE()*2-1);INDIRECT("C"&ROW()*2))>=1;1;0)

你说我基本上只是想在公式中的每个单元格引用中添加“1”,但似乎增加了2,所以我我很困惑,但一个选项可能是将现有公式应用于 400,000 行,以及另一列中的 =ISODD(ROW()),然后在另一列上过滤为 select 并删除显示 FALSE 的那些。

Excel 的自动填充不会执行您正在寻找的 2 格移位。您可以使用那里的功能。

=IF((Test1!C1+Test1!C2>=1),1,0) 放在顶部的单元格中,然后将副本拖到第二行(它将是 =IF((Test1!C2+Test1!C3>=1),1,0),但没关系)。现在,将 'A' 和 'B' 放在下一列中。 Select 所有 4 个单元格并将它们复制 400k 行。

使用过滤器删除带有 'B' 标记的行并删除空白行。

(Select 空白行 [F5] 单击 Special 和 select Blanks,然后右键单击并删除)

这就是您所需要的。它速度快且不易失。

=--(SUM(INDEX(Test1!C:C,ROW(1:1)*2-2):INDEX(Test1!C:C,ROW(2:2)*2-2))>=1)

复制到什么程度。