web-dev-qa-db-ja.com

別のシートの一致に基づいてセルを条件付きで書式設定する

2つのワークシートを含むExcelスプレッドシートがあります。 1つ目は、ヘッダー行とアイテム名の1つの列だけです。 2つ目は項目グループのリストで、ヘッダー行とタイトルが左端の列にあり、後続の各行は他のシートの1つの項目または別の項目です。

Sheet1:            Sheet2:
+-------+--+--+    +-------+-------+-------+-------+-------+
| Item  |  |  |    | Group | Item1 | Item2 | Item3 | ...
+-------+--+--+    +-------+-------+-------+-------+-------+
| Shirt |  |  |    | A     | Shirt | Hat   | Tie   |
+-------+--+--+    +-------+-------+-------+-------+-------+
| Hat   |  |  |    | B     | Socks | Shirt | SHOES |
+-------+--+--+    +-------+-------+-------+-------+-------+
| Socks |  |  |    | C     | Hat   | Socks |       |
+-------+--+--+    +-------+-------+-------+-------+-------+
| Tie   |  |  |    | D     | Tie   | Tie   | Socks |
+-------+--+--+    +-------+-------+-------+-------+-------+
| ...   |  |  |
+-------+--+--+

「Sheet1」の最初の列の値と一致しない値が赤い背景でマークされるように、「Sheet2」のすべてのセルを条件付きでフォーマットしたいと思います。あるものは緑の背景でマークされます。したがって、この例のB2から始まるすべてのセルは、値「SHOES」を除いて緑色になります。その下の値は何も入力されていないため、まったくフォーマットされません。

私が試した緑のフォーマット規則は次のとおりです。

=AND(NOT(ISBLANK(B2)), COUNTIF(Sheet1!$A2:$A1000,B2)>0)

赤については、ほぼ同じです:

=AND(NOT(ISBLANK(B2)), COUNTIF(Sheet1!$A2:$A1000,B2)<1)

どちらのルールも、ある程度任意の範囲に「適用」されます(一番上と一番左の行/列を除いて、シート全体に適用したいと思います)。

=$C$3:$E$10,$C$36:$Q$50,$E$11,$C$11,$C$2,$E$2:$Q$2,$C$12:$E$35,$F$3:$Q$35

これは半機能しますが、結果は予測できません。一部の値は期待どおりに強調表示されますが、数行のみが強調表示され、他の値は強調されません。おそらく私の範囲はどういうわけか狂っていますが、私は以前ほどExcelを使用していません。誰か手を貸してくれませんか?

ありがとう!

5
k3davis

Doktoro Reichardが述べているように、これを行うには Conditional Formatting を使用します。この特定のケースでは、3つのルールが必要です。

  1. セルが空白の場合は、背景を変更しないでください
  2. セルに一致がある場合は、背景を緑にします
  3. セルが一致しない場合は、背景を赤にします

申し訳ありませんが、Excelは日本語です。今日は多言語の日です。

これを行うには、これらの条件ごとにTRUEまたはFALSEを返す3つの数式が必要です。私はあなたのデータが次のように見えると仮定します:

Sheet1

enter image description here

Sheet2

enter image description here

ルール#1

次の数式は、セルが空白かどうかを返します。選択しました

enter image description here

=ISBLANK(B2)

セルを選択したことに注意してくださいB2:D5相対参照あり。これは、選択した範囲内のすべてのセルのセル参照を変更する同じ数式を適用します。この条件に該当する場合は、背景色を白(または好みの設定)に設定します。

ルール#2

次の数式は、シート1のリストに完全一致があるかどうかを返します。

enter image description here

=NOT(ISERROR(MATCH(B2,Sheet1!$A:$A,0)))

ルール#3

次の式は、シート1のリストに完全一致がないかどうかを返します。

enter image description here

=ISERROR(MATCH(B2,Sheet1!$A:$A,0))

注文

一番上のルールが最初に実行されます。したがって、すべての空白セルは一致しないため、空白ルールを最初に配置する必要があります。 #2と#3の順序は重要ではありません(重複することはありません)。

3
jmac

必要なのはセル条件付きフォーマットのようです。

これは link であり、これが何であるかを説明しています。

私の写真はポルトガル語版のExcel 2003からのものですが、機能はOffice 2010にもあるはずです。実際、Office 2010ではシート間に条件付き書式を設定できます。これにより、2003ではできません。一枚に。

まず、テーブル:

The tables

あなたがしたいことは、1番目のすべての要素から2番目のテーブルの要素を比較することです。したがって、次のような関数を作成する必要があります。

_=OR(EXACT($B$6;E3);EXACT($B$5;E3);EXACT($B$4;E3);EXACT($B$3;E3))
_

EXACT()は、2つのテキスト文字列を比較します。内部の論理条件がTrueの場合、OR()Trueになります。

つまり、次のように、2番目のテーブルからすべてのセルを選択してから、条件付き書式を押します。

How to access Conditional Formatting

Office 2010とそれが新しいリボンインターフェイスであることを理解している場合は、[フォーマット]ペインでこれを確認する必要があります。思い出すと、それはアイコンのようなものです。

そのアイコンをクリックすると、次のようなウィンドウが表示されます。

Part of the Conditional Formatting window

そこで、最初に式が必要であることを選択してから、前述の式を貼り付けます。条件を確認するすべてのセルを緑色にするには、形式を変更するだけです。赤のフォーマットを行うには、NOT(OR(...));を使用するだけです。これは、設定した条件の逆を返します。

何も含まれていないセルをフォーマットしないようにするには、数式がISBLANK(E3)(E3は左上隅)である3番目の条件を作成します。

最初の草稿を書いた後に私がチェックしたことが優先されます。少なくとも私のバージョンでは、条件1は条件2の前に検証されます。だから、あなたは彼らが彼ら自身を妨げないような方法で注文された状態を持っているべきです。そう:

_1st condition - =ISBLANK(E3)
2nd condition - =OR(...)
3rd condition - =NOT(OR(...))
_

したがって、次のようなウィンドウが必要です。

Final window

これをあなたの状況に合わせてみてください。覚えていれば、私が示しているものとそれほど変わらない。結果は次のようになります。

The end result

0