Страницы: 1
RSS
УФ для выделения ячеек, где формулы заменены суммами вручную
 
Дано: большая таблица с формулами,в которой время от времени необходимо в некоторых ячейках проставлять суммы вручную.
Прошу помощи, как с помощью условного форматирования выделять ячейки,в которых формулы были заменены константами.
Изменено: Nick - 06.02.2015 01:32:00
 
Условное форматирование - это что, название для темы? Это всего лишь один из инструментов Excel. Предложите нормальное название.
 
Используйте функцию ЕФОРМУЛА
 
удивительно, как люди, знающие лишь последнюю версию, берутся давать советы :)
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Nick, Не верю, что Вы не умеете формулировать мысли... Название поменял.

Решение с помощью макрофункции (макросы разрешить).
=НЕ(ПОЛУЧИТЬ.ЯЧЕЙКУ(48;Лист1!C16))
 
Всем спасибо за помощь и за нравоучения  :D
 
Цитата
ikki пишет: удивительно, как люди, знающие лишь последнюю версию, берутся давать советы
Судя по порядку комментариев, это мне. Да вы, батенька, экстрасенс, однако. А в старых версиях ее не создать, не? Свой же совет перечитайте: http://www.planetaexcel.ru/techniques/11/107/#275
Последние три года Lotus изучаете?
 
Цитата
r_v_v пишет: Последние три года Lotus изучаете?
Поаккуратнее с утверждениями и агрессией. Вы дали совет, без раскрытия сути. ЕФОРМУЛА только в 2013 появилась. В 2010 и ранее её еще нет. Поэтому раз дали совет - так и нюансы раскрывайте. Иначе заставляете людей искать то, чего у них нет. Вот Вы дали ответ. Человек с 2010 Excel идет и ищет ЕФОРМУЛА. Обыскал все - нету и все тут. Что он первым делом подумает? Верно. Что Вы ни фига не знаете. И отчасти будет прав. Т.к. Вы дали очень ужатый ответ, который учитывает одну конкретную версию Excel, которую Вы указать поленились. Ту ссылку, которую Вы дали во втором сообщении по идее надо было дать в первом, чтобы у человека было понимание, где эту формулу можно искать.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
r_v_v пишет: А в старых версиях ее не создать, не?
Так создали бы и показали. Вы же этого не сделали.
 
Цитата
r_v_v пишет: в старых версиях ее не создать, не?
приведите код.
или дайте ссылку.
и учтите, что многие новички не в курсе, что для работы UDF надо разрешать макросы.
а также то, что не везде это возможно.

тогда ответ будет полным.
делов-то.
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Не ругайтесь,тема этого не стоит. ;)
 
Цитата
The_Prist пишет: Что он первым делом подумает?
лично меня другое волнует - что он подумает вторым делом.
процентов на 90+ - что и сам форум плохой, раз на нём такие плохие помогальщики.
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Я на форуме (да и в Экселе) новичок, поэтому в дискуссию об этике вдаваться не буду  :)

Код
Function ЭТО_ФОРМУЛА(Ячейка As Range) As Boolean
   With Ячейка
    If .Count > 1 Then
     ЭТО_ФОРМУЛА = .Cells(1, 1).HasFormula
    Else
     ЭТО_ФОРМУЛА = .HasFormula
    End If
   End With
End Function
 
Вот такая простенькая функция способна заменить вышеупомянутую функцию из 2013 версии. При передаче в качестве аргумента не одной ячейки, а диапазона, она вернет данные для верхней левой ячейки. И да, макросы необходимо будет включить в настройках Центра управления безопасностью
 
Цитата
МВТ пишет: При передаче в качестве аргумента не одной ячейки, а диапазона, она вернет данные для верхней левой ячейки.
я бы сказал - нелогично.
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
ikki, возможно Вы правы, но что тогда считать более логичным для данной функции? Можно, чтобы при передаче ей диапазона ячеек,она возвращала #ссылка.
Код
Function ЭТО_ФОРМУЛА(Ячейка As Range) As Variant
   With Ячейка
    If .Count > 1 Then
     ЭТО_ФОРМУЛА = CVErr(xlErrRef)
     '.Cells(1, 1).HasFormula
    Else
     ЭТО_ФОРМУЛА = .HasFormula
    End If
   End With
End Function
А какие идеи у Вас?
 
имхо (подчёркиваю!) интересным с практической точки зрения был бы вариант, когда ЕФОРМУЛА для диапазона возвращает ИСТИНА только в том случае, когда каждая ячейка этого диапазона содержит формулу.
возможная модификация (возможно, даже определяемая вторым параметром функции) - считать ли "не формулами" абсолютно пустые ячейки.

реализуется всё это довольно легко. я писать не буду. но - может быть, кто-нибудь вышел бы на эту тему через поиск и использовал.
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
ikki, согласен, это вполне интересный вариант. Тогда так

Код
 Function ЭТО_ФОРМУЛА(Ячейка As Range, Optional СчитатьПустые As Boolean) As Boolean
    Dim AllOk As Boolean
    If Ячейка.Count = 1 Then
     AllOk = Ячейка.HasFormula
    Else
     AllOk = True
     For Each C In Ячейка
      If Not C.HasFormula Then
       If Not ((C.Value = "") And СчитатьПустые) Then
        AllOk = False
        Exit For
       End If
      End If
     Next C
    End If
  ЭТО_ФОРМУЛА = AllOk
End Function
Если СчитатьПустые = Истина, то пустая ячейка считается, как с формулой
Изменено: МВТ - 06.02.2015 21:32:06
Страницы: 1
Наверх