#regex #google-sheets #excel-formula #google-sheets-formula
#регулярное выражение #google-sheets #excel-формула #google-таблицы-формула
Вопрос:
AL-CHE-P1-1518 --- 270
AL-CHE-P2-1318 --- 280
AL-MAT-P1-1218 --- 280
AL-MAT-P4-0918 --- 40
все эти данные находятся внутри одной ячейки C2, моя цель — вывести формулу для суммирования
270 280 280 40
в ячейке D2
пробовал regextract(c2,"d(.*)n")
, но извлекается только первое «270», мне нужна помощь, поискал по всем форумам, не смог получить точное совпадение, это сэкономит мне огромное время, если кто-нибудь сможет дать мне подсказку о том, как вывести сумму внутри одной строки ячейки
Комментарии:
1. вы хотите, чтобы это было в таблицах Google?
Ответ №1:
Насколько я знаю, вы можете выполнить это только с помощью UDF:
Function ReturnSum(rng As Range) As Long
Dim arr As Variant
arr = Split(rng.Value, Chr(10) amp; Chr(10))
For i = 0 To UBound(arr)
ReturnSum = ReturnSum Trim(Split(arr(i), " --- ")(1))
Next i
End Function
Комментарии:
1. Хотите поспорить, что единственный способ — UDF в Excel?
Ответ №2:
Ответ №3:
В Excel формула немного сложнее и представляет собой формулу массива:
=SUM(IFERROR(--MID(TRIM(MID(SUBSTITUTE(A1,CHAR(10),REPT(" ",99)),(ROW($XFD$1:INDEX(XFD:XFD,LEN(A1)-LEN(SUBSTITUTE(A1,CHAR(10),"")) 1))-1)*99 1,99)),FIND("---",TRIM(MID(SUBSTITUTE(A1,CHAR(10),REPT(" ",99)),(ROW($XFD$1:INDEX(XFD:XFD,LEN(A1)-LEN(SUBSTITUTE(A1,CHAR(10),"")) 1))-1)*99 1,99))) 3,99),0))
Будучи формулой массива, она должна быть подтверждена с помощью Ctrl-Shift-Enter вместо Enter при выходе из режима редактирования.
Комментарии:
1. И снова черная магия… Я полагаю, что вокруг очень мало людей, которые могут написать формулу для достижения этого!