問題解決のための条件付き書式設定方法

このQ&Aのポイント
  • Excelの条件付き書式(数式を使用して書式設定)機能を使用したいが、設定がうまくいかない。
  • 特定の2つのセルに対して条件を設定し、書式を表示させたいが、うまくいかない。
  • 書式設定の中の数式記述はコピーしてもアドレスが変わらないため、同じ列の下位行でも同じ書式を使いたい。
回答を見る
  • ベストアンサー

EXCEL 条件付き書式(数式を使用して書式

EXCELの書式設定に ・条件付き書式(数式を使用して書式設定)機能を使用したいのですが・・・・・・。 任意の2セルの左側のセルに下記設定を行い 100、0と各セルに入力しても指定した書式表示が実行されません。 設定記述: ="and(OFFSET(INDIRECT(ADDRESS(ROW(),COLUMN())), 0,0)>0, OFFSET(INDIRECT(ADDRESS(ROW(),COLUMN())), 0, 1)=0)" 固有セルを指定しないのは、この書式を、同じ列の下位行にコピーして使いたいからです。 (セルに直接記述した書式は、相対セル記述した場合、コピーするとアドレスも変化しますが  条件付き書式設定の中の数式記述はコピーしてもアドレスが変わりません) EXCEL2007,EXCEL2010で確認しています。 尚、andで指定している各条件を単一で指定すると正しく動作します。 いろいろとネットで調べましたが、解決できず。 解決方法は他にもあると思います。 実現したい仕様: 隣接した2つのセルに対して Aセルの右隣のセルBセルと仮定して (1)Aの値>Bの値 の時 表示色=緑 (2)Aの値<Bの値 の時 表示色=黄 (3)Aの値>Bの値 且 Bの値=0 の時 表示色=赤 (1)は (OFFSET(INDIRECT(ADDRESS(ROW(),COLUMN())), 0,0) > OFFSET(INDIRECT(ADDRESS(ROW(),COLUMN())), 0, 1) (2)は (OFFSET(INDIRECT(ADDRESS(ROW(),COLUMN())), 0,0) < OFFSET(INDIRECT(ADDRESS(ROW(),COLUMN())), 0, 1) で実現できています。 アドバイスありましたらお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Nouble
  • ベストアンサー率18% (330/1783)
回答No.3

読んでいてワークシート関数式が不可解でなりませんでした 基本としてOFFSET構文とINDIRECT構文は 目的としては同じ動きをさせるもの 「自ら」を指定したい時は確かにありますが、その自らを指定する時の「自ら」に参照関数を指定し、 その関数中の「自ら」を指定するのに参照関数を… ……… …… … … … 際限ないですよね? 止めましょう 実際時折私もこのパラドクスに度々陥りますが この「自ら」を A1から見て何処、 とか 直ぐ左上のセルから見て、1,1の位置、 とかに 指定してやる様にしています。 あと、OFFSET構文の第4番目と第5番目の引数を省略するのはお勧めできません 関数式は一種のプログラムです。 ですから、基本に立ち返り 判読性も重視した方が良いですよ。 ところで各構文の基本的な使い方ですが、 =OFFSET($a$1,ROW()-1,column()-1,1,1) =OFFSET($a$1,ROW()-1,column(),1,1) A5にOFFSET構文を書くときは =OFFSET(A4,1,0,1,1) =OFFSET(A5,O,1,1,1) (※注:$で固定されていない領域指定はフィルやコピーとともに相対的に書き換えられる そのため領域A5に書かれた式でA5と指定されていた場合、 この指定は常に移動先の領域を示すものに、セルの移動・コピーと同時に書き換えられる。 ので、ROW()やCOLUMN()を意識して使う必要はない) =INDIRECT("R"&ROW()&"C"&COLUMN(),FALSE) =INDIRECT("R["&0&"]C["&1&"]",FALSE) (※注:これは相対参照の書き方) なんてのが一般的では? なので 緑 =AND(INDIRECT("R"&ROW()&"C"&COLUMN(),FALSE)>INDIRECT("R"&ROW()&"C"&COLUMN(),FALSE),INDIRECT("R"&ROW()&"C"&COLUMN(),FALSE)<>0) 赤 =AND(INDIRECT("R"&ROW()&"C"&COLUMN(),FALSE)>INDIRECT("R"&ROW()&"C"&COLUMN(),FALSE),INDIRECT("R"&ROW()&"C"&COLUMN(),FALSE)=0) 黄 =(INDIRECT("R"&ROW()&"C"&COLUMN(),FALSE)<INDIRECT("R"&ROW()&"C"&COLUMN(),FALSE)) または、 緑 =AND(INDIRECT("R["&0&"]C["&0&"]",FALSE)>INDIRECT("R["&0&"]C["&1&"]",FALSE),INDIRECT("R["&0&"]C["&1&"]",FALSE)<>0) 赤 =AND(INDIRECT("R["&0&"]C["&0&"]",FALSE)>INDIRECT("R["&0&"]C["&1&"]",FALSE),INDIRECT("R["&0&"]C["&1&"]",FALSE)=0) 黄 =(INDIRECT("R["&0&"]C["&0&"]",FALSE)<INDIRECT("R["&0&"]C["&1&"]",FALSE) で良いのでは? アクティブセルが仮にA5の領域指定したセルに条件書式指定する場合 =AND(OFFSET(A5,0,0,1,1)>OFFSET(A5,0,1,1,1),OFFSET(A5,0,1,1,1)<>0) …緑 =AND(OFFSET(A5,0,0,1,1)>OFFSET(A5,0,1,1,1),OFFSET(A5,0,1,1,1)=0)  …赤 =(OFFSET(A5,0,0,1,1)>OFFSET(A5,0,1,1,1))                  …黄 でも単純に =AND(A5>B5.B5<>0) …緑 =AND(A5>B5.B5=0)  …赤 =A5<B5         …黄 と、他の方々が指定したこの方法の方がスマートですよ? ところで範囲指定して条件書式を指定する場合ですが、 アクティブセルが何処にあるかを十二分に意識して式を書かないと トンデモ!! な動作になり、心を折られそうになります。 お気を付けあそばせ。 お役に立てていたなら幸いです。 因みに条件書式では特例としてINDIRECT構文では 特別に他シートに書かれた領域も参照できたはず、お試しあれ。 他の描き方(A1的描き方やOFFSET構文など)では、 条件書式中の他シート参照は、確かエラーになりますよね? ヘルプにも確か「他シートは参照できない」旨、書かれていたはず。 でも実は出来ちゃうんですよね … 仕様変更されていなければですが …

belleqip
質問者

お礼

ご返答ありがとうございました。 長々とお手数おかけしました。 お礼も遅れてすいません。 非常にいろいろと参考になりました。 今回はありがとうございました。

その他の回答 (2)

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.2

c2セルを選択して[条件付書式]で、入力画面が出てきますから、セルの値ではなく式を選択して、 =AND(A2>B2,B2=0) を書く。 そして書式を指定したら、 条件を追加を繰り返しすだけですが??

belleqip
質問者

お礼

ご返答ありがとうございました。 ただ、コピーしてもセルのアドレスが変更されないので・・・。

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.1

例えばC3セルにて、 条件1) =AND(A2>B2,B2=0)  赤 条件2) =A2>B2         緑 条件3) =A2<=B2         黄 厳しいほうを先に書く。$A$2としなければコピーできる--書式のみコピー

belleqip
質問者

補足

優先条件を先に記述して「条件を満たす場合は中止」のチェックボックススにもチェックしています。 AND条件の数式一つだけの設定でも、期待の動作しません。  数式指定条件に'AND'条件が指定できるか否か。 できるとしたら記述方法をご伝授頂けたらと思います。 今回は指定した書式のセルをVBプロシージャーでコピーしています。 設定した数式の対象セル記述を相対しても、コピー先では同じアドレスを参照していて、直接セルに数式を設定した時と 動作は異なります。 最悪はEXCELシートの書式設定ではなく、プログラムを記述して 書式をせってするしかないのか??? 簡単にEXCELシートに設定した、「条件付書式」の設定で実現できるかが問題です。 引き続き、ご指摘お願いいたします。

関連するQ&A

  • エクセル2010条件付き書式

    いつもお世話になっております。 質問です、宜しくお願いします。 条件付き書式についてですが、2010にしてから上手く出来ません。 具体的には、A列に入力した数値とB列に入力した数値が違うときに赤色で塗りつぶすというものです。 エクセル2007では、簡単に出来たのですが2010ではうまく出来ません。 条件付き書式→新しいルール→指定の値を含むセルだけを書式設定→セルの値 →次の値に等しくない→B1を選択 書式で塗りつぶし「赤」を選択。 これでA1とB1の数値が違っていれば、赤で塗りつぶしになります。 A2・・・・以降コピーしても書式がコピーされません。 どのようにすれば出来るのか教えて下さい。 文章でうまく伝えられていないと思いますが宜しくお願いします。

  • 条件付き書式について

       A     B 1 ●●社 ××社 2 10,000  5,000 という表です。 条件付き書式で10,000以上の場合は、その会社名のセルを塗りつぶしたいです。 A1セルを選択して条件付き書式の「数式を利用して~」で ="(ADDRESS(ROW(),COLUMN()+1))>=10000" と入力したのですが、うまくいきません。 どこが間違っていますか?

  • エクセルの「条件付き書式」で困っています

    エクセルの「条件付き書式」なんですが 表の見栄えを良くするために、一行ごとに色を付けようと 「書式」-->「条件付き書式」-->設定ダイヤログに 条件(1)・・「数式が」-----「=MOD(ROW(),2)=0」を設定しました     書式-->パターン・グリーンを指定 思い通り選択範囲の表に、一行ごとの縞模様が出来たのですが 追加で 条件(2)・・「セルの値が」-----「次の値より大きい」-----「100」     書式-->フォント太字・赤を指定 と指定したところセルに色の付いた行(偶数行)は100以上の数値が入力されても フォントが太字・赤になりません このような条件は「条件付き書式」ではなく、表示形式で設定するのでしょうか? 私は「条件付き書式」で一括に設定したいのですが 詳しい方がいらしたら教えて下さい WIN2000・エクセル2000  です。

  • Excelの条件付き書式の設定がうまくいきません

    Excel2011(Mac)です。 ある列において、数値が50以上のセルのみ着色したいのですが、条件付き書式のルール設定で数式を利用して =INDIRECT(ADDRESS(ROW(),COLUMN()))>=50 とすると、50以上はすべて着色するのですが、空欄まで着色されてしまいます。 ためしに、 =INDIRECT(ADDRESS(ROW(),COLUMN()))<>"" としてみたら、空欄以外の数値が入っているところがすべて着色されます。 それでは、と思い、 =AND(INDIRECT(ADDRESS(ROW(),COLUMN()))<>"",INDIRECT(ADDRESS(ROW(),COLUMN()))>=50) としてみたら、今度はすべてのセルが着色されません(不思議で仕方ありません)。 どういう数式を書けば、空欄と50未満のところは着色されず、50以上のセルだけ着色されるのでしょうか。

  • エクセルの条件つき書式

    エクセルの条件つき書式で、A1:C3を範囲指定し、 その範囲内の値が1となっていて、かつD1の値が10となっている場合、 A1:C3の中の1となっている部分の書式を変えるといったものを作るのですが、これを条件つき書式だけで設定する方法はありますか? セルに条件式を書いてというのは無しでお願いします

  • 条件つき書式でこんなことできますか?

    条件つき書式では、 例えばセルA1の値が0と等しくない時に、 そのセルを赤く塗りつぶすように設定できますよね。 もし仮に、セルB1(つまり、条件つき書式を設定するセルと違うセル)が0と等しくない時、 セルA1を赤く塗りつぶすように設定することは できないでしょうか。 それとも、条件つき書式以外の方法があるのでしたら ぜひお教えくださいませ。 よろしくお願い申し上げます。

  • Excel 条件付き書式のコピー

    [条件付き書式]の使い方は分かっているのですが(と思います)、ある条件(数式)を入れて他のセルにコピーすると、参照しているセルが絶対値になってしまいます。 ちょっと上手く説明できないのですが。。。 ----------------------- A列   B列    C列 001  あいうえお  A 002  かきくけこ  B 003  さしすせそ  B 004  たちつてと  A ----------------------- エクセルの表は上記のようになっていて、C列の値が[A]の場合はA列のセルのパターンを赤にする、というような事をやりたいと思っています。 それで[001]のセルに条件付き書式で"数式が[=$C$1="A"]"という条件を付け、形式で書式だけ選択して他のA列のセルにコピーすると[002][003][004]・・・と全部に[$C$1]という値を参照する条件がコピーされてしまいます。それを、それぞれの行のC列を参照するようにするには、どうしたら良いでしょうか? 説明が上手くなくて長くなってすみません。 よろしくお願いします。

  • 条件付き書式

    いつも お世話になっています。 条件付き書式について教えて頂きたいのですが、 E3のセルが100.00以上の場合A1の背景を塗りつぶしたいのですが EXCEL2007で作業中なのですが A1を選択→ホーム→条件付き書式設定→セルの強調表示ルール →指定の値より大きい→E3を選択するとA1のセルの背景が 塗りつぶしになるのですが、 E3<100.00と入力すると塗りつぶしが消えてしまいます。 条件を入力するところが間違えていると思うのですが、 条件を100.00以上と指定するところはどこなのでしょうか? 宜しくお願いします。

  • Excelでの条件つき書式の張り付けについて

    Excel2007にて、1シート全体に、条件つき書式の設定をしました。 (シート内で値がAのときはセルの背景を緑にする、などの条件) シート内のセルをコピーし、同シート内に張り付けたところ、 張り付け部分のみ範囲指定された、 セル全体に設定した内容と同じ条件が作成されてしまい、 張り付けをすればするほど条件が増えて、 ファイル容量がどんどん大きくなってしまいます。 条件は増やさず、コピーしたセルの内容だけを張り付けることは できないのでしょうか。 上手く設定できず恐縮ですが、どうぞ知恵をお貸しください。

  • Excelの条件付き書式のコピー

    Excel2007で条件付き書式でセルの色と罫線を設定しているセルがあります。 このセルをコピーして別シートに貼りつける際に、条件付き書式に合致して設定されている書式を条件なしで、そのままコピー出来ないでしょうか。 拙い説明で分かりにくいですが、イメージとしては計算式で数値が表示されているセルがある時に、計算式がいらない場合は、セルをコピーして値の貼付を行って数値だけを持っていくのと同じような事が条件付き書式でも出来ないか、と言う事です。

専門家に質問してみよう