我正在制作一张有多张纸的电子表格,其中一张纸有一个等式,可以查看是否在所有其他纸张上的某个单元格中写入了任何内容。现在我只是使用这个等式来确定它是否有任何在该单元格中写入的内容。
=IF(LEN('A'!N18)>1,CONCATENATE('A'!C18," "),)
这只是检查单元格中是否有任何内容。问题是,如果我在A上添加一个新行,我希望它继续工作,但是现在它将第18行打到第19行,而我没有第18行,所以它甚至不会检查新行!
答案 0 :(得分:1)
如果要在工作表A的第1行和第18行之间添加一行,但保留公式引用A!N18和A!C18,则需要使用INDIRECT或INDEX。在这两个中,INDEX是更好的选择,因为它不易变。像INDIRECT这样的易失性函数会在工作簿中的任何内容中重新计算。像INDEX这样的非易失性函数只会在影响其结果的内容发生变化时重新计算。
'INDIRECT method; works but not optimal
=IF(LEN(INDIRECT("'A'!N18"))>1,CONCATENATE(INDIRECT("'A'!C18"," "),)
'INDEX method; works and is non-volatile
=IF(LEN(INDEX('A'!N:N, 18))>1,CONCATENATE(INDEX('A'!C:C, 18)," "),)
答案 1 :(得分:0)
Slai在您的问题评论中发布的链接应该是您正在寻找的内容。如果您在添加/删除行/列时不想要引用更改,则需要使用绝对引用。正如目前所写" N18"和" C18"是相对的参考。如果您更改工作表上的列/行,那么这些引用将随之更改。这就是为什么它会向你排第19行。
您可以通过添加" $"将它们转换为绝对引用;像这样:" $ C $ 18"和" $ N $ 18"。第一个" $"设置列的绝对引用,第二个设置行的绝对引用。您可以混合和匹配这些以获得各种结果。
当您重复使用略有差异的公式时,混合相对值和绝对值确实很方便。例如,如果要将b列中的数字(从第4行开始)乘以A1中的数字,并将结果显示在C列中(也从第4行开始)。您将始终使用A1,因此我们可以将其设置为绝对值,并在C4中输入公式=$A$1*B4
。将其复制到C列,它会自动将B值更新为新列,但总是使用" $ A $ 1"对于另一部分。
您只能使用" $"来分割相对引用。在引用的列或行引用上。无论您使用哪一个都将被锁定,另一个仍然可以根据工作表的更改或复制进行调整。学习如何使用绝对引用可以节省大量时间。
我对你的部分公式感到好奇。你为什么只用一个空格连接C18?如果您在其他地方使用该信息,那么在该连接中添加空间可能是有意义的,但它是个人选择。