Есть ли способ извлечь числа из значения Excel при определенных условиях? - PullRequest
0 голосов
/ 23 марта 2020

У меня есть четыре значения:

OT 10    
OT 11 1AT    
1P; OT 12
OT 13; 10P

Используя эту формулу:

=IF(ISNUMBER(SEARCH("OT",C1)),IF(SUM(LEN(C1)-LEN(SUBSTITUTE(C1, {"0","1","2","3","4","5","6","7","8","9"}, "")))>0, SUMPRODUCT(MID(0&C1, LARGE(INDEX(ISNUMBER(--MID(C1,ROW(INDIRECT("$1:$"&LEN(C1))),1))* ROW(INDIRECT("$1:$"&LEN(C1))),0), ROW(INDIRECT("$1:$"&LEN(C1))))+1,1) * 10^ROW(INDIRECT("$1:$"&LEN(C1)))/10),""),)

Я могу преобразовать эти значения в эти значения:

10    
111    
112
1310

Есть ли способ исправить эту формулу так, чтобы она вытягивала только число, смежное с «OT», прямо справа, с ровно одним пробелом между ними? Правильный вывод будет:

10    
11    
12
13

Вывод может быть только числом из двух или трех чисел git, если исходное значение OT 100 2AT, тогда вывод должен быть 100.

Ответы [ 2 ]

2 голосов
/ 23 марта 2020

Возвращается число после OT:

=--SUBSTITUTE(SUBSTITUTE(MID(A4,FIND("OT",A4)+3,FIND(" ",REPLACE(A4&" ",1,FIND("OT",A4)+3,""))),";",""),"/","")

NEST other

enter image description here

0 голосов
/ 23 марта 2020

= ЗАМЕНА (MID (C1, FIND ("OT", C1) +3,3), "", "")

Или в случае, если должно быть только; или / где-то: = ЗАМЕНА (ЗАМЕНА (ЗАМЕНА (MID (C1, НАЙТИ ("OT", C1) +3,3), "", ""), ";", ""), "/", "" )

var src = 'OT 10    |OT 11 1AT    |1P; OT 12|OT 13; 10P|OT 14/ 10P'.split('|');
for(var i=0;i<src.length;i++) {
   var pos = src[i].indexOf('OT');
   console.log("FIND OT (XL) position", pos+1, "MID", src[i].substr(pos+3,3).replace(/;/g,'').replace(/\//g,''));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...