Попробуйте следующее
=AG2 & "-" & D2 & IF(F2=0; ""; IF(AND(IFERROR(FIND("XL"; UPPER(F2)); FALSE); ISNUMBER(VALUE(TRIM(SUBSTITUTE(UPPER(F2); "XL"; ""))))); REPT("X"; VALUE(TRIM(SUBSTITUTE(UPPER(F2); "XL"; ""))))&"L"; F2))
Чтобы разбить это на части, мы можем взглянуть на это кусками.Первая часть очевидна
AG2 & "-" & D2
Принимает значения из ячеек AG2
и D2
и объединяет их с разделителем -
.
Следующая часть производит вывод из ячейкиF2
IF(F2=0; ";
Этот тест проверяет, равна ли ячейка F2
0
, и возвращает ли пустую строку.Следующее условие, которое мы проверяем, если F2
содержит XL
, и если да, то есть ли также число в ячейке.
IFERROR(FIND("XL"; UPPER(F2)); FALSE)
Проверяет, имеет ли F2
"XL"
в значении
ISNUMBER(VALUE(TRIM(SUBSTITUTE(UPPER(F2); "XL"; ""))))
Проверяет, есть ли включенное число. Если оба вышеуказанных условия возвращают True
, тогда формула повторяет букву "X"
количество раз числа в ячейке F2
и объединяет егос "L"
в конце
REPT("X"; VALUE(TRIM(SUBSTITUTE(UPPER(F2); "XL"; ""))))&"L"
например, это преобразует
2xl -> XXL
3xl -> XXXL
4xl -> XXXXL
5xl -> XXXXXL
6XL -> XXXXXXL
7XL -> XXXXXXXL
etc.
Для чего-либо еще (например, ""
, S
, M
, L
, XL
, XXL
и т. Д.) Он вернет эти значения без изменений.Это должно охватывать все ваши примеры выше и больше (при необходимости)