- ベストアンサー
エクセルに詳しい方助けてください
[赤20]のように漢字と数字が含まれたセルが複数あり([]も含みます)、数字の部分がある値以上であればセルを塗りつぶしたいのです 条件付き書式設定でできると思うのですが、20だけであればできるのですが、複数の数字を指定することができません 20のとき、21のときと数字ごとに条件を追加するしかないのでしょうか?
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
回答番号:ANo.1です。 数値の桁数が何桁であるか、数値の前後の文字列は何か、等には関わりなく、自動で数字の部分のみを、取り出す方法を思い付きました。 但し、[赤20白35]の様に、1つの文字列の中に、複数の数値(例では20と35の2つ)が含まれている場合には、エラーになります。 今仮に、A1セルに、文字と数字が混ざった文字列データが、入力されていて、数字の部分のみを取り出した値が、999以上の場合に、条件付き書式で設定した書式で表示されるとします。 まず、同じファイル内の適当なセルを、作業用のセルとして使用します。 ここでは、仮にB1セルを作業用のセルとします。 このB1セルには、 =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(ASC(A1),1,0),2,0),3,0),4,0),5,0),6,0),7,0) という数式を入力して下さい。 次に、A1セルを選択して下さい。 そして、 メニューの[書式]ボタンをクリック ↓ 選択肢の中の[条件付き書式]をクリック ↓ 「条件付き書式の設定」ウィンドウ中の左端のボックスの表示が、「セルの値が」になっている場合は、そのボックスをクリックして、表示を「数式が」に変える ↓ 「条件付き書式の設定」ウィンドウ中の右上にあるボックスに、以下の数式を入力する =999<=VALUE(MID(A1,SEARCH(0,SUBSTITUTE(SUBSTITUTE(B1,8,0),9,0)),LEN(A1)-LEN(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(B1,8,),9,),0,)))) ↓ 「条件付き書式の設定」ウィンドウ中の[書式]ボタンをクリック ↓ 「セルの書式設定」ウィンドウが開いたら、書式を設定した後、「セルの書式設定」ウィンドウの[OK]ボタンをクリック ↓ 「条件付き書式の設定」ウィンドウ中の[OK]ボタンをクリック 以上で完了です。 余談ですが、Excelでは、(B1セルに入力する数式の様に)関数の引数に、関数を使用する事を、ネストと言います。 そして、数式に使用する関数は7レベルまでしか、ネストする事が出来ません。(8重の関数までしか作れない) もし、ネストが13レベルまで可能であったならば、作業用のセルを設けずに、「条件付き書式の設定」ウィンドウに入力する数式のみで、動作させる事が出来るのですが、Excelの仕様なので、仕方がありませんでした。
その他の回答 (4)
- tom04
- ベストアンサー率49% (2537/5117)
こんにちは! 参考になるかどうか判りませんが・・・ 無理やりって感じの方法になります。 ↓の画像のようにC列を作業用の列として、数値のみを表示させます。 C2セルの数式は =MID(A2,MATCH(TRUE,ISNUMBER(MID(A2,ROW($A$1:$A$10),1)*1),0),COUNT(MID(A2,ROW($A$1:$A$10),1)*1))*1 これは配列数式になりますので、この画面からコピー&ペーストしただけではエラーになると思います。 数式を貼り付け後、F2キーを押す、又は貼り付けセル内でダブルクリック、又は数式バー内で一度クリックします。 編集可能になりますので Shift+Ctrl+Enterキーで確定します。 数式の前後に{ }マークが入りは配列数式になります。 そしてC2セルをオートフィルで下へずぃ~~~!っとコピーします。@ A列のセルが空白の場合はエラーになると思いますが、これは無視します。 (A列のセル内の文字数が10文字まで対応できる数式にしています。) 最後にA2~色を表示させたいセルを全て範囲指定し、 条件付書式から「数式欄」に =C2>=20 として黄色を選択しています。 この作業列が目障りであれば非表示にすれば良いかと思います。 以上、長々と書きましたが 他に良い方法があれば 読み流してくださいね。m(__)m
》 …20だけであればできるのですが… その場合の条件式を示してください。
- KURUMITO
- ベストアンサー率42% (1835/4283)
例えばA列に[赤20]のようなデータが入力されており、それらのデータが同じようなスタイルで二桁の数値のみが変化しているのでしたら、A列を選択した上で、条件付き書式の設定で次のような式を入力することで赤で20以上の数値の場合にセルを塗りつぶすことができます。 =AND(A1<>"",MID(A1,2,1)="赤",MID(A1,3,2)>=20) 赤で20と21の場合にだけ塗りつぶす場合でしたら =AND(A1<>"",MID(A1,2,1)="赤",OR(MID(A1,3,2)=20,MID(A1,3,2)=21)) これらの式を参考にして実際に適用してみてください。
- kagakusuki
- ベストアンサー率51% (2610/5101)
すいません、条件によっては可能かもしれませんので、以下の点に関して補足して頂けないでしょうか。 (1)[赤254白93]の様に、数値の途中に、文字列が挟まってはいない。 (2)「]」の様に、数値の右隣りには、必ず同じもじか、又は数個の限定された文字がくる。 (3)数値の末尾は文字列の、後ろ(もしくは前から)から数えて同じ位置になる。 (1)と(2)又は(1)と(3)の条件が同時に満たされている場合には、数値のみ取り出す方法がありますから、数値の右隣りにくる文字か、数値の末尾の位置と合わせて、上記条件の中に満たすものがあるのか無いのかを、補足して頂けないでしょうか。