2016-12-06 4 views
1

Я просматриваю пользователей системы и просматриваю, имеют ли они соответствующие имена ролей. Затем я закончил таблицу первенствовать, которая выглядит ABIT так:Раскраска Excel Cell на основе состояния таблицы

Table

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

table 2

Но я не уверен, как выделить ячейки, чтобы отразить «доступ к соответствующему? Да/Нет ". В идеале, он должен быть окрашен в желтый цвет, если «Доступ подходящий?» = 'Нет'. Я думаю об использовании VBA, но задавался вопросом, есть ли более простое решение с использованием формул или сводной таблицы?

+0

условное форматирование с помощью формулы, чтобы посмотреть его от да ta источник? –

+0

@Nathan_Sav вы могли бы разработать? –

+0

https://support.office.com/en-gb/article/Use-a-formula-to-apply-conditional-formatting-fed60dfa-1d3f-4e13-9ecb-f1951ff89d7f, при этом ваша формула выглядит как = vlookup (a2, data! a1: d10,4,0) = "x" –

ответ

0

Ваши повернутые данные не являются фактической точкой поворота таблицы, не так ли? Я знаю, что означает x, но откуда они взялись?

Две возможности приходят на ум, если вы хотите гибкую настройку без VBA, а также довольно простой подход VBA, который использует UDF.

  1. Quick'n'dirty (действительно грязная) будет

    • использования 1/0 вместо yes/no (можно было бы написать, что во вспомогательную колонну с if -функции)
    • создать новый стержень с ROLE_NAME для колонн, USER_NAME для рядов и SUM или MAX от [Access appropriate] для значений
    • это означает: instea d вашего x, вы получите 1 и 0. Пустые ячейки все равно будут пустыми.
    • условный формат диапазона значений, например. If 1 then green If 0 then yellow if "" then Nothing
  2. В качестве альтернативы, вы можете создать свой выходной стол с формулами типа INDEX, MATCH и VLOOKUP -формул.

    • Дополнительный ключ-колонна с USERNAME & ROLE_NAME потребуются
    • условного формат значение диапазон
  3. VBA: При условии, ваши строки различны определен пользователем функция может сделать следующее

    • читать данные в recordset ЕСЛИ это уже сделано (значение: объявлено на уровне модуля, то первый вызов функции будет заполнить его)
    • доступа к данным в ваших записях с Recordset.Filter на основе ваших входных параметров - USERNAME и ROLE_NAME, в вашем случае
    • выходом определенного Field.Value на основе вашего входного параметра - Access Appropriate in your case
    • условный формат в TRUE/FALSE значения вы получаете (так как это не может быть легко сделано внутри UDF)
+0

Да, это сводная таблица. «X» заменяет все «1» в моей таблице :) –