如何在Excel中提取不同长度文本之间的用户ID?

如何在Excel中提取不同长度文本之间的用户ID?,excel,Excel,我必须只针对不同长度文本中间的用户ID。如果可能的话 场景: 下面是我在A2、B2和C2中的3个不同信息 **A2** | *BZ_PH0102~grahambenjamin.NBSC_BookDelivery_Print.09-01.22:42:06* **B2** | *AS_P24~greenerobert.NBSC_BookDelivery_Print.09-01.23:32:43* **C2** | *AS_P16~chernowron.NBSC_BookDeli

我必须只针对不同长度文本中间的用户ID。如果可能的话

场景:

下面是我在
A2、B2和C2中的3个不同信息

**A2** |  *BZ_PH0102~grahambenjamin.NBSC_BookDelivery_Print.09-01.22:42:06*    
**B2** |  *AS_P24~greenerobert.NBSC_BookDelivery_Print.09-01.23:32:43*    
**C2** |  *AS_P16~chernowron.NBSC_BookDelivery_Print.09-02.02:22:51*
我需要在~之后提取不同的用户ID,并将它们输入
列D

对于上面的示例,它将是:格雷厄姆·本杰明、格林·罗伯特和切尔诺龙

如果长度没有太多变化,那就容易了。现在我只在
D2
中使用
=MID(A2,FIND(“~”,A2)+1,LEN(A2)-41-FIND(“~”,A2)-1)

这个公式可行,但并不完全正确。我只是试着用它做实验,但我找不到合适的

我还尝试了
=LEFT(A4,搜索(“.”,A4)-1)

但只提取

最后,我尝试添加一个右定界,但它不能正常工作

=右(A3,搜索(“~”,A3))&左(A3,搜索(“.”,A3)-1


我非常感谢你的帮助。谢谢

假设您想要第一个第一个
之间的所有,然后



解释
MID(字符串、起始位置、字符数)

你已经知道如何找到起点了。现在,我们想知道从该起点开始向右计数的字符数


从数学上讲,这是周期的位置减去~的位置,然后减去1来抵消周期。该计算给出了我们要提取的字符串的实际长度。所以我们说从这个位置开始,在右边数到x多个字符。

是的,先生!这是正确的!这正是我需要的!你能告诉我这个公式是什么意思吗?这样我就可以在需要的时候重复使用它了。我只知道它会以~为起点,然后以一段时间为终点。
-查找
应该做什么?@AldrinRenzCruz根据您当前的示例,虽然不相关,但如果第一个
~
之前的文本包含一个
(例如
*PI\u 3.14~Urderboy.NBSC\u BookDelivery\u Print.10-05.12:34:56*
),则您可能会收到错误(因为您要求的字符数为负数). 在这种情况下,您需要在第一个
~
之后
查找第一个
,或者
查找(“.”,A22,FIND(“~”,A22))
是的,在我的回答中使用
第一个
非常重要:)@Chronocidal。在这一点上,VBA变得非常理想。我想,在等式中动态地这样做会很漫长
=MID(A22,FIND("~",A22)+1,FIND(".",A22)-FIND("~",A22)-1)