【发布时间】:2016-10-15 23:01:16
【问题描述】:
我正在尝试执行以下操作:
- 检查单元格中的
N/A或No;如果它有其中任何一个,那么它应该输出N/A或No - 检查单元格中的
£或€或Yes;如果它有其中之一,那么它将继续执行第 3 步。如果它有$,那么它应该重复与输出相同的输入。 - 使用
REGEXEXTRACT(A1, "\$\d+")或REGEXEXTRACT(A1, "\£\d+")从单元格中提取货币(我认为这是最好的方法) - 使用
GoogleFinance("CURRENCY:EURUSD")或GoogleFinance("CURRENCY:GBPUSD")将其转换为美元 - 输出原始单元格,但将步骤 3 中提取的货币替换为步骤 4 中的输出。
示例:(原始 --> 输出)
-
N/A-->N/A -
No-->No -
Alt-->Alt -
Yes-->Yes -
Yes £10-->Yes $12.19 -
Yes £10 per week-->Yes $12.19 per week -
Yes €5 (Next)-->Yes $5.49 (Next) -
Yes $5 22 EA-->Yes $5 22 EA -
Yes £5 - £10-->Yes $5.49 - $12.19
我无法使 IF 语句正常工作,我可以在普通代码中执行此操作,但无法为电子表格公式解决。
我多次尝试修改@Rubén 的答案以包含N/A,因为这不是表格错误,我也尝试过相同的方法使任何美元输入都以美元形式出现(没有变化),但我真的可以'无法掌握 Excel/Google 表格中的 IF/OR/AND。
=ArrayFormula(
SUBSTITUTE(
A1,
OR(IF(A1="No","No",REGEXEXTRACT(A1, "[\£|\€]\d+")),IF(A1="N/A","N/A",REGEXEXTRACT(A1, "[\£|\€]\d+"))),
IF(
A1="No",
"No",
TEXT(
REGEXEXTRACT(A1, "[\£|\€](\d+)")*
IF(
"€"=REGEXEXTRACT(A1, "([\£|\€])\d+"),
GoogleFinance("CURRENCY:EURUSD"),
GoogleFinance("CURRENCY:GBPUSD")
),
"$###,###"
)
)
)
)
在上面,我尝试在第一个 IF 语句之前添加一个 OR() 以尝试将 N/A 作为选项包含在内,在下面我尝试了它,正如您在下面以各种不同的方式看到的那样(将第 4 行替换为这个)
IF(
OR(
A1="No",
"No",
REGEXEXTRACT(A1, "[\£|\€]\d+");
A1="No",
"No",
REGEXEXTRACT(A1, "[\£|\€]\d+")
)
)
但这也不起作用。我认为使用 ; 是一种分隔 OR 表达式的方法,但显然不是。
回复:Rubén 的最新密码 16/10/2016
我已将其修改为 =ArrayFormula( 如果(不是(ISBLANK(A2)),
IF(IFERROR(SEARCH("$",A2),0),A2,IF(A2="N/A","N/A",IF(A2="No","No",IF(A2="Alt","Alt",IF(A2="Yes","Yes",
SUBSTITUTE(
A2,
REGEXEXTRACT(A2, "[\£|\€]\d+"),
TEXT(
REGEXEXTRACT(A2, "[\£|\€](\d+)")
*
VLOOKUP(
REGEXEXTRACT(A2, "([\£|\€])\d+"),
{
{"£";"€"},
{GoogleFinance("CURRENCY:GBPUSD");GoogleFinance("CURRENCY:EURUSD")}
},
2,0),
"$###,###"
)
)
)))))
,"")
)
此修复:
- 空白单元格不再抛出 #N/A
-
Yes只有单元格不再抛出#N/A - 添加了另一个文本值
Alt - 将货币格式更改为小数点后 0 位,而不是我最初要求的小数点后 2 位。
正如您在下图中看到的那样,两个红色单元格并不完全正确,因为我从未想过这种情况,两个值中的第二个值保持在它的输入表单中,而不是转换为美元。
【问题讨论】:
-
GoogleFinance 和 REEXTRACT 在 Excel 中不可用,请添加您尝试过的公式。
-
我明白你的意思,但同样适用于 Excel,只需使用
Find()或InStr()和Len与Left()/Right()/Mid()混合使用货币兑换他们可以向 yahoo Finance 之类的网站添加新的网络查询或使用Excel Currency Converter插件。至于公式,我已经尝试了很多,但我无法掌握 IF 语句。 -
指南要求提问者跟踪他们的研究(见How to Ask)。我没有发现问题保持详尽的研究跟踪,所以至少有一个,我认为你的问题应该没问题。
-
在需要非常用函数的问题中考虑 Excel 和 Google 表格会使问题过于宽泛,因此可能会被关闭。
-
Rubén,即使像
=IF(REGEXEXTRACT(A1, "\$"), "Dollar", IF(REGEXEXTRACT(A1, "\£"), "Pound", IF(REGEXEXTRACT(A1, "\€"), "Euro", ""), ""), "")这样的人似乎也无法提取正确的货币。它只是抛出#N/A,所以我什至无法通过那个简单的步骤;我假设我打算使用IF(OR())或IF(AND())但我无法在这种情况下如何使用它们。
标签: if-statement google-sheets logical-operators formulas