Страницы: 1
RSS
Разделить 2 или 3 значения, записанные через слэш
 
Добрый день, уважаемые гуру excel, помогите пожалуйста подобрать формулу. у меня есть значение 50/20/30 и формулой "если" в три колонки разносятся сведения в виде процентов, для того чтобы менять эту процентовку, нужно дорабатывать формулу. а можно найти формулу, которая будет срабатывать при всех вариантах? например 80/20 или 70/25/5 - не написала, общее количество 100%
спасибо!
 
добрый
вариант
 
Код
D6        =ПСТР($C6;1;ЕСЛИОШИБКА(НАЙТИ("/";C6;1);ДЛСТР(C6)+1)-1)
E6        =ПСТР($C6;ЕСЛИОШИБКА(НАЙТИ("/";C6;1);ДЛСТР(C6)+1)+1;ЕСЛИОШИБКА(НАЙТИ("/";C6;ЕСЛИОШИБКА(НАЙТИ("/";C6;1);ДЛСТР(C6)+1)+1);ДЛСТР(C6)+1)-ЕСЛИОШИБКА(НАЙТИ("/";C6;1);ДЛСТР(C6)+1)-1)
F6        =ПСТР(C6;ЕСЛИОШИБКА(НАЙТИ("/";C6;ЕСЛИОШИБКА(НАЙТИ("/";C6;1);ДЛСТР(C6)+1)+1);ДЛСТР(C6)+1)+1;ДЛСТР(C6))

 
волшебно! спасибо!!! огромное спасибо!
 
первая часть =ЛЕВСИМВ(A3; ПОИСК("/";A3;1)-1)
вторая часть =ЕСЛИОШИБКА(ПСТР(A3; ПОИСК("/";A3) + 1; ПОИСК("/";A3;ПОИСК("/";A3)+1) - ПОИСК("/";A3) - 1); ПРАВСИМВ(A3;ДЛСТР(A3) - ПОИСК("/"; A3)))
третья часть =ЕСЛИОШИБКА(ПРАВСИМВ(A3;ДЛСТР(A3) - ПОИСК("/"; A3; ПОИСК("/"; A3) + 1));"")

mechanix 85, красиво, но 5/20/75, например, работать не будет.
Изменено: tutochkin - 08.12.2021 14:23:20
 
МатросНаЗебре, я вас не поняла, извините, и спасибо за ответ.
mechanix 85 - спасибо, мне подходит, большое вам спасибо!
 
Цитата
stfio написал: например 80/20 или 70/25/5
Это надо в примере показывать

=ЛЕВБ(C6;ПОИСК("/";C6)-1)/100
=1-(D6+F6)
=ПОДСТАВИТЬ(ПРАВБ(C6;2);"/";)/100

Сработают и при таком варианте: 5/95, но без квартальных радостей.
 
Цитата
tutochkin написал: расиво, но 5/20/75, например, работать не будет.
делал согласно примера
 
Цитата
vikttur написал:
Это надо в примере показывать
Цитата
stfio написал:
например 80/20 или 70/25/5 - не написала, общее количество 100%
 
все, что поняла, попробую - большое вам спасибо!!! умнички!
 
tutochkin, я о примере упоминал, а не об описании.
 
vikttur, да я то что, я бы вообще пользовался макросом и не парил мозг...
Код
Function Substring(Txt, Delimiter, n) As String
' Txt - адрес ячейки с текстом, который делим
' Delimeter - символ-разделитель (пробел, запятая и т.д.)
' n - порядковый номер извлекаемого фрагмента
Txt = Application.WorksheetFunction.Trim(Txt)
Dim x As Variant
    x = Split(Txt, Delimiter)
    If n > 0 And n - 1 <= UBound(x) Then
        Substring = x(n - 1)
    Else
        Substring = ""
    End If
End Function


Код
=Substring($Q4;"/";1) - так мне проще вызвать разделение
 
tutochkin, тут еще та парилка для мозга :)

stfio, непонятно, где размещать значения, если из только два... А если одно (100%)? Например, только годовые премии...
В общем, какой пример, такие и решения.
 
vikttur, у нас бывают и такие виды оплат - 100, 80/20 и три варианта. формула mechanix 85 мне отлично подходит, большое спасибо! спасибо всем!
 
Вот это
Цитата
у нас бывают и такие виды оплат - 100, 80/20 и три варианта
надо было написать в первом сообщении, дополнив его "...всего 100%"

100% - это понятно, а
Цитата
например 80/20 или 70/25/5
можно понять. как угодно: 5/95, 5/20/75, 0/100...

Нужно четче описывать задачу, тогда и решение получите быстро и правильное, и не будете парить мозги другим :)
 
Эх, vikttur... если б я могла пользоваться своими мозгами так, как вы просите. спасибо вам, что разрешаете пользоваться вашими решениями - просто супер какие классные решения вы находите. спасибо!
 
Цитата
stfio написал:
какие классные решения вы находите
Вы удивитесь, но это шаблонные задачки... Только на этой неделе пара человек одинаковые вещи спрашивали. Может немного в разной трактовке.
Присмотритесь к макросу - он позволяет и, например 2/10/18/10/3/10/17/10/19/1 обработать без напряга меняя только одну цифирку при запросе (вроде в сумме 100 ... )
 
=ЕСЛИ(C6=100;1;ЛЕВБ(C6;ПОИСК("/";C6)-1)/100)
=1-(D6+F6)
=ЕСЛИ(ДЛСТР(C6)-ДЛСТР(ПОДСТАВИТЬ(C6;"/";))=2;ПОДСТАВИТЬ(ПРАВБ(C6;2);"/";)/100;)

Только не говорите, что может быть вариант 0,05/90,1/9,85 )
 
vikttur, спасибо! нет-нет, такого варианта не будет! спасибо ВАМ!
Страницы: 1
Наверх