エクセルで数値の一致を求め、書式設定を与える方法

このQ&Aのポイント
  • エクセルで数値の一致を求める方法と、その結果に応じて書式設定する方法を教えてください。
  • BC51セルとAA45セルからの数値の一致を判定し、条件に応じて色付けを自動で行う関数や条件付書式の使い方について教えてください。
  • ABセルに結果を表示し、条件付書式を使用して色付けをする方法についても教えていただけますか?
回答を見る
  • ベストアンサー

エクセルで数値の一致を求め、書式設定を与える

エクセルに詳しくないので教えていただけませんか? 画像の、BC51 セルに846と数字が入っています。 この数字は単体で、8、4、6と考えていただいて、 それとは別に AA45 セルから AA50セルに4桁の数字が入るのですが、 例えば、AA45セル これには先ほどの 8,4,6の数字のうち4と6の二つの数字が含まれていますよね。 続くAA46セルには、4,5,6,8 ですから、先ほどのBC51セルの数字 8,4,6が3つ含まれています。 この様にBC51セルの数字が二つ含まれている場合と、三つ含まれている場合で画像の様に色付けを毎回自動でやる様な関数ってどのようなものになるのでしょうか? もしくは、ABセルにその結果を求め、条件付書式で実現する事も出来るだろうなと思います。 ちなみにAセルの番号は、セル番号と考えていただいて構いません。 詳しい方、よろしくお願いいたします。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.4

たとえばAA45の条件付き書式の数式で =(LEN(AA45)=4)*(ISNUMBER(FIND(MID(AA45,1,1),$B$51))+ISNUMBER(FIND(MID(AA45,2,1),$B$51))+ISNUMBER(FIND(MID(AA45,3,1),$B$51))+ISNUMBER(FIND(MID(AA45,4,1),$B$51)))=2 あるいは =(LEN(AA45)=4)*(ISNUMBER(FIND(MID(AA45,1,1),$B$51))+ISNUMBER(FIND(MID(AA45,2,1),$B$51))+ISNUMBER(FIND(MID(AA45,3,1),$B$51))+ISNUMBER(FIND(MID(AA45,4,1),$B$51)))=3 と設定し、それぞれ2個および3個の色塗りを設定します。 AA45をコピー、下向けに貼り付けるなどして展開します。 あるいは、隣のAB45に =(LEN(AA45)=4)*SUM(--ISNUMBER(FIND(MID(AA45,{1,2,3,4},1),$B$51))) と記入して以下コピーしておくと、含まれる数字の個数の合計が1,2,3,0(ゼロは検査値が不適合の場合を含む)と現れます。条件付き書式で調べて使います。 #参考 >画像の、BC51 セルに846と数字が入っています。 結合したセルでは、先頭のB51にデータがあります。間違えないように気を付けてください。

gekikaraou
質問者

お礼

keithinさん ご回答ありがとうございます。 やってみたところ、両方の方法が出来ることに気がつきました。 ありがとうございます!! ただ、私の使っているエクセルはバージョンが2002なのですが、何回かやったり削除したりしていると数式入れても色分けできなくなりました。 アップした画像はテスト的に作ったものなので問題は無いのですが、本番になると困りますね。 今回は一発で求める結果にたどり着くことが出来ました、ありがとうございます。

その他の回答 (8)

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.9

 折角、回答:No.3において > もし、条件付き書式の設定方法が判らない場合には、この解答欄の中に表示されている「補足する」ボタンをクリックすると現れる補足欄を使用して、その旨を御知らせ下さ。 > 又、その際には、Excelのバージョンによって設定方法が異なる場合がありますので、御使いのExcelのバージョンがどれであるのかに関しましても、必ず御知らせ願います。 と書いていたにも関らず、私への補足には >ですから、AA1に条件付き書式を与えようとしてもダイアログに数式を入れる所が無い様に見えます。 という事が書かれていなかったために気づくのが遅れ、回答:No.8で合わせて説明する事が出来ませんでした。  Excel2002における条件付き書式の設定方法は、回答:No.8の方法を例に採りますと、次の様になります。(他の回答者の方々の方法でも、入力する数式が異なるだけで、操作方法は同様です) AA45セルを選択   ↓ 「メニュー」バーの[書式]ボタンをクリック   ↓ 現れた選択肢の中にある[条件付き書式]をクリック   ↓ 現れた「条件付き書式の設定」ダイアログボックスの左端の欄をクリック   ↓ 現れた選択肢の中にある「数式が」をクリック   ↓ 「条件付き書式の設定」ダイアログボックスの左から2番目の欄に =SUMPRODUCT(ISNUMBER(FIND(MID($B$51,ROW($1:$3),1),AA45))*1)=3 と入力   ↓ 「条件付き書式の設定」ダイアログボックスの[書式]ボタンをクリック   ↓ 現れた「セルの書式設定」ダイアログボックスの[パターン]タブをクリック   ↓ 現れた色のサンプルの中にある着色したい色の四角形をクリック   ↓ 「セルの書式設定」ダイアログボックスの[OK]ボタンをクリック   ↓ 「条件付き書式の設定」ダイアログボックスの[追加]ボタンをクリック   ↓ 「条件付き書式の設定」ダイアログボックスの「条件2(2)」内の左端の欄をクリック   ↓ 現れた選択肢の中にある「数式が」をクリック   ↓ 「条件付き書式の設定」ダイアログボックスの「条件2(2)」内の左から2番目の欄に =SUMPRODUCT(ISNUMBER(FIND(MID($B$51,ROW($1:$3),1),AA45))*1)=2 と入力   ↓ 「条件付き書式の設定」ダイアログボックスの「条件2(2)」内の[書式]ボタンをクリック   ↓ 現れた「セルの書式設定」ダイアログボックスの[パターン]タブをクリック   ↓ 現れた色のサンプルの中にある着色したい色の四角形をクリック   ↓ 「セルの書式設定」ダイアログボックスの[OK]ボタンをクリック   ↓ 「条件付き書式の設定」ダイアログボックスの[OK]ボタンをクリック   ↓ AA45セルを右クリック   ↓ 現れた選択肢の中にある[コピー]をクリック   ↓ 色を着ける可能性のある全てのセル範囲(AA45~AA51)をまとめて範囲選択   ↓ 選択範囲を示す黒い太枠の内側にカーソルを合わせてから、マウスを右クリック   ↓ 現れた選択肢の中にある[形式を選択して貼付け]をクリック   ↓ 現れた「形式を選択して貼付け」ダイアログボックスの中にある[書式]と記されている箇所をクリックして、チェックを入れる   ↓ 「形式を選択して貼付け」ダイアログボックスの[OK]ボタンをクリック 或いは AA45~AA51のセル範囲をまとめて範囲選択   ↓ 「メニュー」バーの[書式]ボタンをクリック   ↓ 現れた選択肢の中にある[条件付き書式]をクリック   ↓ 現れた「条件付き書式の設定」ダイアログボックスの左端の欄をクリック   ↓ 現れた選択肢の中にある「数式が」をクリック   ↓ 「条件付き書式の設定」ダイアログボックスの左から2番目の欄に =SUMPRODUCT(ISNUMBER(FIND(MID($B$51,ROW($1:$3),1),AA45))*1)=3 と入力   ↓ 「条件付き書式の設定」ダイアログボックスの[書式]ボタンをクリック   ↓ 現れた「セルの書式設定」ダイアログボックスの[パターン]タブをクリック   ↓ 現れた色のサンプルの中にある着色したい色の四角形をクリック   ↓ 「セルの書式設定」ダイアログボックスの[OK]ボタンをクリック   ↓ 「条件付き書式の設定」ダイアログボックスの[追加]ボタンをクリック   ↓ 「条件付き書式の設定」ダイアログボックスの「条件2(2)」内の左端の欄をクリック   ↓ 現れた選択肢の中にある「数式が」をクリック   ↓ 「条件付き書式の設定」ダイアログボックスの「条件2(2)」内の左から2番目の欄に =SUMPRODUCT(ISNUMBER(FIND(MID($B$51,ROW($1:$3),1),AA45))*1)=2 と入力   ↓ 「条件付き書式の設定」ダイアログボックスの「条件2(2)」内の[書式]ボタンをクリック   ↓ 現れた「セルの書式設定」ダイアログボックスの[パターン]タブをクリック   ↓ 現れた色のサンプルの中にある着色したい色の四角形をクリック   ↓ 「セルの書式設定」ダイアログボックスの[OK]ボタンをクリック   ↓ 「条件付き書式の設定」ダイアログボックスの[OK]ボタンをクリック 【参考URL】  よねさんのWordとExcelの小部屋 > Excel2003 基本講座 > 条件付き書式   http://www.eurus.dti.ne.jp/yoneyama/Excel/jyo-syo.html

gekikaraou
質問者

お礼

ご回答ありがとうございます。 エクセルのバージョンにつきましては、他の方からのご指摘もあり、明記するようにいたします。 ありがとうございます。 今回はご丁寧に教えていただき、ありがとうございます。 おかげさまで目的の結果にたどり着くことが出来ました。 ありがとうございます!

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.8

 回答:No.3です。 >セルは45~51セルで、数字は重複しません。 >そして、桁数は今のところ変わる予定がありません。  それでしたらAA45~AA51のセル範囲をまとめて選択してから、セル条件付き書式で設定する2つの条件の数式を、それぞれ =SUMPRODUCT(ISNUMBER(FIND(MID($B$51,ROW($1:$3),1),AA45))*1)=2 と =SUMPRODUCT(ISNUMBER(FIND(MID($B$51,ROW($1:$3),1),AA45))*1)=3 として下さい。  或いは、もし一々、どのセル(例えばAA45~AA51等の内のどのセル)に入力する数式なのかを考えるのが面倒な場合には、次の様な数式とする手もあります。 =SUMPRODUCT(ISNUMBER(FIND(MID($B$51,ROW($1:$3),1),INDIRECT("RC",)))*1)=2 と =SUMPRODUCT(ISNUMBER(FIND(MID($B$51,ROW($1:$3),1),INDIRECT("RC",)))*1)=3  因みに、 > 但し、この方法では、B51に入力されている数字が例えば「515」の様に数字に重複がある場合、「123467890」の様な「5」しか共通する数字が無いものに対しても、元の「515」の1番目の文字である「5」と、2番目の文字である「5」が、どちらも「123467890」に含まれているために、「2つ含まれている」と判定されます。 という点は、ここまでの他の回答者の方々の方法でも同様です。

回答No.7

No.6 さん、ご説明くださり、ありがとうございました。 >その右のAF1に…(数式)…を入れたところ、0と表示されてしまいます。 セル参照のミスが怪しいと思って、質問文を見直してみました。すると、「846」が入力されている箇所は、B7:C7 のセル範囲を結合しているようですね。 ごめんなさい、錯覚しました。この数式中に 3 箇所ある「C$7」を全て「B$7」に書き換えれば、たぶん正常に機能するのではないかと思います。お試しください。

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

>ちなみに使っているエクセルのバージョンは2002です。 >ですから、AA1に条件付き書式を与えようとしてもダイアログに数式を入れる所が無い様に見えます。 Excel2003以前の古いバージョンのエクセルを使用されている場合は、「書式」「条件付き書式」で「セルの値が」の部分の右の▼をクリックして「数式が」にして私の提示した数式を入力してみてください。 #このように、エクセルの操作に慣れていない場合は、ご使用のバージョンを明示することが重要なことがお分かりになったと思います(回答者に無駄な回答をさせることになります)。

gekikaraou
質問者

お礼

ありがとうございます。 そうですね、せっかく時間を割いて頂いたのに無駄にしてはもったいないですね、 これからはバージョン明記するようにします。 ありがとうございます!!

回答No.5

AB1 =mid($AA1,column()-column($AA1),1) AF1 =countif(ab1:ae1,mid(C$7,1,1))+countif(ab1:ae1,mid(C$7,2,1))+countif(ab1:ae1,mid(C$7,3,1)) と入力。 AB1 セルをコピーし、 AB1:AE6 のセル範囲に貼り付け。 AA1:AA6 を選択し、 AA1 がアクティブな状態(選択している範囲のセルが青くなっている中で 1 つだけ色が異なる状態)で、条件付き書式のダイアログを起動。条件式として次のとおり入力。 ●「2」と「3」で異なる色( 2 式により 2 条件として設定) =af1=2 =af1=3 ●「2」でも「3」でも同じ色( 1 式により 1 条件として設定) =(af1=2)+(af1=3) 作業列を使っていいならたくさん使ったほうが、数式は当然、簡単なものに。

gekikaraou
質問者

補足

ご回答ありがとうございます。 AA5の2456を AB1-AE1に分割表示するところまでは出来ましたが、その右のAF1に =countif(ab1:ae1,mid(C$7,1,1))+countif(ab1:ae1,mid(C$7,2,1))+countif(ab1:ae1,mid(C$7,3,1)) を入れたところ、0と表示されてしまいます。 これは何か原因があるのでしょうか? ちなみに使っているエクセルのバージョンは2002です。 ですから、AA1に条件付き書式を与えようとしてもダイアログに数式を入れる所が無い様に見えます。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.3

 確認したいのですが、B51に入力されている数字は3桁とは限らず、桁数が変化する事もあるのでしょうか?  又、B51に入力されている数字は、「777」や「121」の様に、数字が重複している事はあり得ないと考えて宜しいのでしょうか?  もし、そうであれば、条件付き書式において条件を2つ使用して、次の様な条件において色を変化させる様に、条件付き書式の設定を行われると良いと思います。  もし、条件付き書式の設定方法が判らない場合には、この解答欄の中に表示されている「補足する」ボタンをクリックすると現れる補足欄を使用して、その旨を御知らせ下さ。  又、その際には、Excelのバージョンによって設定方法が異なる場合がありますので、御使いのExcelのバージョンがどれであるのかに関しましても、必ず御知らせ願います。 ●[数式が]において =SUMPRODUCT(ISNUMBER(FIND(MID($B$51,ROW(INDIRECT("Z1:Z"&LEN($B$51))),1),$AA1))*1)=2 ●[数式が]において =SUMPRODUCT(ISNUMBER(FIND(MID($B$51,ROW(INDIRECT("Z1:Z"&LEN($B$51))),1),$AA1))*1)=3  但し、この方法では、B51に入力されている数字が例えば「515」の様に数字に重複がある場合、「123467890」の様な「5」しか共通する数字が無いものに対しても、元の「515」の1番目の文字である「5」と、2番目の文字である「5」が、どちらも「123467890」に含まれているために、「2つ含まれている」と判定されます。

gekikaraou
質問者

補足

説明がわかりにくくてすいません。 セルは45~51セルで、数字は重複しません。 そして、桁数は今のところ変わる予定がありません。 ご回答ありがとうございます!

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

説明文のセル番地と添付画像のレイアウトが違うように思うのですが、説明文通りだとすると、AA45 セルからAA50セルを選択して、条件付き書式で「数式を使って・・・」を選択し、以下の数式を入力してご希望の塗りつぶしをしてください。 =COUNT(FIND(MID($BC$51,ROW($1:$3),1),AA45))=2 同様に3つ一致の場合の数式を「追加」して書式設定してください。 =COUNT(FIND(MID($BC$51,ROW($1:$3),1),AA45))=3 #ご使用のエクセルのバージョンが不明でしたので、一般的な回答をしてみましたが、Officeソフトはバージョンによって使用できる機能や操作方法が大きく異なりますので、質問の際にはか必ずバージョンを明記するようにしましょう。

gekikaraou
質問者

お礼

ご回答ありがとうございます。 まさにこの通りの結果を求めていました。 一発で回答を頂きありがとうござぃます。

  • masatsan
  • ベストアンサー率15% (179/1159)
回答No.1

 それぞれのセルの文字列(数値なら文字列に変換して)にして  Mid関数でそれぞれを端から比較する。  文字が全部含まれていたら色を変える 色を変えたいセル.Interior.Color = RGB(255 0, 0) ' 背景を赤色

関連するQ&A

  • エクセルでの条件付き書式の設定について

    エクセル2003を使用しています。 A1とB1のセルの数字を比較して、異なる場合のみ、セルにセルの色づけを行う条件付き書式を設定する方法について、教えてください。 表示上の数値は、A1もB1も、105.44なのですが、A1の実データは、105.445であるため、色づけされてしまいます。あくまでも、表示上のデータはイコールなので、色づけされないような設定にするには、どのようにすれば、よろしいでしょうか。よろしくお願いします。

  • エクセルの文字列の指定(制限)設定について

    エクセルのひとつのセルに10桁の番号を入力するよう設定したい場合です。 (ちなみにエクセル2007です。) 多くても少なくても間違いで、必ず10桁にならないとエラーとなる、 1~6と9~10桁が数字、7・8桁にはアルファベットからなる番号なので、 それ以外のものが入力された場合はエラーとなる、 そういう設定はセルの書式設定か関数を用いて可能でしょうか? (「123456AA78」というような番号になります。)

  • エクセル2002で数値の個数を抜き出し表示させる

    エクセルに詳しくないので教えて頂けませんか。 画像のようなデータがあります。 AAセルの中は4桁では無くひとつひとつが単体の数字だとします。 AA45セルなら、2,3,4,6という具合です。 AA45~AA50の数字の中から、1の個数、2の個数~8の個数と言う具合にACセルに抜き出したいと思います。 AC43には1の個数、AC44には2の個数、AC45には3の個数と言う具合です。 抜き出す場所はAA45~AA50の中すべてからです。 画像のデータなら1は1個、2は2個、3は4個という具合です。 他にも行列違いの同じ作業がありますので、関数が難しければ変更点も教えて頂ければうれしいです。 それでは、よろしくお願いいたします。

  • エクセル 条件付書式について

    だれか無知な私に教えてください。 エクセルの条件付書式があると思うのですが、指定の日付になったらセルに色をつけたりすることが可能なはずですが、その中で有効期限が過ぎた場合にセルに色づけする書式(方法)を誰か教えてください。 1. 本日(1/12)より前の日付(~1/11)でセルに色を付ける方法。 2. 上記条件にセルではなく列または行に色づけする方法 これがわかれば大変助かります。宜しくお願い致します。

  • エクセルのセルの書式設定について教えてください。

    エクセルで作った表で住所録を作っているのですが、セルの書式設定で分からない点がありますので教えてください。 1・セルに対して住所を打ち込みたいのですが、数字の部分だけ自動的に半角にすることは可能ですか?  例・15丁目→15丁目 2・セルに対して電話番号を打ち込みたいのですが、9桁の番号に対して自動的にハイフンを付けることはできますか?  例・0123456789→012-345-6789 (この際、頭文字が0の場合でも省略されないで表示されるようにしたいのです) どなたかご存じの方がいらっしゃいましたら教えてください。

  • エクセルで条件付書式設定を解除して書式設定を残す方

    説明がしづらく、うまく伝えられればいいのですが。 条件付書式でセルに色を付けたりしています。  例) A行のセルに     100より小さい数字が入力されていたら、B行は赤で塗りつぶす。     100より大きい数字が入力されていたら、B行は青で塗りつぶす。     B行には文字や数字が入力されています。 例)のような場合で、B1に赤、B2が青で塗られている場合 条件付書式を介さずに、B1やB2に色の塗りつぶしを残す方法がありますでしょうか? 条件付書式の解除(削除?)しても、A行に数字がなくても、B行に色が付いていて欲しいのです。 シートやファイルやセルは、別の場所を使用しても問題ありません。 考えている事は、 計算式で答えを表示してあるセルを、値のみコピーする。のような方法の、書式のみペーストといった形です。 他に希望通りの表示ができれば特に細かな点は気にしません。 いろいろなセルから条件をつけてリンクされたり計算結果を表示させたりした、プレビュー用といいますか、見た目の完成された表を、別担当に渡すことになりました。 式でできたシートではなく、テキストや数字の入力されたシートに変換して渡す場合、条件付書式が効いているとその後の作業に見た目の不具合が生じてしまうことを避けたいのです。 何かいい方法があれば教えてください。 説明不足がああれば、補足します。

  • エクセルの条件付書式

    こんにちは。 はじめて質問させていただきます。 セルD2が今日以前の日付の時別なセルに色をつける設定にしたくて、 条件付書式で「数式が」「=D2<TODAY()」としました。 これで今日以前の日付に色づけできるようになりましたが、空白のセルにもいろがついてしまいます。 空白のセルには色づけしたくない場合はどうすればよいでしょうか? 教えてください><

  • エクセルの条件つき書式を別のセルに適用させる

    お世話になっております。m(_ _)m エクセルに「条件つき書式」という機能があります。 これは、「設定をしたセルの書式」を制御するものですが、条件の指定に使うセルと書式を設定したいセルが別の場合は、どのようにすればよいのでしょうか?可能なのでしょうか? やりたいことは、A1のセルに入っているデータが8桁なら書式を「00000000(ゼロ8個)」とし、9桁なら「000000000(ゼロ9個)」というようにしたいのです。 このような設定をしなければならない理由は、このセルに入るデータは桁数が8桁か9桁で、数字か文字か決まっていないデータが入ります。 例)00123445   E0123456   012345678   Z12345678 等 「E0123456」や「Z12345678」が入る場合は文字列としてデータが扱われてもかまわないのですが、「00123445」や「012345678」は「数値」として扱いたいのです。 「00123445」の場合、数値としてこの数字を表示したければ書式を「00000000(ゼロ8個)」とすればよいと思います。 しかし、このセルには9桁の「012345678」というデータが入る可能性があります。このデータも数字として扱いたいので「000000000(ゼロ9個)」とすればよいとなります。 しかし、ゼロ9個の書式設定をしてしまうと、8桁の数字が「000123445」と表示されてしまいます。それでは困ります。 8桁は8ケタ、9桁は9ケタで、0から始まる数字を表示したい場合、どのようにすれば表示できるでしょうか? 長くなりましたが回答をお願いします。

  • Excel、セルの書式設定について

    バージョンは2003を使っています。 セルの書式設定→表示形式→ユーザー定義で 「○○@」と入れると 何も入力しなければそのままですが 何かを入力すると、必ずその入力した文字列の前に○○が表示されますが 数字はできないのでしょうか? 漢字はできたのですが 半角数字を同じようにやったら 「入力した表示形式が正しくありません。 あらかじめ組み込まれている表示形式のいずれかを使用してみてください…」 というエラーになりました。 1000セル以上に数字を入力予定なのですが 1セルに20桁で、前半15桁は同じ羅列です。 15桁のみ入力してコピペしてというやり方でもいいのですが そうすると、1セル1セル入力の際にクリックしないといけないので…。

  • EXCELの条件書式

    例えば、5桁の乱数が10×100の表内に1000個入っています。この中から、特定の5桁の数値5個(例えば00023,81819,26345,88199,40876)のセルのみ背景を赤にしたいのです。 条件付書式で設定できる条件が3個しかありません。この3条件で抽出したセルを手作業で絶対書式にして、再度残りの2条件を設定しなおすしか方法はないでしょうか? 何か良いヒントありましたらお教えください。

専門家に質問してみよう