Битовый массив И в Excel? - PullRequest
1 голос
/ 16 июля 2010

У меня есть таблица примерно такая:

  A A A A A
B C C C C C
B C C C C C
B C C C C C
B C C C C C
B C C C C C

Каждый A и B являются числовыми значениями, полученными в результате создания массива битов из какой-либо другой работы, выполняемой в других местах рабочих листов.*

В C мне нужно выполнить побитовое И для пересекающихся A и B и проверить, является ли результат больше нуля (т. Е. Есть хотя бы одно совпадающее значение бита "1").

должен быть чистой формулой Excel, не может использовать макросы - он используется в условном формате.Использование макросов для имитации условного форматирования не является опцией, равно как и создание таблицы, которая дублирует C и использует макрос для хранения ответа, на который может смотреть условное форматирование.

Значения для A иB может храниться в виде строки с 1 и 0, если какую-то магию строк легче выполнить.

Есть идеи?

edit

Принятый ответ дает мне то, что мне нужно, но для потомков, вот как его расширить, чтобы расширить это решение и дать побитовые ответы:

AND = SUBSTITUTE(SUBSTITUTE(TEXT(VALUE($A2)+VALUE(B$1),"1","0"),"2","1")
OR = SUBSTITUTE(TEXT(VALUE($A2)+VALUE(B$1),"2","1")
XOR = SUBSTITUTE(TEXT(VALUE($A2)+VALUE(B$1),"2","0")

Ответы [ 2 ]

2 голосов
/ 16 июля 2010

сохраните его как строку из 0 и 1, добавьте их как числа вместе, преобразуйте в строку и найдите 2.

=ISNUMBER(SEARCH("2",TEXT(VALUE($A2)+VALUE(B$1),"0")))

скопируйте в ячейку B2 данные в A2 и B1, затем скопируйте и вставьте.

редактировать: Ух ты! они вставили функцию DEC2BIN ()!

=ISNUMBER(SEARCH("2",TEXT(VALUE(DEC2BIN($A2))+VALUE(DEC2BIN(B$1)),"0")))

и оставьте им цифры.

0 голосов
/ 16 июля 2010

Как насчет =(A + B) > 0, если вы делаете ИЛИ (которое вы описываете) или =(A + B) > 1, если вы делаете И (как вы на самом деле пишете).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...