2016-06-06 20 views
0

В Excel, как я могу получить формулу, которая добавляет все ячейки только в colume определенных цветов, исключая все остальные. Как??Я хотел бы иметь формулу, которая добавляет все ячейки только в colume определенных цветов, исключая все остальные. Как?

+0

С знаком '+'? Например, если нужные ячейки равны a1, a3 и a10, тогда выполните '= a1 + a3 + a10'. – findwindow

+1

Вы не можете с формулой, так что вместо чего разные цвета? Установлено ли это условным форматированием? Затем используйте то, что заставляет цвета менять то, что вы используете в формуле, чтобы получить правильные ячейки. –

+0

Для этого вам понадобится UDF, потому что все формулы Excel «слепы» к цветам ячеек. – Ralph

ответ

0

Вы должны использовать UDF, как указано Ральфом. Вот как его использовать и его код: Открыть рабочий лист Нажмите ALT + F11, чтобы открыть редактор VBA и перейти в «Вставить»> «Модуль». Вставить функцию "SumByColor" в редакторе:

Function SumByColor(CellColor As Range, rRange As Range) 
Dim cSum As Long 
Dim ColIndex As Integer 
ColIndex = CellColor.Interior.ColorIndex 
For Each c1 in rRange 
If c1.Interior.ColorIndex = ColorIndex Then 
cSum = WorksheetFunction.SUM(c1, cSum) 
End If 
Next c1 
SumByColor = cSum 
End Function 

Теперь вы вводите в функции клеток SumByColor таким образом = SumByColor (cell_with_background_color_that_you_wish_sum, Range_to_be_summed_up)

0

Там нет формулы, чтобы вы цвет ячейки, но вы действительно можете извлечь цвет ячейки, двумя способами.


Во-первых, с парой пользовательских функций

Function BackgroundColor(MyCell As Range) 
    BackgroundColor = MyCell.Interior.ColorIndex 
End Function 

Function TextColor(MyCell As Range) 
    TextColor = MyCell.Font.Color 
End Function 

и используя их таким образом

=TEXTCOLOR(A1) 
=BACKGROUNDCOLOR(A1) 

Во-вторых, со старым и устаревшим get.cell функцию, к сожалению, не может вызывается непосредственно, но через именованный диапазон.

Таким образом, создать именованный диапазон, вызовите его TextColor и установите его значение для обозначения GET.CELL(43,INDIRECT("rc",FALSE))

так что теперь, вы просто скопировать полный столбец (так что вы берете цвет с вами) и заменить содержимое каждая ячейка со ссылкой на этот именованный диапазон =TEXTCOLOR.


когда у вас есть все цвета, извлеченные в виде чисел, то вы можете использовать их в своих countif или sumif формул.