我可能没有正确地说出这个标题,所以让我解释一下我正在尝试做什么。
我需要在一系列数据中找到周期。因此,假设我将所有数据都放在Excel电子表格的A列中。如果我正在寻找的条件在单元格A7中是正确的,我想检查以确定它是否在每个第二个单元格中都是正确的(A9,A11,A13等)。如果在每个第二个单元格中都不是这样,我想调整模型以检查从该A7单元格开始的每个第三个单元格(A10,A13,A16等)。如果每个第三个单元格中的条件不成立,那么我想检查每个第四个单元格(A11,A15,A19等)。
使用IF或AND公式对公式进行编程以检查条件是否为真。我的问题是如何更改模型以从每个第二个单元格切换到每个第三个单元格,然后运行它以检查每个第四个单元格,依此类推。我想说,在B列中设置公式并让单元格C1成为用户输入,用于确定在B列的公式中使用哪些单元格。有没有办法做到这一点?
示例:如果单元格C1表示“2”,则B列中的公式检查A列中的每个其他单元格,如果我将单元格C1中的值从“2”更改为“3”,则列中的公式B从检查每个第二个单元格切换到检查每个第三个单元格并向我报告。
我可以手动更改B列公式中的单元格引用,但这可能需要血腥的年龄,我认为必须有更好的方法。
所以我想在某种意义上使单元格引用'变量'。而不是硬编码单元格引用并说“查看单元格A7,然后查看单元格A9,然后查看单元格A11 ......”我想告诉Excel“看看A7,那么你看的下一个单元格取决于我所说的在单元格C1中。“
答案 0 :(得分:0)
下图显示了我的设置:
我在A列中有简单数据.B列确定是否应评估C中的公式。例如,B2包含以下公式:
=IF(MOD(ROW(A2),$D$2)=0,1,0)
C列将包含您要应用的逻辑。在这种情况下,如果B为1,我将返回A中的数据;否则,我返回“”:
=IF(B2=1,A2,"")
D列确定要跳过的行数。
答案 1 :(得分:0)
如果您只想要一列,则此公式将位于B1中,您可以将其向下拖动。更新$ A $ 1:$ A $ 20范围以包含您的整个范围。此公式将检查循环中的前一个单元格(每2,3,4等)是否匹配。
=IF(AND(ROW()>$C$1,MOD(ROW(),$C$1)=0),INDEX($A$1:$A$20,ROW()-$C$1)=$A1,"")
不要使用INDIRECT ......永远。