У меня есть таблица Excel, в которой есть ячейка со следующим содержимым:
Text1: "abc" linebreak1
....
Text31: "mno" linebreak31
Text 32: ... linebreak32
...
Text50: "xyz" linebreak50
Нет, я прочитаю «mno», который находится перед переносом строки 31 в ячейке Excel. Я открыл свой файл Excel с помощью шестнадцатеричного редактора и заметил перенос строки после «o» в строке «Text31»
и использовал следующую формулу:
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: