26

我有公式可以检查单元格是否以文本“A”开头,为收集返回拾取“B”,为预付返回 C。

但它似乎不能正常工作

A 和 C 都返回预付...

=LOOKUP(LEFT(A1),{"A","B","C"},{"Pick Up","Collect","Prepaid"})

4

3 回答 3

32

由于多个参数,我不确定查找是否是正确的公式。也许是 hlookupvlookup ,但这些要求你有值表。一个简单的嵌套系列if可以解决小样本量的问题

尝试 =IF(A1="a","pickup",IF(A1="b","collect",IF(A1="c","prepaid","")))

现在结合你的left论点

=IF(LEFT(A1,1)="a","pickup",IF(LEFT(A1,1)="b","collect",IF(LEFT(A1,1)="c","prepaid","")))

还要注意你对left的使用,你的参数没有指定字符数,而是一个集合。


2015 年 7 月 8 日 - 有关上述功能的 Microsoft 知识库文章。我不认为有什么问题techonthenet但我宁愿链接到官方来源。

于 2013-07-24T22:31:10.120 回答
1

从 Excel 2019 开始,您可以执行此操作。最后的“错误”是默认值。

SWITCH(LEFT(A1,1), "A", "Pick Up", "B", "Collect", "C", "Prepaid", "Error")

Microsoft Excel 开关文档

于 2020-10-14T21:13:26.723 回答
1

我知道这是一篇很老的帖子,但我在寻找解决同一问题的方法时发现了它。我不想要嵌套的 if 语句,而且 Switch 显然比我正在使用的 Excel 版本更新。我弄清楚我的代码出了什么问题,所以我想我会在这里分享,以防它帮助别人。

我记得 VLOOKUP 要求源表按字母/数字排序才能正常工作。我最初试图这样做......

=LOOKUP(LOWER(LEFT($T$3, 1)),  {"s","l","m"}, {-1,1,0})

当我这样做时它开始工作......

=LOOKUP(LOWER(LEFT($T$3, 1)),  {"l","m","s"}, {1,0,-1})

我最初认为最后一个值可能是默认值,所以我希望最后一个位置为零。无论如何,这似乎不是这种行为,所以我只是按顺序排列了可能的匹配项,并且它起作用了。

编辑:作为最后一点,我看到原始帖子中的示例具有按字母顺序排列的字母,但我想如果发生错误并且字母 A、B 和 C 只是示例,实际用例可能会有所不同.

于 2021-01-13T15:11:04.803 回答