我可能没有正确地表达该标题,所以让我解释一下我想要做什么。
我需要在一系列数据中找到周期。 假设我的所有数据都位于 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 中。”
如果您只想要一列,则将此公式放入 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,"")
永远不要使用间接...。