Страницы: 1
RSS
Счет чисел из текстовой строки по текстовому шаблону
 
Здравствуйте.
Нужна формула что бы каким то образом посчитать данные в текстовых строках типа "1/2/3" по шаблону типа "А/Б/В".
То-есть цифры находящиеся над соответствующей буквой считаются в одну ячейку, над другой буквой в другую ячейку.

Прикладываю пример, суммы просто введены текстом, нужно заменить его на формулы.
Изменено: В - 22.06.2022 16:47:52
 
Цитата
В написал:
посчитать данные
Что Вы имеете в виду, Вам нужно количество этих чисел, или их сумма, а может слэш это означает деление?
 
Цитата
написал:
Цитата
В написал:
посчитать данные
Что Вы имеете в виду, Вам нужно количество этих чисел, или их сумма, а может слэш это означает деление?
Мне кажется по примеру в файле все понятно.
Но ладно напишу еще здесь.

Например:
Код
1/2/3     6/8     9/4    3/5/2
А/Б/В     А/Б     В/А    Б/А/В

Суммируем цифры над буквой А получаем 16.

Суммируем цифры над буквой Б получаем 13.

Суммируем цифры над буквой В получаем 14.

Вот мне нужна формула которая так считает.

 
массивная =SUM(IFERROR(--MID(SUBSTITUTE("/"&$D$5:$F$5;"/";REPT(" ";99));FIND(G$4;"/"&$D$6:$F$6)/2*99;99);))
или обычная
=SUMPRODUCT(--MID(SUBSTITUTE("/"&$D$5:$F$5&"/0";"/";REPT(" ";99));FIND(G$4;"/"&$D$6:$F$6&"/"&G$4)/2*99;99))
но почему A = 31, а не 41? Вот как раз из примера это не понятно.
По вопросам из тем форума, личку не читаю.
 
То что надо, большое спасибо.

31 потому-что я неправильно посчитал.
Изменено: БМВ - 22.06.2022 20:37:41 (Без цитаты смысл не потерян - ведь так?)
 
Цитата
написал:
массивная  =SUM(IFERROR(--MID(SUBSTITUTE("/"&$D$5:$F$5;"/";REPT(" ";99));FIND(G$4;"/"&$D$6:$F$6)/2*99;99))
или обычная
=SUMPRODUCT(--MID(SUBSTITUTE("/"&$D$5:$F$5&"/0";"/";REPT(" ";99));FIND(G$4;"/"&$D$6:$F$6&"/"&G$4)/2*99;99))
но почему A = 31, а не 41? Вот как раз из примера это не понятно.
БМВ, Хелп!
Ваши формулы не считают цифры из подобных ячеек
Код
1/2/3
А/Б/А
Формулы посчитают цифру над А только первый раз.
Я вообще не могу разобраться как работают ваши формулы по этому не могу найти проблему.
Изменено: В - 23.06.2022 11:13:42
 
В, здравствуйте
Можно вот так руками в 4 шага сделать: Сцепка + По столбцам + Транспонировать + СуммЕсли
Скрин и Файл
…или макросом уже тогда
Изменено: Jack Famous - 23.06.2022 11:18:01
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Код
=СУММ(
ФИЛЬТР.XML("<j><i>"&ПОДСТАВИТЬ($D$5&"/"&$E$5&"/"&$F$5;"/";"</i><i>")&"</i></j>";"//i")*
(ФИЛЬТР.XML("<j><i>"&ПОДСТАВИТЬ($D$6&"/"&$E$6&"/"&$F$6;"/";"</i><i>")&"</i></j>";"//i")=G4))
 
Цитата
написал:
Код
    [URL=#]?[/URL]       1  2  3      =СУММ(    ФИЛЬТР.XML(  "<j><i>"  &ПОДСТАВИТЬ($D$5&  "/"  &$E$5&  "/"  &$F$5;  "/"  ;  "</i><i>"  )&  "</i></j>"  ;  "//i"  )*    (ФИЛЬТР.XML(  "<j><i>"  &ПОДСТАВИТЬ($D$6&  "/"  &$E$6&  "/"  &$F$6;  "/"  ;  "</i><i>"  )&  "</i></j>"  ;  "//i"  )=G4))   
 
Тимофеев, работает. Эту формулу я даже понял. Большое спасибо.
 
Цитата
написал:
Код
    [URL=#]?[/URL]       1  2  3      =СУММ(    ФИЛЬТР.XML(  "<j><i>"  &ПОДСТАВИТЬ($D$5&  "/"  &$E$5&  "/"  &$F$5;  "/"  ;  "</i><i>"  )&  "</i></j>"  ;  "//i"  )*    (ФИЛЬТР.XML(  "<j><i>"  &ПОДСТАВИТЬ($D$6&  "/"  &$E$6&  "/"  &$F$6;  "/"  ;  "</i><i>"  )&  "</i></j>"  ;  "//i"  )=G4))   
 
Можно использовать ОБЪЕДЕНИТЬ в этой формуле если версия Excel поддерживает, сильно упрощает масштабирование.
 
=SUM(IFERROR((TRIM(MID(SUBSTITUTE("/"&$D$6:$F$6;"/";REPT(" ";99));{1;2;3}*99;99))=G$4)*MID(SUBSTITUTE("/"&$D$5:$F$5;"/";REPT(" ";99));{1;2;3}*99;99);))
По вопросам из тем форума, личку не читаю.
Страницы: 1
Наверх