我有一个公式,检查单元格是否以文本"A“开头,返回拾取"B”表示Collect,C表示预付费。
但它似乎不能正常工作
A和C都会返回预付费...
=LOOKUP(LEFT(A1),{"A","B","C"},{"Pick Up","Collect","Prepaid"})
发布于 2013-07-24 22:31:10
我不确定lookup是不是正确的公式,因为有多个参数。也许是hlookup或vlookup,但这些都需要有表来表示值。一个简单的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的用法,您的参数没有指定字符数,而是指定了一个集。
7/8/15 -有关上述功能的Microsoft知识库文章。我不认为techonthenet
有任何问题,但我更愿意链接到官方来源。
发布于 2020-10-14 21:13:27
从Excel 2019开始,您可以做到这一点。结尾处的"Error“是默认值。
SWITCH(LEFT(A1,1), "A", "Pick Up", "B", "Collect", "C", "Prepaid", "Error")
发布于 2021-01-13 15:11:05
我知道这是一个非常古老的帖子,但我是在寻找相同问题的解决方案时发现的。我不想要嵌套的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只是示例,则实际用例可能会有所不同。
https://stackoverflow.com/questions/17845639
复制相似问题