我有一张 Excel 表,其中包含一个具有以下内容的单元格:
Text1: "abc" linebreak1
....
Text31: "mno" linebreak31
Text 32: ... linebreak32
...
Text50: "xyz" linebreak50
不,我将读出“mno”,它位于 excel 单元格中的换行符 31 之前。我用十六进制编辑器打开了我的 excel 文件,注意到“Text31”行中“o”后面的换行符,
并使用了以下公式:
MID(CELL,FIND("Text31: ",CELL),FIND("Text31: ",CELL)-
FIND(CHAR(13)&CHAR(10),CELL))
但实际上并没有起作用。它返回了以下两行(空白行和“Text32:”行)。
我不知道如何才能恢复第 31 行换行符左侧的文本。我怎样才能获取此文本?
答案1
如果您只是想提取mno
,这应该可行。请注意,这B3
是文本。
编辑公式稍微有错误,以下是更正:
=LEFT(MID(B3,FIND("Text31: """,B3)+LEN("Text31: """),LEN(B3)-FIND("Text31: """,B3)-LEN("Text31: """)),FIND("""",MID(B3,FIND("Text31: """,B3)+LEN("Text31: """),LEN(B3)-FIND("Text31: """,B3)-LEN("Text31: """)))-1)
编辑 2:由于这有点令人困惑,下面是我得出公式的方法。我把所有东西分成步骤/部分,并将它们放入各自的单元格中。继续这样做,直到得到正确的结果。我能够从中构建完整的公式。
以下是我分解的方法,您应该能够将其直接复制并粘贴到 excel 中。将原始文本放在 B3 中,然后将以下内容粘贴在其下方(在 B4-B11 中):
="Text31: """
=FIND(B4,B3)
=LEN(B4)
=LEN(B3)-B5-B6
=MID(B3,B5+B6,B7)
=FIND("""",B8)
=LEFT(B8,B9-1)
以下是我的描述,您可以将其粘贴到 A4-A11 中,以帮助您弄清楚您到底在看什么:
Text Prior to 'mno' :
Start position of Prior Text:
Length of Prior Text:
Length of Original Text - Prior Text - Length of Prior Text:
Remaining Text:
Distance to next ":
Result: