Извлечение нескольких вхождений текста внутри знака $ в одной ячейке - PullRequest
0 голосов
/ 17 мая 2019

У меня есть файл, в котором данные содержат несколько ссылок на переменные в ячейке, где переменные (например, XXXXX) заключены в знаки $, такие как $ XXXXX $. Значение ячейки выглядит примерно так:

Пример:

This is a requirement for $XXXXX$ where in data is fetched from $YYYYYY$ and needs to be placed under $ZZZZZ$

Ожидаемый результат:

XXXXXX
YYYYYY
ZZZZZZ

Я пробовал использовать функции Excel MID и FIND, но был открыт для решения VBA.

N / A * +1011 *

Ответы [ 3 ]

0 голосов
/ 18 мая 2019

Если вы используете Excel 2016 или более позднюю версию или Office365, то для этого вы можете использовать функцию TEXTJOIN :

=TEXTJOIN(CHAR(10),TRUE,INDEX(TRIM(MID(SUBSTITUTE($D2,"$",REPT(" ",LEN(D2))),LEN($D2)*(ROW($1:$30)*2-1)+1,LEN($D2))),))
0 голосов
/ 18 мая 2019

Если ваши данные, например, A10, вы можете использовать это (Excel 2013 +):

=IFERROR(SUBSTITUTE(INDEX(FILTERXML("<t><s>" & SUBSTITUTE($A$10," ","</s><s>")& "</s></t>","//s[starts-with(text(),'$')]"),ROWS($1:1)),"$",""),"")

и заполнять, пока не будут возвращены пробелы.

enter image description here

0 голосов
/ 17 мая 2019

Я могу выглядеть сложно, но это решило мою проблему.Теперь эта формула может обрабатывать до 25 переменных в Excel.

=IFERROR(MID($D2,FIND("{{{",SUBSTITUTE($D2,"$","{{{",1)),1+FIND("}}}",SUBSTITUTE($D2,"$","}}}",2))-FIND("{{{",SUBSTITUTE($D2,"$","{{{",1))),"") &CHAR(10)&IFERROR(MID($D2,FIND("{{{",SUBSTITUTE($D2,"$","{{{",3)),1+FIND("}}}",SUBSTITUTE($D2,"$","}}}",4))-FIND("{{{",SUBSTITUTE($D2,"$","{{{",3))),"") &CHAR(10)&IFERROR(MID($D2,FIND("{{{",SUBSTITUTE($D2,"$","{{{",5)),1+FIND("}}}",SUBSTITUTE($D2,"$","}}}",6))-FIND("{{{",SUBSTITUTE($D2,"$","{{{",5))),"") &CHAR(10)&IFERROR(MID($D2,FIND("{{{",SUBSTITUTE($D2,"$","{{{",7)),1+FIND("}}}",SUBSTITUTE($D2,"$","}}}",8))-FIND("{{{",SUBSTITUTE($D2,"$","{{{",7))),"") &CHAR(10)&IFERROR(MID($D2,FIND("{{{",SUBSTITUTE($D2,"$","{{{",9)),1+FIND("}}}",SUBSTITUTE($D2,"$","}}}",10))-FIND("{{{",SUBSTITUTE($D2,"$","{{{",9))),"") &CHAR(10)&IFERROR(MID($D2,FIND("{{{",SUBSTITUTE($D2,"$","{{{",11)),1+FIND("}}}",SUBSTITUTE($D2,"$","}}}",12))-FIND("{{{",SUBSTITUTE($D2,"$","{{{",11))),"") &CHAR(10)&IFERROR(MID($D2,FIND("{{{",SUBSTITUTE($D2,"$","{{{",13)),1+FIND("}}}",SUBSTITUTE($D2,"$","}}}",14))-FIND("{{{",SUBSTITUTE($D2,"$","{{{",13))),"") &CHAR(10)&IFERROR(MID($D2,FIND("{{{",SUBSTITUTE($D2,"$","{{{",15)),1+FIND("}}}",SUBSTITUTE($D2,"$","}}}",16))-FIND("{{{",SUBSTITUTE($D2,"$","{{{",15))),"") &CHAR(10)&IFERROR(MID($D2,FIND("{{{",SUBSTITUTE($D2,"$","{{{",17)),1+FIND("}}}",SUBSTITUTE($D2,"$","}}}",18))-FIND("{{{",SUBSTITUTE($D2,"$","{{{",17))),"") &CHAR(10)&IFERROR(MID($D2,FIND("{{{",SUBSTITUTE($D2,"$","{{{",19)),1+FIND("}}}",SUBSTITUTE($D2,"$","}}}",20))-FIND("{{{",SUBSTITUTE($D2,"$","{{{",19))),"") &CHAR(10)&IFERROR(MID($D2,FIND("{{{",SUBSTITUTE($D2,"$","{{{",21)),1+FIND("}}}",SUBSTITUTE($D2,"$","}}}",22))-FIND("{{{",SUBSTITUTE($D2,"$","{{{",21))),"") &CHAR(10)&IFERROR(MID($D2,FIND("{{{",SUBSTITUTE($D2,"$","{{{",23)),1+FIND("}}}",SUBSTITUTE($D2,"$","}}}",24))-FIND("{{{",SUBSTITUTE($D2,"$","{{{",23))),"") &CHAR(10)&IFERROR(MID($D2,FIND("{{{",SUBSTITUTE($D2,"$","{{{",25)),1+FIND("}}}",SUBSTITUTE($D2,"$","}}}",26))-FIND("{{{",SUBSTITUTE($D2,"$","{{{",25))),"") &CHAR(10)&IFERROR(MID($D2,FIND("{{{",SUBSTITUTE($D2,"$","{{{",27)),1+FIND("}}}",SUBSTITUTE($D2,"$","}}}",28))-FIND("{{{",SUBSTITUTE($D2,"$","{{{",27))),"") &CHAR(10)&IFERROR(MID($D2,FIND("{{{",SUBSTITUTE($D2,"$","{{{",29)),1+FIND("}}}",SUBSTITUTE($D2,"$","}}}",30))-FIND("{{{",SUBSTITUTE($D2,"$","{{{",29))),"") &CHAR(10)&IFERROR(MID($D2,FIND("{{{",SUBSTITUTE($D2,"$","{{{",31)),1+FIND("}}}",SUBSTITUTE($D2,"$","}}}",32))-FIND("{{{",SUBSTITUTE($D2,"$","{{{",31))),"") &CHAR(10)&IFERROR(MID($D2,FIND("{{{",SUBSTITUTE($D2,"$","{{{",33)),1+FIND("}}}",SUBSTITUTE($D2,"$","}}}",34))-FIND("{{{",SUBSTITUTE($D2,"$","{{{",33))),"") &CHAR(10)&IFERROR(MID($D2,FIND("{{{",SUBSTITUTE($D2,"$","{{{",35)),1+FIND("}}}",SUBSTITUTE($D2,"$","}}}",36))-FIND("{{{",SUBSTITUTE($D2,"$","{{{",35))),"") &CHAR(10)&IFERROR(MID($D2,FIND("{{{",SUBSTITUTE($D2,"$","{{{",37)),1+FIND("}}}",SUBSTITUTE($D2,"$","}}}",38))-FIND("{{{",SUBSTITUTE($D2,"$","{{{",37))),"") &CHAR(10)&IFERROR(MID($D2,FIND("{{{",SUBSTITUTE($D2,"$","{{{",39)),1+FIND("}}}",SUBSTITUTE($D2,"$","}}}",40))-FIND("{{{",SUBSTITUTE($D2,"$","{{{",39))),"") &CHAR(10)&IFERROR(MID($D2,FIND("{{{",SUBSTITUTE($D2,"$","{{{",41)),1+FIND("}}}",SUBSTITUTE($D2,"$","}}}",42))-FIND("{{{",SUBSTITUTE($D2,"$","{{{",41))),"") &CHAR(10)&IFERROR(MID($D2,FIND("{{{",SUBSTITUTE($D2,"$","{{{",43)),1+FIND("}}}",SUBSTITUTE($D2,"$","}}}",44))-FIND(">{{{",SUBSTITUTE($D2,"$","{{{",43))),"") &CHAR(10)&IFERROR(MID($D2,FIND("{{{",SUBSTITUTE($D2,"$","{{{",45)),1+FIND("}}}",SUBSTITUTE($D2,"$","}}}",46))-FIND("{{{",SUBSTITUTE($D2,"$","{{{",45))),"") &CHAR(10)&IFERROR(MID($D2,FIND("{{{",SUBSTITUTE($D2,"$","{{{",47)),1+FIND("}}}",SUBSTITUTE($D2,"$","}}}",48))-FIND("{{{",SUBSTITUTE($D2,"$","{{{",47))),"") &CHAR(10)&IFERROR(MID($D2,FIND("{{{",SUBSTITUTE($D2,"$","{{{",49)),1+FIND("}}}",SUBSTITUTE($D2,"$","}}}",50))-FIND("{{{",SUBSTITUTE($D2,"$","{{{",49))),"")

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...