• ベストアンサー
  • 困ってます

Excelの条件付き書式、直接入力と参照した数値は違う?

Excelの条件付き書式、直接入力と参照した数値は違う? Sheet1のA1セルの数値を Sheet2のA1セルが「=IF(Sheet1!A1="","",Sheet1!A1)」という数式で参照しています。 数値に、「%以上」という文字列を追加したいので、 Sheet2のA1セルの書式設定を、ユーザー定義で「0"%""以""上"」としています。 Sheet1のA1セルに数値を入力 → Sheet2のA1セルが参照 → ユーザー定義で「○%以上」と表示させる。 ・・・ここまでは簡単にできました。 さらに、数値が表示されたときにセルの色を赤くしようと、 条件付き書式で、 「セルの値が 次の値以上 0」 と設定したのですが、入力が無くても赤いままになってしまいます。 設定を、 「セルの値が 次の値以上 ="0"」とか、 「セルの値が 次の値より大きい 0」とか、 いろいろとやってみましたがどうしてもうまくいきません。 参照ではなく、セルに直接入力するのであればこれでうまくいっていましたので、簡単に出来るものだと思っていたのですが、 これはたぶん、私が根本的なことをわかっていないのだと思います。 ご教授頂けましたら助かります。

noname#120678

共感・応援の気持ちを伝えよう!

  • 回答数6
  • 閲覧数1156
  • ありがとう数7

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

  • ベストアンサー
  • 回答No.5

当方エクセル2000ですが、おっしゃる通りの現象を再現しました。 「セルの値が」ではなく「数式が」をえらび =AND(A1<>"",A1>=0) としてみてください。 なお、この質問とは無関係ですがCHEVALBOISさんの先日の質問 http://okwave.jp/qa/q6146666.html で わたし(merlionXX)の回答 =IF(COUNT(Y14:Y15)=2,INDEX($Y$3:$AH$3,1,Y14)&"で"&INDEX($Y$11:$AB$11,1,Y15),"") ではなく、他の回答 =IF(OR(Y14="",Y15=""),"",INDEX($Y$3:$AH$3,1,Y14)&"で"&INDEX($Y$11:$AB$11,1,Y15)) を採用されましたが、この数式の違いをおわかりでしょうか? 両者ともY14:Y15に空白セルが1つでもあれば、エラーになるのでそれを表示しません。 ただし、Y14:Y15に文字列が1つでも入力されれば、ちがう結果となります。 Y14:Y15に必ず数値をいれさせたいのであれば、OR(Y14="",Y15="") ではなく COUNT(Y14:Y15)=2 で判定すべきです。 もう質問が締め切られているのでここで説明させていただきました。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

なるほど、そういう数式もあるわけですね、 前回教えて頂いた数式はホントに助かりましたm(__)m ちょっと長めの数式なので、あとで関数辞典で調べてみようと思いつつとりあえずそのまま使わせて頂いてる次第ですw 解説を読ませて頂いて数式の意味はともかく使用目的を考えたらということはよくわかりました。 Y14:Y15どちらか片方だけの入力ということはあり得ませんので・・・ ありがとうございましたm(__)m

関連するQ&A

  • Excelでのセルの書式設定で、ユーザー定義が反映されない。

    Excelでのセルの書式設定で、ユーザー定義が反映されない。 別シートから参照した数値(@)が入力されると「○○○@○」と表示させたいのですが・・・ たとえばですが、 Sheet1のA1セルに「=IF(Sheet2!A1="","",Sheet2!A1)」という数式を入れてあります。 Sheet1のA1セルの「セルの書式設定」を「ユーザー定義」にして、「"花""子""は"@"歳"」にしてあります。 これでSheet2のA1セルに「3」と入力します。 Sheet1のA1セルに「花子は3歳」と表示されると思っていたのですが、「3」しか表示されません。 何が間違っているのかわかりません。 お知恵を拝借させてください。m(__)m

  • 別シートのセルにある数値、+○,○○○ -○,○○○ を参照し表示させ

    別シートのセルにある数値、+○,○○○ -○,○○○ を参照し表示させたい。 2点ほど質問させてください。 1. Sheet1のA1セルに、 Sheet2のA1セルに手入力した、「数字の前に + あるいは - が付く数値」を、桁区切りのカンマ付きで表示させたいのですが、 関数式「=IF(Sheet2!A1="","",Sheet2!A1)」ではうまくいきません。 ちなみに、- の付いた場合には赤字で表示させたいと思います。 2. Sheet1のA1セルが、上記でうまく表示されたとして、 今度はその隣のA2セルに入っている数値を、 Sheet1のA1セルが -○,○○○ の場合には赤字で、 Sheet1のA1セルが +○,○○○ の場合には黒字で表示させるにはどうしたらよいでしょうか? たぶん「条件付き書式」で出来るような気はするのですが、定義をどうしたらよいものか見当が付きません。 ちなみに、Sheet1のA2セルに入っている数値は、Sheet2の別セルからの参照になっています。 以上ですが、お知恵を拝借させてください。 よろしくお願いいたします。

  • エクセル 条件付き書式の別シート参照について

    エクセル2007にて、条件付き書式を使い、"Sheet1"と"Sheet2" を比較しようとしていますが 相対パスが当てられずに困っています。 ■したいこと Sheet1とSheet2のそれぞれ対応するセルを比較し、値が異なるなら Sheet1のセルの色を変える 「Sheet1のA1」と「Sheet2のA1」を比較 「Sheet1のA2」と「Sheet2のA2」を比較 「Sheet1のA3」と「Sheet2のA3」を比較 ・ ・ 「Sheet1のB1」と「Sheet2のB1」を比較 「Sheet1のB2」と「Sheet2のB2」を比較 ・ ・ 続く というように全部のセルを比較したいです。 ■したこと 条件付き書式では、直接 別シートを参照出来ないようなので Sheet1のA1の条件付き書式には、以下のように記載しました。 「=IF(A1=INDIRECT("Sheet2!A1"),0,1)」 しかし、""で囲んだ部分は、文字列として認識されているため そのままコピーされ、うまくいきません。 なにかいい方法ってないんでしょうか??? 詳しい方、ご教授いただけたらと思います。 よろしくお願いします。

その他の回答 (5)

  • 回答No.6

こんにちは。ハンドルネームconantheです。 エクセルも時々不思議なことが起こりますね。理屈で考えたらCHEVALBOISさんのやり方でいいはずなのに、実際はうまくいかない。 いろいろ試してみました。その結果、次のようにすればいいのでは、と思います。 「セルの値が 次の値より小さい ""」 僕の勘違いでしたらごめんなさい。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございますm(__)m しかし残念ながらお教え頂いたことではうまくできませんでした、 実のところ、できれば数式はつかわないでやりたかったのですが(絶対参照を使ってもコピー等で数式が崩れることがあるため) やはり数式を使わないと無理みたいです。 また何かありましたら教えてください。

  • 回答No.4
  • MackyNo1
  • ベストアンサー率53% (1521/2850)

同じ質問が別の掲示板に投稿されていますね(この質問以外にもいくつか同じ質問を投稿されています)。 http://social.answers.microsoft.com/Forums/ja-JP/officeexceljp/thread/68e31cbd-a606-4972-9f24-fb65c5b9d403 この回答では解決できなかったのでしょうか? 一般的に、このような掲示板を利用する場合、同じ質問を2つ以上の掲示板に同時に投稿するのは、回答者に失礼になるだけでなく、マナー違反として認められていないことも多いので注意してください。 どうしても、その掲示板では有効な回答が得られず、解決できないような場合は、その質問をいったん解決処理して、別の掲示板で補足情報を追加して新たに質問するようにしましょう。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ご忠告ありがとうございます 回答が待てなくてついそうなってしまうことが何度かありました。 今後気をつけますのでm(__)m

  • 回答No.3
  • mu2011
  • ベストアンサー率38% (1910/4994)

一例です。 条件付き書式設定で「数式が」を選択、数式欄に=LEN(セル)をお試しください。 参考です。 ・「次の値以上」で「="0"」は文字列の「0」ですから数値と相違しますのでNG、  「=0」ならば未入力セルも反応するからNG、 ・「次の値より大きい」で「0」は期待の通りとなる筈ですが「0」入力は反応しないのでNG。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

=ISNUMBER()や=COUNT()はよく目にしますが、 =LEN()は、はじめて知りました。 何が反応して何が反応しないとか、なかなか理解できませんw ご説明ありがとうございますm(__)m

  • 回答No.2

 空欄は数値ではないため、「~よりも大きい」という様な、数値の大小を比較する判定の対象外と見なされて、判定が行われないのかも知れません。  ですから、条件付き書式ウィンドウの左側の欄を「数式」にした上で、右側の欄を次の様にされては如何でしょうか。(A1セルの場合) =ISNUMBER(A1)  尚、この条件ではSheet2のA1の値が数値の0やマイナスの場合もセルが赤くなります。  もし、プラスの場合のみセルを赤くするのでしたら、右側の欄に入力する数式を、次の様に変えて下さい。 =AND(A1>0,ISNUMBER(A1))

共感・感謝の気持ちを伝えよう!

質問者からのお礼

数式でやるとなると、他にもいくつか関数があるようですが、=AND(A1>0,ISNUMBER(A1))は勉強になりました。 今回はそういう使い方はしませんが、これは必ず使うことが出てきそうです ありがとうございましたm(__)m

  • 回答No.1

エクセルのバージョンは2003です。 「ゼロ以上」という条件はゼロを含むからダメなのだろうと思いますが、 一つのセルで、「セルの値が 次の値より大きい 0」書式:文字の色「赤」を指定。「書式のコピー/貼り付け」ボタンを使ってそのセルの書式を他のセルにコピーしてみました。セルの内容も直接入力ではなく、近くのセルに入力した数値の参照にしました。それで期待した結果になりました。 書式の設定をパターン(ぬりつぶし)にして、やはり期待した結果になりました。 いろいろ試すうちにセルに複数の書式が設定された可能性はありませんか? 新しいシートを開いて試して下さい。

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • エクセルの条件付き書式について教えてください・・・

    sheet1のA1セルに、【条件付き書式】で数字や文字が入力された場合のみ、そのセルに色が着くように設定しました。 【条件付き書式】で、sheet1のA1に=($A$1<>"")と設定しています。 そしてそのセルへ、sheet2のA1に入力したものを反映させたいので、=SHEET2!$A$1としましたが、この場合sheet2のA1セルに何も入力しなくても、sheet1のA1セルに色が付いてしまいます。 sheet2のA1に何も入力しない場合、sheet1のA1に色を付けたくないのですが、方法が分かりません。 どなたか詳しい方教えてください。よろしくお願いします。

  • Excel 入力条件について

    条件が2つある場合の入力設定について教えて下さい。 A列に番号を入力していきます。 セルA1に 12345601 を入力すると 123456-01 セルA2に 1234560001を入力すると 123456-0001 になる。 セルの書式設定 ユーザー定義で000000-0000を設定すると セルA1 が 001234-5601になってしまいます。 ご指導をどうぞ宜しくお願い致します。

  • エクセル 条件付書式 別シート参照 について

    エクセル2007で、条件付き書式でsheet1の入力に対してsheet2の書式を変更したいのですが できずにいて困っています。 教えてください。 具体的にやりたいこと sheet1 の 入力に対して sheet2のそれぞれに対するセルの色を変えたい。 「sheet1のA1」に"a"が入力されたら 「sheet2のA1」 の背景色を 青 にする。 といったことをある範囲(たとえばA1:H20)でやりたいのですが どうしてもうまくいきません。 sheet2 で A1:H20 の範囲を選択して =INDIRECT("sheet1!"&ADDRESS(ROW(A1),COLUMN(A1),1) と入れてみたのですが、うまくいきません。 わかる方アドバイスいただけますか?

  • 条件付き書式の設定の仕方

    以下の3つの作業をしたいと考えています。 (1)と(2)の操作をし終わってからする(3)の作業がうまくいきません。 わかる方がいたら教えてください。 ちなみに同じExcelデータ内にありますが、A1とB1はシートが違います。 (1)A1のセルに文字が入力されたらB1にも同じ文字が出るようにしたい。 ・・・B1に数式「=A1」を入力。 (2)(1)設定後、A1が空白の際B1に表示される「0」を表示しないようにしたい。 ・・・B1のセルに、「セルの書式設定」→「ユーザー定義」→「#,##0;''''#,##0;」を設定。 (3)「A1」に文字が入力されたら自動的に「B1」が塗りつぶされるようにしたい。 ・・・条件付き書式に他のワークシートまたはブックへの参照ができないのはわかりました。 でも何か別に方法があれば知りたい。

  • エクセルのセルの書式設定について

    お世話になります。 エクセルのセルの書式設定について質問させて頂きます。 sheet1のA1に本日の日付を入れてセルの書式設定のユーザー定義にて"C"yyyymm"-"を設定することで、「C201512-」となりますが、sheet2のA1に「=sheet1!A1」とし、同じ定義で同じ結果「C201512-」を表示させたいのですが、どのような方法がありますか? 尚、状況によって「C201512-」のCについてはsheet1のA1のユーザー定義において「"C"yyyymm"-"」⇒「"D"yyyymm"-"」に変える場合があります。その場合でも、ユーザー定義をsheet2のA1に同じ結果を表示させたいと考えています。 宜しくお願い致します。 もし、もっと効率の良い方法がありましたら、ご教授頂けると光栄です。 尚、使用環境は OS:windows8.1 EXCEL:EXCEL2013 です。

  • excel 入力条件について

    条件が2つある場合の入力設定について教えて下さい。 A列には番号を入力していきます。 セルA1に 123456789 を入力すると 条件(1) 数字の時は セルA1が 123-456-78-9 になり セルA2に C123456 を入力すると 条件(2) 英字が付く時 セルA2は  C123456  のままです。 (1)だけだと、セルの書式設定 ユーザー定義で 000-000-00-0で 出来るのですが・・。 どうぞ宜しくお願い致します。

  • エクセルのセル書式設定について

    エクセルのセル書式設定について教えてください。 セルA1に文字列「052」と入力すると、B2に「0 5 2」と表示されるようにするには、 書式設定をどう設定したら良いですか? ちなみに、A1を文字列ではなく数値で設定し、B2をユーザー定義「# # # #」で登録すると、 A1は「52」、B2は「5 2」と表示されてしまいます。 A1を「052」と表示させる為には、文字列として設定しなくてはいけないが、 そうするとB2の値も「052」と表示されてしまいます。 どなたか良い方法を教えてください。

  • 常に参照もとのセルの書式に従う〔Excel〕

    例えば、sheet2のA1セルがsheet1のA1セルを参照していたとします(単にsheet2のA1セルが「=sheet1!A1」となっているだけです)。このときに、sheet2のA1の書式設定を参照元であるsheet1のA1セルの書式に常に一致させたいのですが、何か良い方法はないでしょうか? 具体的にいうと、sheet1のA1セルの表示形式が円単位になったり、千円単位になったり、%表示になったりと変化するのですが、その度にsheet2のA1セルの書式も手作業で変えるのが面倒です。表示単位はその都度カスタマイズすることもあるのでマクロで登録することにも無理があります。 それか、VBAで参照もとの書式の情報を返して、それを参照先セルに反映させることができますでしょうか? できれば、何もせずフルオートで対応できるとありがたいのですが。

  • 条件付き書式設定について

    エクセル2007を使用しています。 セルの『条件付き書式設定』について判らない事があるのでご教授願います。 条件付き書式設定では複数の条件を付けられますが、その全ての条件を満たした時のみと言う設定方法はできるのでしょうか? 今はやり方が判らないので、とりあえず、エクセルの別の場所にデータを移し、そこを見るように設定しています。 例 セルA1とA2の二つの数値が26≦ⅹの場合のみセルA1の数値を赤表示にしたい。 セルA3に『=IF($A2<=26,IF($A1<=26,$A1,1),1)』と入力し、 A1の条件付き書式設定でA3の値がA1と等しい時に赤表示にする と言う方法で設定しています。 これを関数を使用せずに、条件付書式のみで設定できないでしょうか?

  • Excelで、「+○,○○○」という表示を、数値として表示させるには?

    Excelで、「+○,○○○」という表示を、数値として表示させるには? 私の質問の書き方が悪かったので、改めて質問をさせて頂きます。 前回、お答えくださった方々には、この場を借りてお詫び申し上げます。 さて、本題ですが、 Sheet1のA1セルに、 Sheet2のA1セルに手入力した、「数字の前に + あるいは - が付く数値」を、桁区切りのカンマ付きで表示させています。 + を表示させるために、参照元のセルの書式を「文字列」にしています。 参照先のSheet1のA1セルの隣のA2セルに入っている数値を、 Sheet1のA1セルが -○,○○○ の場合には赤字で、 Sheet1のA1セルが +○,○○○ の場合には黒字で表示させたくて、条件付き書式で [=$A$1<0]という数式を入れてみたものの、 参照元が「文字列」なので、どうやら参照先も文字列と判断されてしまうらしく、条件付き書式が機能してくれません。(参照元を「標準」等に直せば機能します) +○,○○○という表示を、数値として表示させることができれば、解決すると思うのですが、他に方法があればそれにはこだわりません。 なにか良い案はないでしょうか? お知恵を拝借させてください。