Страницы: 1
RSS
Счет значений внутри ячейки с разделителями
 
Добрый день! Подскажите как реализовать счет значений в ячейке с разделителями с помощью функции? Ячейка содержит данные 50 строк, каждая из которых разделяется %, в свою очередь каждая из строк разделяется на 12 значений ;, нужно суммировать каждое 9-ое значение, для всех строки. (выделила зеленым)
Цитата
2370315204043078723;GraphImage;CDlDR6esfxD;5;ЛОЖЬ;1596783613;709;1080;1072;1383225836;[Table];ЛОЖЬ;%
2369892637335567716;GraphImage;CDjjMwkMz1k;9;ЛОЖЬ;1596733239;703;1080;949;1383225836;[Table];ЛОЖЬ;%
Нужно подсчитать для каждой ячейки, и для всей строки, посчитала вручную выделено красным для проверки. Спасибо!
 
Можно поступить проще, вкладка Данные - Текст по столбцам (с разделителем %). После чего скопировать с траспонированием. И повторяем Текст по столбцам, только с разделителем ";" и в нужном столбце поставить сумму
 
Или попробуйте так
 
Посмотрите вариант со вспомогательными ячейками
 
msi2102, да очень круто! спасибо Можно сделать чтобы формула действовала не на одну ячейку на на всю строку или хотя бы диапазон B1:AAA1?

Это бы сильно упростило мне жизнь  :cry:  
Изменено: Алиса - 03.09.2020 19:05:15
 
IKor,Спасибо за помощь, к сожалению ваш вариант не подходит так как этот пример - лишь малая часть рабочей таблицы, сделать также будет практически не возможно в рабочем варианте
 
День добрый!
Написал функцию суммирования по всему диапазону, но есть одна проблема при большом количестве ячеек с такими данными здорово тормозит.  
 
msi2102, Привет!
Такая проблема в некоторых ячейках рабочей таблицы не все заполнены строки
Цитата
phImage;CD68l2SA-ZN;315;ЛОЖЬ;1597518303;1041;1080;30897;4351387781;ЛОЖЬ;%2376357455669100822;GraphVideo;CD6hIP0ggEW;106;ЛОЖЬ;1597503912;640;640;16461;4351387781;ИСТИНА;348969%%%%%%%%%%%2372159772695750685;GraphVideo;CDrmr66AGgd;55;ЛОЖЬ;1597003511;640;640;16459;4351387781;ИСТИНА;351460%2372114472669134234;GraphImage;CDrcYt-Ab2a;60;ЛОЖЬ;1596998102;1096;1080;26184;4351387781;ЛОЖЬ;%2372099391956895684;GraphVideo;CDrY9Q9gsfE;441;ЛОЖЬ;1596996311;640;640;17880;4351387781;ИСТИНА;425471%2371419889215809482;GraphVideo;CDo-dMuASfK;75;ЛОЖЬ;1596915318;640;640;21700;4351387781;ИСТИНА;434458%

Из-за этого Znach_9 не считает ячейку полностью, предыдущая функция твоя regexp_9 с этим справлялась.

Попыталась исправить ситуацию своими силами, но ничего путного из этого не вышло, посмотри пожалуйста
Добавила это
Код
    If Split(aaa(i), ";")(8) = Error Then
    Split(aaa(i), ";")(8) = 0
    End If
Код
Public Function Znach_9(ByRef Text As String) As Long
On Error GoTo ErrHand
Dim zzz As Long

zzz = 0
aaa = Split(Text, "%")
For i = LBound(aaa) To UBound(aaa)
    zzz = zzz + Split(aaa(i), ";")(8)
    If Split(aaa(i), ";")(8) = Error Then
    Split(aaa(i), ";")(8) = 0
    End If
Next
Znach_9 = zzz
Exit Function

ErrHand:
Znach_9 = 0
End Function
 
Попробуйте так
 
msi2102,да спасибо большое!  
 
конечно при дальнейшей работе это не поможет, так как сильно тормозит но пока буду пользоваться этим :D  :D  :D  
 
Вам нужно просто макросом делать, а не функцией, тогда тормозить не будет
 
msi2102, у меня есть некоторые познания в vba, попробую
 
К сожалению в ближайшее время помочь вам не смогу ушел в отпуск, компьютера под рукой не будет
 
Цитата
msi2102 написал:  ушел в отпуск,
Это значит: ушел в отпуск с форума, т.е. пошел на работу :)
 
Вот так было бы
 
Надо купить ноутбук... если кто из завсегдатаев уходит в отпуск и у него нет ноута, выдавать ноут на время отпуска, чтобы человек не покидал форум)
 
Я не покидаю форум, я с телефона захожу, просто уезжаю в санаторий, а там время не будет, сплошные процедуры :-)
 
Цитата
msi2102 написал:
просто уезжаю в санаторий, а там время не будет, сплошные процедуры :-)
Если форум мешает процедурам, значит процедуры нужно отменить!  :D

Периодичность известна че мудрить

=SUMPRODUCT(--RIGHT(SUBSTITUTE(LEFT(B3:C3;FIND("@";SUBSTITUTE(B3:C3;";";"@";(ROW(1:50)-1)*12+9))-1);";";REPT(" ";15);(ROW(1:50)-1)*12+8);15))

Разве что если данные в столбце, то тогда ROW(1:50) надо или транспонировать TRANSPOSE(ROW(1:50)),  или COLUMN(A:AX) использовать.
Изменено: БМВ - 04.09.2020 16:59:16
По вопросам из тем форума, личку не читаю.
 
Я бы с удовольствием, часть процедур отменил, но жена не позволит :-D
 
Off
Цитата
msi2102 написал:
но жена не позволит :-D
Спорят Фурманов и Дзержинский:кого лучше иметь
–жену или любовницу? Фурманов говорит:
–Любовницу.К ней хочешь приходишь,не хочешь не
приходишь.
Дзержинский:
–Жену.Она тебя и накормит и напоит.
В спор вмешивается Ленин:
–Лучше всего иметь и жену ,и любовницу.Жене
сказал,что ушёл к любовнице,любовнице–что
остаёшься с женой,а сам на чердак,и работать,работать,работать!
По вопросам из тем форума, личку не читаю.
 
Пятничный оффтоп. А кто зачинщик? Хранитель порядка )
 
БМВ, Спасибо большое! Прям то что нужно
 
БМВ, по Вашему примеру сделала выборку значений при условии. То есть если нужно только для GraphImage, он считает 9-тые значения только для GraphImage, также и для остальных. Корпоративный файл огромный около 25 000 строк, тут 9 столбцов 225 000 строк........ Это просто ужас, грузилось все очень долго, очень....

Так как здесь было сказано что макрос справляется быстрее в таких случаях, подскажите как сделать простенький макрос чтобы делал тоже самое.  Достаточно 2 макросов, для тотал, тоесть чтобы считал все значения подходящие, и для условий - то есть при выполнении условия., остальные я попробую разобраться и сделать сама, там поменять надо будет пару значений.
 
Алиса, Добрый день, если ещё тема актуальна, то вот вариант макросом, скорость обработки зависит от количества заполненных данных
Изменено: msi2102 - 21.09.2020 13:32:00
 
msi2102, Спасибо большое! К сожалению неактуально
Страницы: 1
Наверх