我正在尝试获取 OpenOffice.org Calc 中相邻列的值。
我有几行,每行都有一列,当其右边的列有值时,该列的值应该加一。
所以我希望有这样的东西。
1 Some content $50
2 More content $320
3 Even More $70
4 $110
在上面的例子中,由于两列中至少有一列右侧有一个值,因此通过增加 1 得出 1、2、3 和 4。
答案1
问题到底是什么?是引用相邻单元格的问题,还是有条件的计算值?有关相对引用,请参阅尤金的答复。要有条件地插入内容,您可以结合使用IF 函数以及CONCATENATE 函数:
=IF(CONCATENATE(B1;C1) <> "";1;"")
如果连接单元格之一包含值,则将结果连接为字符串。
如果要插入的内容取决于上面的行,则必须从第二行开始表格,或者使用与第二行不同的函数:
=IF(CONCATENATE(B2;C2) <> "";SUM(A1;1);"")
下一点是,例如,如果第八行 B8:C8 中没有值,该怎么办。只需增加 A9 中上述单元格的值,就会从 1 重新开始:
如果你想继续计数,你必须从当前单元格开始计算上面不为空或 0 的单元格。有一个COUNTIF 函数就是这样的。因此,你的函数可能看起来像(再次从第 2 行开始):
=IF(CONCATENATE(B2;C2) <> "";SUM(COUNTIF($A$1:A1;">0");1);"")
或者,将其分成不同的行并加上注释:
=IF(
CONCATENATE(B2;C2) <> ""; # Condition to check
SUM( # output if condition matches
COUNTIF($A$1:A1;">0");# count cells from $A$1 to cell above if not 0
1 # augment value by 1
);
"" # output if condition doesn't match
)
这是第二行的函数;只需将单元格复制到下一行即可。它应给出以下结果:
答案2
在 OpenOffice 的帮助文件中搜索“相对引用”。您需要的是相对引用。
在第一列第一行中,$A$1 为 1。因此,在第二行 ($A$2) 中,您可以写“=A1+1”。A1 是相对引用 - 如果您将单元格(不是公式,而是单元格本身)从 $A$2 复制到 $A$3,新单元格将自动获得公式“=A2+1”。
也可以有绝对引用,即“锁定”引用的行或列部分。通过在部分前面放置美元符号来实现。因此,要锁定对 A 列的引用,您需要将公式写为“=$A1+1”,而要将公式锁定到第一行,您需要写“=A$1+1”