Знаю, что тупо, но ничего умнее пока придумать не могу В ячейке B2 такой "текст": 41 38 22 15 21 74 14 42 62 45 67 51 6 47 4 76 36 35 50 63 Хочется получить из него виртуальную строку с числами, а затем, к примеру, просуммировать Делаю так (как формула массива): =СУММ(--(ПОДСТАВИТЬ(B2;" ";";"))) получаю #ЗНАЧ! вероятно, вообще не стой стороны зашел, подскажите, пожалуйста, откуда лучше зайти (с какой стороны) чтобы решить эту задачу?
JayBhagavan, с макрофункциями мороки многовато. Проще уж UDF типа такой
Код
Function tt(text As String)
Dim arr: arr = Split(Application.WorksheetFunction.Trim(text))
Dim I As Long
For I = 0 To UBound(arr)
tt = tt + Val(arr(I))
Next
End Function
Формула массива: =СУММ(--(ПСТР(ПОДСТАВИТЬ(" "&A1&ПОВТОР(" 0";40);" ";ПОВТОР(" ";90));СТРОКА(A1:A40)*90;90))) Если первый символ в ячейке пробел, то не цеплять " "&A1...
У меня почему-то работает... Кто первый? Вы за всю тему не протрудились показать пример... На замечание во втором сообщении не отреагировали... Все делать вместо Вас?
посмотрите в файле - там нет пробела в конце формулы в ячейке с формулой - в B2 (если нажать на F2 на этой ячейке и перейти в конец и выделить один символ влево, то будет выделена закрывающая скобка)
Извините, не в той ячейке глянул. Побел последний - в данных (не зря просим показывать свои данные, верно ведь?). Кстати, в тексте, показанном в первом сообщении, последнего пробела нет.
Или убрать этот пробел, или добавить очистку в формулу: =СУММ(--(ПСТР(ПОДСТАВИТЬ(" "&СЖПРОБЕЛЫ(A1)&ПОВТОР(" 0";40);" ";ПОВТОР(" ";90));СТРОКА(A1:A40)*90;90)))
да, заработало! )) а насколько принципиально делать повтор именно 40 и 90 раз? а потом начальную позицию умножать на 90 и брать 90 как количество знаков? можно ли обойтись меньшими числами или надо именно 40 и 90?