![OpenOffice Calc 货币“if”公式](https://linux22.com/image/1472366/OpenOffice%20Calc%20%E8%B4%A7%E5%B8%81%E2%80%9Cif%E2%80%9D%E5%85%AC%E5%BC%8F.png)
我有一个电子表格,里面有很多不同的货币($、欧元、谢克尔)。我想以原始货币显示实际价格,然后显示转换后的价格(在本例中为谢克尔)。我找到了一个公式,使用擅长,但当我尝试在 openoffice 中使用它时,它不起作用,我收到 508 错误。这是我想到的公式:
=IF(LEFT(D12, 1)="$";D12*Conversions.C4;IF(LEFT(D12, 1) = "€";D12*Conversions.B4; D12))
其中 D12 是原始价格的单元格,Conversions.C4 是将美元转换为谢克尔的单元格,Conversions.B4 是将欧元转换为谢克尔的单元格。
顺便说一句,如果有人知道如何插入不断更新的货币转换公式(而不是每周/每月/任何时候查找并手动更改汇率),我将不胜感激。
答案1
错误代码是由于在LEFT
函数中需要分号的地方使用了逗号而导致的(OpenOffice 在 Excel 使用逗号的大多数地方都要求使用分号)。
此外,正如对该问题的评论所指出的那样,OpenOffice 将货币格式的数字视为数字,并且该LEFT
函数只会返回该单元格中的数字。
要解决此问题,请使用“文本转列”将所有货币数字转换为文本。无论是原始数据,还是另一列或工作表中的副本(如果您需要保留原始数据上的数字格式),都可以。
突出显示所有要转换为文本的货币单元格。选择数据→文本到列。在弹出窗口的底部,单击要转换的单元格列以突出显示它们。选择列类型“文本”。如果要转换多列,请重复此操作。单击确定按钮执行转换。
现在,您的原始公式将给出一个新的错误代码,因为它反对对文本字符串进行数学运算。要解决此问题,请使用函数VALUE
在必要时转换回数字:
=IF(LEFT(D12; 1)="$";VALUE(D12)*Conversions.C4;IF(LEFT(D12; 1) = "€";VALUE(D12)*Conversions.B4; D12))