【发布时间】:2013-12-09 17:38:49
【问题描述】:
这个公式适用于我的一些单元格,而不适用于其他单元格,我检查了格式是否不同,但什么也没找到。
我有一个例子
一个显示“Dell Computers 12150 sandy dr portland or 97229”的单元格
我想要的只是获得“戴尔计算机”本身。
我已经尝试了一些方法,对喵喵来说最明显的是:
=LEFT(A1,FIND({1,2,3,4,5,6,7,8,9,0},A1,1)-2)
这对某些人有效,对另一些人则无效(例如,如果地址中有两个 1,它会给我“Dell Computers 1”,将第二个 1 作为值)
也许是一个新手问题,但我在做什么?
【问题讨论】:
-
示例
"Dell Computers 12150 sandy dr portland or 97229"和公式=LEFT(A1,FIND({1,2,3,4,5,6,7,8,9,0},A1,1)-2)在我的电脑中产生了完美的结果,即Dell Computers。我也尝试了其他组合,结果也很好 -
尝试将阵列更改为 {2,1,3,4...} - 问题是它最初是从 2 开始的,它会返回戴尔计算机 1 - 即使我希望它这样做只需找到它出现的第一个数字,它会先搜索 2,然后是 1,然后是 3。我试图避免必须为所有 10 位数字做一个 min(find.... etc。跨度>
-
有效的是
=left(A1,MIN(IFERROR(FIND(1,A1,1),10000),IFERROR(FIND(2,A1,1),10000)......,但必须有更专业的方法来做到这一点。它本质上是在寻找每个单独的数字,取最小的长度值,如果数字不存在,为这个简单的任务分配一个 10k(所以它不会是最小值)。 -
您可以使用自定义函数还是必须是公式?
-
在这种情况下,因为我将它展示给我不希望处于那个舒适区的人我正在寻找一个公式。但如果您有自定义功能,我很乐意看看。
标签: excel find street-address string-length