[[20040220154729]] 『数値の数だけセルに色をつけたい』(てい) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『数値の数だけセルに色をつけたい』(てい)

数値の数だけセルに色をつけて行きたいのですが
そんなことできますか?
例として

A   BCDEF                                                                                        
5   *****

の*印のセルに色をつけたいのですが

よろしくお願いいたします。


 B1:IV1を選択し、書式、条件付書式、条件1に数式が、その右の箱に=COLUMN()-2-$A1<0として、
 書式をクリックし、お好みの書式を設定されれば、よいでしょう?  (LOOKUP)


ありがとう御座います

書式、条件付書式、条件まではできましたが、B1:IV1を選択の意味がわかりません。
また、式の( )の中は何も入れなくても良いのでしょうか?
すいませんがよろしくお願いいたします。


 >B1:IV1を選択の意味がわかりません。
 手順を詳しく書きますね。

 1.B1をクリックする。
 2.メニューバーの直ぐ左下の名前ボックス(B1と表示しているところ)を上書きして
   IV1とする。
 3.Shiftを押しながらEnterとする。
   どうですか?B1:IV1が選択できたでしょう?

 >式の( )の中は何も入れなくても良いのでしょうか?
 はい。=COLUMN()の()の中には、何も入れません。

 条件1には、数式がの方を選択してください。        (LOOKUP)


lookup さん教えてください
上記の式の-2-というのは、どこから来てるものですか?
よろしくお願いいたします            (みなみ)


LOOKUPさんありがとう御座います。
出来ました。(てい)


 =COLUMN()-2-$A1<0
 の
 COLUMN()は、個々のセルの自分の列番号です。B1は、2。C1は、3。……です。

 -2は、引き算です。列番号から2を引きます。2は、B列の2から始めているためです。

 -$A1も引き算です。列番号−2からさらにA1に指定した数を引きます。

 <0は、左側小なりゼロです。<の左側の計算結果がマイナスの場合が、TRUEとなります。

 A1に5と指定した場合には、
 B1のセルは、2ですから、2-2-5<0 → -5 → TRUE 指定書式が実現する
 C1     3     3-2-5<0      -4      TRUE   〃    〃
 D1         4          4-2-5<0      -3      TRUE   〃    〃         
 E1     5          5-2-5<0      -2      TRUE   〃    〃 
 F1         6          6-2-5<0      -1      TRUE   〃    〃 
 G1         7          7-2-5<0       0 → FALSE 指定書式が実現しない
 H1以下G1と同様です。                             (LOOKUP)


 こうやったほうがよくないでしょうか?

 =$A1-COLUMN(A1)>=0

 と思ったりして。A、B列間に項目行を増やしても数式を変更しなくてよいし。

 あと名前ボックスって、Shift+Enterしないといけなかったんでしたっけ?

 まぁその、そんなことよりLOOKUPさんも数独やらないか? ということです(笑)。

数独
http://ryusendo.no-ip.com/cgi-bin/fswiki/wiki.cgi?page=%BF%F4%C6%C8
 (ramrun)


 (ramrun)さんへ。
 >こうやったほうがよくないでしょうか?
 >=$A1-COLUMN(A1)>=0
 >と思ったりして。A、B列間に項目行を増やしても数式を変更しなくてよいし。
 =$A1-COLUMN(A1)>=0か =COLUMN()-2-$A1<0は、同じ意味です。
 数式の長さも同じで、この場合は、どちらがよいという問題は、まったくありません。
 私は、COLUMN(A1)と書く場合の方が多いです。

 >あと名前ボックスって、Shift+Enterしないといけなかったんでしたっけ?
 名前ボックスが、Shift+Enterというわけでは、ありません。
 B1:IV1の範囲を指定するために必要ですので、そのようにしています。 (LOOKUP)


 >こうやったほうがよくないでしょうか?
 A、B列間に何か項目行を挿入した場合、
 定数が指定してあったら数式を変更しなければならないという意味で書きました。
 多少汎用性があったほうがいいかと思いまして。

 名前ボックスで単にEnterでもB1:IV1の範囲を選択できてるけど、これって
 Excel2003だからかな?
 (ramrun)


 (ramrun)さんへ。

 =COLUMN()の記載方法につきましては、前述のとおりです。

 範囲の選択方法につきましては、 私の掲載は、以下のとおりです。
 名前ボックスにB1:IV1とするのではありません。

 1.B1をクリックする。
     ===

 2.メニューバーの直ぐ左下の名前ボックス(B1と表示しているところ)を上書きして
                                       ===================================
   IV1とする。
     ==========

 3.Shiftを押しながらEnterとする。
   どうですか?B1:IV1が選択できたでしょう?      (LOOKUP)


 OH! なるほど。
 B1:IV1と勝手に脳内補完していたということですね。
 (ramrun)


 (ramrun)さんへ。

 ご意見は、ありがたいのですが、記載内容は、よくご覧下さい。

 名前ボックスと申し上げてもわからない場合も考えられます。

 B1を表示させ、間違えないように方法を選んだのです。 (LOOKUP)


 おや? なにか勘違いさせてしまったんでしょうか?
 (怒らせてしまっている?!)
 もしそうなら失礼しました。

 >記載内容は、よくご覧下さい。
 お互い様というとこでよろしいですか?

 私の真の目的は「そんなことより...」という方です。
 ただ、それを書き出す切欠を探していただけ(汗)。
 (ramrun)


 (ramrun)さんへ。
 >記載内容は、よくご覧下さい。
 >お互い様というとこでよろしいですか?
 いいえ。わたしは、他人の記載を確認をしないでコメントすることは、しません。
 (LOOKUP)


 どうやらこれは本格的ですか。

 >>こうやったほうがよくないでしょうか?
 >>=$A1-COLUMN(A1)>=0
 >>と思ったりして。A、B列間に項目行を増やしても数式を変更しなくてよいし。
 >=$A1-COLUMN(A1)>=0か =COLUMN()-2-$A1<0は、同じ意味です。
 >数式の長さも同じで、この場合は、どちらがよいという問題は、まったくありません。
 >私は、COLUMN(A1)と書く場合の方が多いです。

 私は言葉じりを捕まえてどうこう言うのは好きではないのですが、

 >=$A1-COLUMN(A1)>=0か =COLUMN()-2-$A1<0は、同じ意味です。 

 たしかにそのとおりですが、

 >A、B列間に項目行を増やしても数式を変更しなくてよいし。

 という意味で書いたので、その場合は同じ意味ではないのでは?
 B列のオフセットとして定数の2を設定しているのですから
 列を挿入してC列からになった場合は定数部分を3にしなければいけないはずでは?

     A     B     CDEFGHIJ
 1   5  焼きそば *****
 2   3  たこ焼き ***
 3   2  おでん   **

 この場合LOOKUPさんの数式ですと、マーキングが1つ少なくなってしまいますよね?
 ですからそれに対して、同じです・数式の長さも同じです・問題はまったくありません
 といわれても... と思い

 >お互い様ということでよろしいですか?

 と書かせていただきました。

 (ramrun)私がやっぱり間違ってるのかな?


 あきれはて、これ以上申し上げる言葉は、ありません。 (LOOKUP)


両者殿へ
貴重なご指導ありがとう御座いました。

これを利用して下記のようなことが出来るかお願いいたします。

  123456789101112131415161718192021222324
A ***  ****  *****  ******  *******
B  ***   ****    *****   ******  ********
C 3    4     5      6       7 
D  3     4       5       6        7

以上の様にC2に3と入れた場合、A列の123と色がついていき、D2に3と入れた場合B列の234と色がついていくようには出来ますか?
教えてもらった式を応用してやってみましたが、出来ませんでしたので教えてもらえれば幸いです。よろしくお願いいたします。(てい)


 C列、D列で指定したところの一行上から書式を表示させるのですね。
 A1からB列の着色等の指定範囲を選択し、書式、条件付き書式、条件1に数式が、
 その右の箱に =LOOKUP(10^6,C$1:C2)>ROW()+1-MATCH(10^6,C$1:C2)
 として、書式をクリックし、お好みの書式を設定されたらどうでしょう?
 下の表は、書式が実現した個所に指定の数値を表示させています。  (LOOKUP)

    A B C D 
  1 3			
  2 3  3 3	
  3 3  3   3
  4   3		
  5				
  6 4			
  7 4   4	
  8 4 4		
  9 4 4   4
 10   4		
 11   4		
 12 5			
 13 5   5	
 14 5  5		
 15 5  5   5
 16 5  5		
 17   5		
 18   5


出来ました。大変ありがとう御座いました。(てい)


すみません。
=LOOKUP(10^6,C$1:C2)>ROW()+1-MATCH(10^6,C$1:C2)

を解説して頂けますでしょうか。

検査値に10の6乗を指定する意味、また+1や-の意味を教えて頂けたらと思います。
(luxury)


 数式を説明する前にエクセル97のヘルプの抜粋を掲載させていただきます。

 LOOKUP(検査値, 配列)

 検査値   配列内で検索する値を指定します。検査値 には、数値、文字列、
 論理値、または値を参照する名前かセル参照を指定することができます。

 キ 検査値 が見つからないと、配列の先頭行または先頭列に
   含まれている 検査値 以下の最大の値が使用されます。
 キ 検査値 が配列の先頭行または先頭列に含まれている
   最小値よりも小さいと、エラー値 #N/A が返されます。

 ということですので、検査値に配列のメンバーより大きい数値を代入しますと、
 対象配列が昇順を前提としていることから、一番奥のメンバーを抽出できることに
 なりますね。

 今回のご質問は、セルに入力した数だけその2列左側の一行上から指定した数値の
 回数だけ下に表示させるものですから、列番号より小さい数が入力されています。
 10^6は、単に65537より短く書けますので、そのようにしただけです。

 1,000,000は、65536を超える数値ですので、この場合、A1の数式、
 =LOOKUP(10^6,C$1:C2)は、
 自分のセルより2個右の列の最上段C$1から下に1個までの範囲の最下段に位置する
 数値を抽出します。(当該セルが表示の指定を受ける個数)

 同様にして、MATCH(10^6,C$1:C2)は、
 自分のセルより2個右の列の最上段C$1から下に1個までの範囲の最下段の位置
 そのものを抽出します。(当該セルが表示の指定を受けるセルの位置)
 これは、自分の位置からみると、一行下に指定されています。

 ROW()は、自分の行位置を戻しますので、
 =LOOKUP(10^6,C$1:C2)>ROW()+1-MATCH(10^6,C$1:C2)は、

 =(当該セルが表示の指定を受ける個数)
 >(自分のセル行数+1)-(当該セルが表示の指定を受けるセルの位置)
 ことになり、自分の行位置−指定数の行位置が、指定の個数より小さい場合だけ
 TRUEが、戻り、表示形式が実現することになります。

 対象範囲全体を選択して、数式を入力していますので、それぞれの範囲に
 条件付書式が、一斉に適応することができます。

 このようなことで、どうでしょう?        (LOOKUP)


非常に丁寧な解説を有難うございましたm(__)m
一つ一つ、噛み砕いて下さり、自分なりに納得致しました。
つまり。。。

   ルックアップ/ロウ/プラス1/マッチ/結果

   該当値    自分

A1 3      1   2    2   2-2=0→true

A2 3      2   3    2   3-2=1→true

A3 3      3   4    2   4-2=2→true

A4 3      4   5    2   5-2=3→イコールだから×

ということですね(^^)
難しくて頭パンクしそうでしたが、紐解けば納得、なるほど。。。です。
でも、自発的には頭に浮かびそうもないですね(>_<)

LOOKUPさん、拍手。。。です!
ありがとうございました。
(luxury)


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.