Вот оно (при условии, что данные в столбце A)
=VALUE(LEFT(RIGHT(A1,LEN(A1) - FIND("gi|",A1) - 2),
FIND("|",RIGHT(A1,LEN(A1) - FIND("gi|",A1) - 2)) -1 ))
Не самая хорошая формула, но она будет работать для извлечения числа.
Я только что заметил, так как у вас есть два значения в строке с выводом, разделенным запятыми. Вам нужно будет проверить, есть ли второе совпадение, третье совпадение и т. Д., Чтобы оно работало для нескольких номеров на ячейку.
В отношении вашего точного образца (при условии, что максимум 2 значения на ячейку) будет работать следующий код:
=IF(ISNUMBER(FIND("gi|",$A1,FIND("gi|", $A1)+1)),CONCATENATE(LEFT(RIGHT($A1,LEN($A1)
- FIND("gi|",$A1) - 2),FIND("|",RIGHT($A1,LEN($A1) - FIND("gi|",$A1) - 2)) -1 ),
", ",LEFT(RIGHT($A1,LEN($A1) - FIND("gi|",$A1,FIND("gi|", $A1)+1)
- 2),FIND("|",RIGHT($A1,LEN($A1) - FIND("gi|",$A1,FIND("gi|", $A1)+1) - 2))
-1 )),LEFT(RIGHT($A1,LEN($A1) - FIND("gi|",$A1) - 2),
FIND("|",RIGHT($A1,LEN($A1) - FIND("gi|",$A1) - 2)) -1 ))
Как это уродливо? Решение VBA может быть лучше для вас, но я оставлю это здесь для вас.
Чтобы набрать до 5 чисел, изучите шаблон и повторите процедуру вручную в формуле. ЭТО будет долго!