Страницы: 1
RSS
Суммирование данных из отфильтрованных ячеек, содержащих двойное значение через разделитель "\"
 
Добрый вечер, уважаемые форумчане.
Возникла потребность внизу умной таблицы (в строке итогов Графика) считать план\факт. Затем возникала потребность в в применении формулы на отфильтрованный другими столбцами диапазон. Кто-нибудь направит в нужно русло идею? Необходимо чтобы формула работала на отфильтрованных ячейках как функции "промежуточные итоги" или "агрегат". Спасибо за помощь.
 
Cм. приложенный пример. Функция пользователя такая:
Код
Function PlanFact(Rng As Range, Optional Delim As String = "\")
' ZVI:2016-08-08 http://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&TID=80616
  Dim a(1 To 2), b, v
  Dim x As Range
  a(1) = 0
  For Each x In Rng
    If Not x.EntireRow.Hidden Then
      v = x.Value
      If VarType(v) = vbString Then
        b = Split(v, Delim)
        a(1) = a(1) + Val(b(0))
        If UBound(b) Then a(2) = a(2) + Val(b(1))
      Else
        a(1) = a(1) + Val(v)
      End If
    End If
  Next
  If a(2) = 0 Then
    PlanFact = a(1)
  Else
    PlanFact = Join(a, Delim)
  End If
End Function
Изменено: ZVI - 11.08.2016 03:20:18
 
Точно - так, как и предполагалось! Огромное спасибо ZVI !
Уважаемый ZVI, если суммирует ячейки у которых вообще не проставлен факт (через "\") - то показывает внизу только одно число сумма плана. Можно ли добавить условие чтобы было 4\0 (показывать нулевое значение факта.
Может кто-нибудь подскажет решение проблемы без макроса - поскольку с файлом работают несколько неопытных пользователей забывающих разрешать макросы ?!
 
Цитата
alexeySV написал: . Можно ли добавить условие чтобы было 4\0
Приложил и такой вариант
Изменено: ZVI - 11.08.2016 03:17:57
 
ZVI, оказалось - что  не обрабатывает значения после запятой в факте (десятичные числа после "\") и это выливается в погрешность. В макросах - ориентируюсь методом "тыка". Если будет возможность - прошу помочь.
Изменено: alexeySV - 09.08.2016 18:49:01
 
В Вашем примере не было дробных чисел. Приложил универсальный вариант, в качестве десятичного разделителя можно использовать как точку, так и запятую
 
Просто огромная благодарность за помощь! :) Вы, волшебник! С формулами промучился неделю - так и не смог применить только к отфильтрованным значениям. Спасибо.
 
Вариант формулой массива (вводитсся одновременном нажатием Контрл Шифт Ентер). Не оптимизировал, просто интересно стало.
=СУММ(--ТЕКСТ(ЛЕВБ(ПОДСТАВИТЬ(ЕСЛИ(ПРОМЕЖУТОЧНЫЕ.ИТОГИ(3;СМЕЩ($C1;СТРОКА(D3:D11)-1;));ПОДСТАВИТЬ(D3:D11;".";",");)&"\0\";"\";"         ");9);"Основной;0;0;\0"))&"\"&СУММ(--ТЕКСТ(ПСТР(ПОДСТАВИТЬ(ЕСЛИ(ПРОМЕЖУТОЧНЫЕ.ИТОГИ(3;СМЕЩ($C1;СТРОКА(D3:D11)-1;));ПОДСТАВИТЬ(D3:D11;".";",");)&"\0\";"\";"         ");9;9);"Основной;;0;\0"))
Изменено: _Boroda_ - 11.08.2016 16:43:14
Скажи мне, кудесник, любимец ба’гов...
 
Спасибо, попробую разобраться!
 
Вопрос не по теме, но все же может кто подскажет: уважаемый _Boroda_ предложил интересное решение поставленного вопроса через формулу, захотел переделать формулу чтобы она не суммировала , а просто считала количество случаев (план\факт, либо план\0, либо 0\факт) - не получается (путем замены СУММ на СЧЕТЗ)! В чем не прав?
 
Надо форматом играть, а не функцией:
=СУММ(--ТЕКСТ(ЛЕВБ(ПОДСТАВИТЬ(ЕСЛИ(ПРОМЕЖУТОЧНЫЕ.ИТОГИ(3;СМЕЩ($C1;СТРОКА(D3:D11)-1;));ПОДСТАВИТЬ(D3:D11;".";",");)&"\0";"";"         ");9);"1;1;0;\0"))&""&СУММ(--ТЕКСТ(ПСТР(ПОДСТАВИТЬ(ЕСЛИ(ПРОМЕЖУТОЧНЫЕ.ИТОГИ(3;СМЕЩ($C1;СТРОКА(D3:D11)-1;));ПОДСТАВИТЬ(D3:D11;".";",");)&"\0";"";"         ");9;9);"1;;0;\0"))
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Добрый вечер, уважаемый The_Prist.
Попробовал вставку формулы в таблицу - выдает "00" и не считает количество план\факт. Поправил в сцеплении двух функций пропущенный знак "\"...но результат не изменился... Не совсем понял как должен был отработать формат - подскажите где прочитать, чтобы играть с пониманием. Пока формула не работает..
 
У меня в приложенном примере работает формула, которую я и приложил. Что и почему не работает у Вас - я не знаю...
Вот файл - в нем все посчиталось как надо.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Да, действительно у Вас работает. Приношу извинения и большое спасибо.
Я вставил дополнительную колонку в своем файле и не придал значения.
Можно попросить объяснить, что  вызывает смена формата (с основного на 1)?
Страницы: 1
Читают тему
Наверх