Страницы: 1 2 След.
RSS
Формула для заполнения значения если ячейка имеет цвет
 
Добрый день! Прошу помощи, иначе сама уже понять не могу. Есть график, согласно этого графика 15 человек (например) выполняют работу с 1 марта по 10 марта, через условное форматирование сделала чтобы необходимые дни (ячейки) пока люди работают были залиты цветом. Теперь мне нужно чтобы в этих ячейках (залитых цветом) было прописано количество людей работающих. Соответственно в каждой ячейке в течении 10 дней писалось "15". Для того чтобы я в конечном итоге в диаграмме смогла посчитать и увидеть сколько людей работало у меня каждый день.
Я просто не могу придумать формулу, которая бы позволила прочитать цвет(
В екселе понимаю оооочень мало(
Благодарю каждого заранее хоть за малейшую подсказку!
 
Тут
 
skais675, спасибо большое за внимание, но у меня нет необходимости считать количество залитых ячеек. Мне необходимо чтобы ячейка заполнялась мне необходимыми данными(
 
Ну так формула проверит если она закрашена и подставит необходимое значение, как Вы и хотели. Она не считает ячейки, а возвращает текущий цвет, читайте внимательно по ссылке.
 
skais675, Поняла Вас. Только у меня из-за условного форматирования показывает белый цвет, мол ячейка не залита, хотя она имеет свой цвет. И сейчас какую бы формулу (функцию) я не пыталась придумать он ничего не сделает (хотя все мною придуманные формулы выходят ошибкой)..
 
Там нужно поправить на display interior color
 
skais675, а там это где?) в УФ?
 
а зачем вам формула работающая по цвету, пропишите в обычную если ваши условия на основании чего красится график и всеееее
Код
=ЕСЛИ(ИЛИ(И(K$5>=$I6;K$5<=$J6);И(AP$6>=$I6;AP$6<=$J6));$D6;"")
Лень двигатель прогресса, доказано!!!
 
Сергей, т.к. ячейки якобы не имеют цвета по данной формуле ничего не происходит((( Если я правильно понимаю
 
Может так?
 
смотрите  
Лень двигатель прогресса, доказано!!!
 
amfor, Сергей, Ураааааа!! Это прям именно то! Вы волшебники!!! Возможно для Вас это кажется пустяком, а я, просидев какой день за прочтением форумов, скачав разных программ но так и не добившись результата, сейчас просто взлечу от счастья!!!)))) Спасибо Вам!
 
Taasyaaa, хоть Вы и решили Вашу задачу, я все равно отвечу на Ваш вопрос.
Код
Public Function ЦВЕТЗАЛИВКИ(ЯЧЕЙКА As Range) As Double
 ЦВЕТЗАЛИВКИ = ЯЧЕЙКА.DisplayFormat.Interior.Color
End Function
Изменено: skais675 - 15.12.2017 14:07:36
 
Цитата
написал:
а зачем вам формула работающая по цвету, пропишите в обычную если ваши условия на основании чего красится график и всеееееКод ? 1=ЕСЛИ(ИЛИ(И(K$5>=$I6;K$5 =$I6;AP$6<=$J6));$D6;"")
У меня аналогичная задача. Отдельные ячейки с желтой заливкой (8 из 1000 имеющихся) расположены в колонке А. Нужно оставить только желтые. Но эта формула не подошла. Где ошибка?
Изменено: Excaz - 13.12.2025 07:56:03
 
Цитата
Excaz написал: Где ошибка?
Ну, по видимому, где-то в Вашем файле.
Приложите файл-пример (Excel) Как есть - Как надо
Согласие есть продукт при полном непротивлении сторон
 
Цитата
написал:
Ну, по видимому, где-то в Вашем файле.Приложите файл-пример (Excel) Как есть - Как надо
 
Excaz, Здравствуйте. Для вашего примера можно использовать такой макрос.
Код
Sub Ext()
  Dim Cl As Range, N&
  For Each Cl In Range("A1:A15")
    If Cl.Interior.Color = 65535 Then
      N = N + 1
      Cells(N, "D") = Cl
    End If
  Next
End Sub
Если требуется значения копировать с форматами, то вместо
Код
Cells(N, "D") = Cl
нужно записать
Код
Cl.Copy Range("D" & N)
Изменено: Старичок - 13.12.2025 10:41:27
 
Цитата
написал:
Здравствуйте. Для вашего примера можно использовать такой макрос
М-мм... С макросами я не дружу (не умею пользоваться). Формулой никак нельзя?
 
Цитата
написал:
Формулой никак нельзя
Дело в том, что формулы могут работать только с значениями (исключением является функция ЯЧЕЙКА, но у нее очень ограниченный функционал), а заливка это формат. Так что это задача для макроса. И не нужно бояться макросов, в нашей конторе многие сотрудники используют макросы совершенно в них не разбираясь, а кое кто даже и не подозревает, что ими пользуется. Добавил в ваш файл макрос, для запуска нажмите кнопку "Клик".  
Изменено: Старичок - 14.12.2025 10:26:44
 
Предлагаю доработать макрос от Старичок, выбором нужного цвета ячеек, указав на ячейку с нужным цветом.
Код
Sub Ext()
  Dim Cl As Range, N&, Yac_kaCvet
  Set Yac_kaCvet = Application.InputBox("Выберите ячейку с нужным цветом:", "Выбор цвета ячейки", Selection.Address, Type:=8)
    Yac_kaCvet = Yac_kaCvet.Interior.Color
    Range("D:D").ClearContents
  For Each Cl In Range("A1:A" & Cells(1, 1).End(xlDown).Row)
    If Cl.Interior.Color = Yac_kaCvet Then
      N = N + 1
      Cells(N, "D") = Cl
    End If
  Next
End Sub
 
skais675, насколько помню в udf не работает displayformat, только в макросах.
 
Цитата
написал:
Дело в том, что формулы могут работать только с значениями (исключением является функция ЯЧЕЙКА, но у нее очень ограниченный функционал), а заливка это формат.
Благодарю, работает. Если я правильно понял, команда в данном случае (имею ввиду файл Книга2.xls) справляется только с желтой заливкой. Если ячейки других цветов (а в таблицах такое часто бывает), то остальные цвета заливки игнорируются. Смена цветов заливки не предусмотрена?
Изменено: Excaz - 16.12.2025 07:39:50
 
Цитата
написал:
Смена цветов заливки не предусмотрена?
В файле по выбору цвета или без заливки.
Изменено: gling - 16.12.2025 21:10:51
 
Excaz,  это можно решить и полуручным способом
т.е. фильтром или сортировкой по цвету (см вкладку "Данные") с дальнейшим удалением ненужностей...

а полсле
Цитата
Формулой никак нельзя
<с штатными функциями>
тема исчерпана)
 
gling, Добрый вечер. У вас небольшая ошибка в макросе в приложенном файле. Тип переменной Yac_kaCvet не должен быть Range, если выбирать цвет ячейки в той же таблице, то в нее будет записан код цвета. Верните, как было у вас ранее тип Variant.  
 
Цитата
написал:
не должен быть Range,
Точно, я и забыл что далее я эту переменную использую для кода цвета. У меня при отказе от выбора ячейки выскакивала ошибка, и я начал экспериментировать, вставил он еррор и успокоился. Файл в сообщении #23 заменил.
 
В макросе цвет заливки, если я правильно понял (желтый), Interior.Color = 65535. Проверил в Фотошопе, он выдал другой цвет (зеленый). А почему такое несоответствие?
Изменено: Excaz - 17.12.2025 08:36:18
 
Цитата
Excaz написал:
Проверил в Фотошопе
так Вы же вроде не в фотошопе собрались ячейки определять, а в Excel? Значит и коды цветов надо оттуда брать, а не из каких-то других программ.
И обратите внимание - поле в фотошопе, в которое Вы ввели 65536, по умолчанию должно быть шестнадцатеричным. И желтому там соответствует что-то вроде: "#ffff00". А в Excel применяется совсем другая шкала для Color.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
написал:
И желтому там соответствует что-то вроде: "#ffff00".
В справке Excel чо-то не нашел таблицу кодов заливки (типа "#ffff00").
 
Цитата
Excaz написал: чо-то не нашел
Вас не смутило?
Цитата
...должно быть шестнадцатеричным...
Согласие есть продукт при полном непротивлении сторон
Страницы: 1 2 След.
Читают тему
Наверх