Sumif на основе нескольких критериев и цвета текста - PullRequest
0 голосов
/ 30 октября 2010

Я использую макрос для суммирования значений конкретного должника. В настоящее время он работает нормально, но мне нужно добавить еще один критерий;

Range("DebtorList_Payed")=Application.SumIf(Range("InvoiceList_Table_ItmCode"), _
  Range("Debtor_list_Debtors"), Range("InvoiceList_Price"))

У меня есть другой диапазон на рабочем листе списка счетов, который называется Range ("InvoiceList_Payed"), в этой строке есть "CASH", "CREDIT", "(Custom) CASH" & "(Custom) CREDIT".

Текст в строках "CASH" & "(Custom) CASH" зеленый и текст в строках «КРЕДИТ» & «(Пользовательский) КРЕДИТ» выделен красным

Используя существующий макрос, мне нужно, чтобы он суммировал только те строки, в которых в соответствующем диапазоне («InvoiceList_Payed») цвет текста зеленый,

Так что-то вроде;

Range("DebtorList_Payed")=Application.SumIf(Range("InvoiceList_Table_ItmCode"), _
  Range("Debtor_list_Debtors"), Range("InvoiceList_Price") = _  
  Range("InvoiceList_Payed")> "Green"))

1 Ответ

0 голосов
/ 30 октября 2010

Если вы используете Excel 2007 или более позднюю версию, вы можете использовать функцию SUMIFS, а если вы используете более раннюю версию, вы можете вкладывать функции SUM и IF. Реальная проблема заключается в том, что нет способа получить цвет ячейки из функции рабочего листа. Вы можете использовать функцию CELL («цвет», REF) ЕСЛИ И ТОЛЬКО ЕСЛИ форматирование в ячейках установлено таким образом, что зеленый цвет является положительным, а красный - отрицательным (или наоборот).

Конечно, это было бы легко сделать, используя стандартные функции / свойства VBA, такие как RGB.

Вы также можете просто вызвать слово «НАЛИЧНЫЕ», так как обе строки Грина имеют это общее.

Пример:

SUMIFS(Range("InvoiceList_Payed"), Range("InvoiceList_Table_ItmCode"), _  
  Range("Debtor_list_Debtors"), Range("InvoiceList_Payed"), "*CASH*")
...