如何将带有字母数字值的 excel 单元格中的文本导出到另一列?

How do I export text from an excel cell with alphanumeric values into another column?

我在 B 列中有几个单元格条目。它们看起来类似于:

1050670||Target Optical  4226||6132||7132
1051752||Wal-Mart Vision Ctr  305095||6132||7132
1052470||Wal-Mart Vision Ctr  301891||6132||7132
1054354||Naval Ambulatory Care Ctr||6132||7132

我需要一个只提取包含名称的文本的公式。理想情况下,它只会给我留下:

Target Optical
Wal-Mart Vision Ctr
Wal-Mart Vision Ctr
Naval Ambulatory Care Ctr

非常感谢任何帮助。

如果您的条目之一在 B1 中,请使用公式

=MID(B1,FIND("||",B1)+2,FIND("||",B1,FIND("||",B1)+2)-FIND("||",B1)-2)

根据需要复制和粘贴。小心 relative/absolute 引用。

当然还有其他选项VBA,但是你特意要求了一个公式。

如果您需要“||”之间的后期项目,可以修改我发布的公式,但它可能会变得非常麻烦。 VBA 可以更简单。或者你可以使用

=MID(B1,FIND(CHAR(1),SUBSTITUTE(B1,"|",CHAR(1),(A6-1)*2))+1,FIND(CHAR(1),SUBSTITUTE(B1,"|",CHAR(1),A6*2))-FIND(CHAR(1),SUBSTITUTE(B1,"|",CHAR(1),(A6-1)*2))-2)

也比较麻烦,但是对"any"条号有效(当然有上限,我没测试)。 这是对 here 的改编。 A6 包含您要选择的项目#。在你的例子中,它是 2。如果你输入三个,你的第一行将获得“6132”。必须修改此公式以适合查找第一个或最后一个项目。

EDIT:这些公式不会删除目标字段末尾的数字。我错过了这一点,但我会留下答案,因为它可能对其他读者有用。请参阅 Jeeped 的解决方案。

如果您想忽略文本 pseudo-field 中的数字,则必须仔细分析 split-out 值以查找 ASCII 48-57 中的字符。

B1 中那个丑陋的公式是,

=TRIM(LEFT(MID(A1, FIND("||", A1)+2, FIND("¶", SUBSTITUTE(A1, "||", "¶", 2))-FIND("||", A1)-2)&0, MIN(INDEX(ROW(INDIRECT("1:"&LEN(MID(A1, FIND("||", A1)+2, FIND("¶", SUBSTITUTE(A1, "||", "¶", 2))-FIND("||", A1)-2)&0)))+((CODE(MID((MID(A1, FIND("||", A1)+2, FIND("¶", SUBSTITUTE(A1, "||", "¶", 2))-FIND("||", A1)-2)&0),ROW(INDIRECT("1:"&LEN(MID(A1, FIND("||", A1)+2, FIND("¶", SUBSTITUTE(A1, "||", "¶", 2))-FIND("||", A1)-2)&0))),1))<48)+(CODE(MID(UPPER(MID(A1, FIND("||", A1)+2, FIND("¶", SUBSTITUTE(A1, "||", "¶", 2))-FIND("||", A1)-2)&0),ROW(INDIRECT("1:"&LEN(MID(A1, FIND("||", A1)+2, FIND("¶", SUBSTITUTE(A1, "||", "¶", 2))-FIND("||", A1)-2)&0))),1))>57))*1E+99,,))-1))

根据需要填写。看起来很糟糕,中型数组公式的计算负载会使它相形见绌,但 INDIRECT 确实会使它变得易变,因此获取你的剥离值并复制、粘贴特殊值以删除公式。

如果您愿意,也可以使用以下公式。它使用间接函数

=MID(MID(A1,FIND("||",A1,1)+2,FIND("||",A1,FIND("||",A1,1 )+2)-FIND("||",A1,1)-2),1,IF(ISNUMBER(VALUE(MID(SUBSTITUTE(MID(A1,FIND("||",A1,1)+2, FIND("||",A1,FIND("||",A1,1)+2)-FIND("||",A1,1)-2)," ","¶",LEN(MID( A1,FIND("||",A1,1)+2,FIND("||",A1,FIND("||",A1,1)+2)-FIND("||",A1,1 )-2))-LEN(替换(MID(A1,FIND("||",A1,1)+2,FIND("||",A1,FIND("||",A1,1)+2 )-FIND("||",A1,1)-2)," ",""))),FIND("¶",SUBSTITUTE(MID(A1,FIND("||",A1,1)+ 2,FIND("||",A1,FIND("||",A1,1)+2)-FIND("||",A1,1)-2),"","¶",LEN( MID(A1,FIND("||",A1,1)+2,FIND("||",A1,FIND("||",A1,1)+2)-FIND("||",A1 ,1)-2))-LEN(替代(MID(A1,FIND("||",A1,1)+2,FIND("||",A1,FIND("||",A1,1) +2)-FIND("||",A1,1)-2)," ",""))))+1,50)))=TRUE,FIND("¶",SUBSTITUTE(MID(A1,查找("||",A1,1)+2,查找("||",A1,查找("||",A1,1)+2)-查找("||",A1,1)- 2)," ","¶",LEN(MID(A1,FIND("||",A1,1)+2,FIND("||",A1,FIND("||",A1,1) +2)-FIND("||",A1,1)-2))-LEN(替换(MID(A1,FIND("||",A1,1)+2,FIND("||",A1 ,FIND("||",A1,1)+2)-FIND("||",A1,1)-2)," ",""))))-1,50))