Я считаю, что это известно как «интернированные» строки. Python делает это, так же как и Java, а также C и C ++ при компиляции в оптимизированных режимах.
Если вы используете две идентичные строки, вместо того, чтобы тратить память на создание двух строковых объектов, все интернированные строки с одинаковыми содержимое указывает на одну и ту же память.
Это приводит к тому, что оператор Python «is» возвращает True, потому что две строки с тем же содержимым указывают на один и тот же строковый объект. Это также произойдет в Java и в C.
Это полезно только для экономии памяти. Вы не можете полагаться на него, чтобы проверить равенство строк, потому что различные интерпретаторы, компиляторы и JIT-механизмы не всегда могут это сделать.
Вот то, как я сделал это в Excel 2003 с помощью условного форматирования.
Для применения условного форматирования к Sheet1
использование оценивает от Sheet2
, необходимо зеркально отразить значения в Sheet1
.
Sheet1
. Вводят следующую формулу в A1:
=IF(ISBLANK(Sheet2!B1),"",Sheet2!B1)
A1
путем щелчка правой кнопкой по нему и выбора" Copy
". A
путем щелчка правой кнопкой по ее заголовку и выбора" Paste
". Sheet1
, столбец A
должен теперь точно зеркально отразить значения в [1 111], столбец B
.
(Примечание: если Вам не нравится он в столбце A
, это работает точно также для имения его в столбце Z
или где-либо еще.)
B
Select путем щелчка левой кнопкой по его заголовку. Format > Conditional Formatting...
Condition 1
к" Formula is
" и вводят эту формулу:
=MATCH(B1,$A:$A,0)
Щелчок Format...
кнопка и выбор зеленый фон.
необходимо теперь видеть, что зеленый фон относился к ячейкам соответствия в [1 122].
A
и выбору" Hide
". Это должно автоматически обновить Sheet1
каждый раз, когда что-либо в [1 127] изменяется.
Можно также сделать это с [1 131] именованные диапазоны , таким образом, Вы не должны копировать ячейки от Sheet1 до Sheet2:
Определяют именованный диапазон, говорят Sheet1Vals
для столбца, который имеет значения, на которых Вы хотите основывать свое условие. Можно определить новый именованный диапазон при помощи Insert\Name\Define...
пункт меню. Введите на свое имя, затем используйте браузер ячейки в Refers to
поле для выбора ячеек, которые Вы хотите в диапазоне. Если диапазон будет изменяться со временем (добавьте или удалите строки), можно использовать эту формулу вместо того, чтобы выбрать ячейки явно:
=OFFSET('SheetName'!$COL$ROW,0,0,COUNTA('SheetName'!$COL:$COL))
.
Добавляют -1
перед последним )
, если столбец имеет строку заголовка.
Определяют именованный диапазон, говорят Sheet2Vals
для столбца, который имеет значения, которые Вы хотите условно отформатировать.
Использование диалоговое окно Условного форматирования для создания условий. Определите Formula Is
в выпадающем, затем поместите это для формулы:
=INDEX(Sheet1Vals, MATCH([FirstCellInRange],Sheet2Vals))=[Condition]
, где [FirstCellInRange]
адрес ячейки, Вы хотите отформатировать, и [Condition]
значение Ваша проверка.
, Например, если мои условия в Sheet1 имеют значения [1 112], 2
и 3
и столбец, я форматирую, столбец B
в Sheet2 тогда, мои условные форматы были бы чем-то как:
=INDEX(Sheet1Vals, MATCH(B1,Sheet2Vals))=1
=INDEX(Sheet1Vals, MATCH(B1,Sheet2Vals))=2
=INDEX(Sheet1Vals, MATCH(B1,Sheet2Vals))=3
можно тогда использовать живописца формата для копирования этих форматов в остальную часть ячеек.
Я использую Excel 2003 -
, которым проблема с использованием условного форматирования вот состоит в том, что Вы не можете сослаться на другой рабочий лист или рабочую книгу в Ваших условиях. Что Вы можете, чтобы сделать быть установленными некоторый столбец на листе 1 равное соответствующему столбцу на листе 2 (в Вашем примере =Sheet2! B6). Я использовал Столбец F в своем примере ниже. Тогда можно использовать условное форматирование. Выберите ячейку в Sheet 1, строке, столбце 1 и затем войдите в меню условного форматирования. Выберите "Formula Is" из выпадающего и установите условие к "= 6$F$ =4". Нажмите на кнопку формата и затем выберите вкладку Patterns. Выберите цвет, который Вы хотите, и Вы сделаны.
можно использовать инструмент живописца формата, чтобы применить условное форматирование к другим ячейкам, но знать, что Excel по умолчанию использует абсолютные ссылки в условиях. Если Вы захотите, чтобы они были относительны, то необходимо будет удалить знаки доллара из условия.
у Вас может быть до 3 условий, относился к ячейке (используйте добавление>> кнопка у основания диалогового окна Условного форматирования), поэтому, если последняя строка фиксируется (например, Вы знаете, что это всегда будет строка 10), можно использовать его в качестве условия выбрать цвет фона ни к одному. Предположение, что последнее значение Вы заботитесь о, равняется последовательно 10 тогда (все еще предполагающий установку столбца F на sheet1 к соответствующим ячейкам на листе 2), тогда устанавливает 1-е условие к Формуле, = 10$F$ ="" и шаблон ни к Одному. Сделайте его первым условием, и это переопределит любой после конфликтующих операторов.
Я сделал это прежде с условное форматирование . Это - отличный способ визуально осмотреть ячейки в рабочей книге и определить выбросы в Ваших данных.