我有一個 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: