首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从多行字符串(如键值字符串)中提取文本。

从多行字符串(如键值字符串)中提取文本。
EN

Stack Overflow用户
提问于 2017-03-02 14:36:48
回答 3查看 264关注 0票数 2

我在Excel中有一个单元格文本,如下所示

单元A1:

代码语言:javascript
运行
复制
Key1: Value1
Key2: Value2
 Key3: Value3
 Key Name4: Value4
Key5: Value5

现在我想提取Value4,因为我知道它的关键是Key Name4,有使用Key Name4公式的建议吗?

PS:在我感兴趣的钥匙前有一个空格。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-03-02 14:48:40

下面是另一种不区分大小写的搜索方法:

代码语言:javascript
运行
复制
=TRIM(MID(A1,SEARCH(B2,A1)+LEN(B2)+1,IFERROR(FIND(CHAR(10),A1,SEARCH(B2,A1))-SEARCH(B2,A1)-LEN(B2),LEN(A1))))

票数 3
EN

Stack Overflow用户

发布于 2017-03-02 14:48:55

使用A1中的数据,在B1中输入:

代码语言:javascript
运行
复制
=LEFT(MID(A1,FIND("Key Name4: ",A1)+10,9999),FIND("Key5",MID(A1,FIND("Key Name4: ",A1)+10,9999))-1)

票数 2
EN

Stack Overflow用户

发布于 2017-03-02 15:09:47

这就是我的VBA解决方案的工作方式:

这就是守则:

代码语言:javascript
运行
复制
Option Explicit

Public Function TakeMeAValue(rngRange As Range, lngCounter As Long)

    Application.Volatile
    Dim lngStart        As Long
    Dim lngEnd          As Long
    Dim strWord         As String: strWord = "Key"
    Dim strWordToSearch As String

    On Error GoTo TakeMeAValue_Error

    strWordToSearch = CStr(strWord & lngCounter & ":")
    lngStart = InStr(1, rngRange, strWordToSearch) + Len(strWordToSearch)
    lngEnd = InStr(lngStart, rngRange, strWord & lngCounter + 1)

    If lngEnd = 0 Then
        lngEnd = Len(rngRange) + 1
    End If

    TakeMeAValue = Trim(Mid(rngRange, lngStart, (lngEnd - lngStart)))

    Exit Function

TakeMeAValue_Error:
    TakeMeAValue = err.Description

End Function
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42558270

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档