プロが教えるわが家の防犯対策術!

以下①②の条件付き書式について、自分なりに設定したのですが、反映されず・・・
わかる方いらっしゃいましたらご教授いただけないでしょうか?


①A、H、I、M列の値が一致している行が複数ある場合、C4セルに書式を反映させたい
・下記のサンプルの場合、9行目と10行目がそれに該当する。
・今設定しているC4セルの条件付き書式設定は下記です。
【=COUNTIFS(A7:A306,A7:A306,H7:H306,H7:H306,I7:I306,I7:I306,M7:M306,M7:M306)>1】


②G列に小数点以下の数値が1つでもある場合、G4セルに書式を反映させたい
・下記サンプルの場合、G8セルがそれに該当する。
・今設定しているG4セルの条件付き書式設定は下記です。
【=SUMPRODUCT((MOD(G7:G301,1)>0)*1)】



 A  B  C  D  E  F  G  H  I  J  K  L  M
1
2
3
4     エラー       エラー
5
6 問1 問2 問3 問4 問5 問6 問7 問8 問9 問10 問11 問12 問13
7 7/13 a dbc1 16      13.00 7/1 aa        ああ
8 7/14 a ddd1 16      28.59 7/2 aa        ああ
9 7/20 b ccd3 15      16.00 7/6 cc        いい
10 7/20 b ccd3 10      16.00 7/6 cc        いい
:
:

質問者からの補足コメント

  • ②ですが、解決いたしました。
    提示した式でいけるとご助言いただいたのでG列のデータを色々いじってみたところ、G4セルに書式が反映されました。
    悪さをしていたのは、G列のデータも数式だったのですが、エラーの場合は""(空欄)とする条件をIfでつけていたため、こちらを数値の0に直してみたところ、反映されたという次第です。

    初歩的な問題でしたら申し訳ありません・・
    教えて下さった方本当に助かりました。ありがとうございました。

      補足日時:2023/07/14 22:54

A 回答 (5件)

こんばんは



②に関しては、ご提示の式で判断できるのではないでしょうか。
ただし、①の式が7行目~306行目であるのに対して、7~301行としている意図が不明です。
また、セル表示上での値ではなく実際の値で判定しますので、例えば、実際の値が「13.00001」などで画面表示では「13.00」となっていても「少数以下の数値がある」と見做されますので、画面の見た目とは一致しない場合があるかも知れません。

①に関しては、ご提示の式ではうまくいかないようですね。
結果が配列で返るので、その中に2以上のものが存在するかどうかをチェックすればよいのかな・・
=SUMPRODUCT((COUNTIFS(A7:A306,A7:A306,H7:H306,H7:H306,I7:I306,I7:I306,M7:M306,M7:M306)>1)*1)
としてみてはどうでしょうか?

スピル機能が使える環境であれば、以下のような式でも判定可能と思います。
=ISERROR(INDEX(UNIQUE(CHOOSECOLS(A7:M306,1,8,9,13)),MIN(COUNTA(A7:A306)+1,300),1))
    • good
    • 2
この回答へのお礼

ご丁寧に親切に教えて下さって本当にありがとうございます(;-;)
めちゃくちゃわかりやすいです><


②、なぜか書式が反映されないのです。。数式以外のところで要因があるのでしょうか。。

>>ただし①の式が7行目~306行目であるのに対して7~301行としている
→本当ですね><細かい部分まで見て下さってありがとうございます!!修正してまいります。

>>セル表示上での値ではなく実際の値で判定しますので、例えば・・・
→なるほど…勉強になります。ありがとうございます!!
 このG列は小数点以下2つまでのROUNDDOWNで設定しているので、その辺は大丈夫そうです!


①ですが、ご教授いただいたとおりやってみたらうまくいきました (T - T)すごすぎる・・・・
本当に本当に感謝です><切羽詰まっておりましたが、やっと次に進めそうです泣泣泣泣
ありがとうございます!!!!

お礼日時:2023/07/14 22:23

添付図参照(Excel 2019)


 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄↓↓↓↓↓↓↓↓↓↓↓↓↓
「【!】Excel 2つの条件付き書式が反」の回答画像5
    • good
    • 1
この回答へのお礼

なるほど、このように作業欄を設けても可能ですね・・!!完全に盲点でした。
今回はフォーマット上、作業欄作らないほうが好ましいのですが
今後このように対処すること留意いたします。
教えて下さりありがとうございます!!!

お礼日時:2023/07/18 09:07

No3です。



>エラーの場合は""(空欄)とする条件をIfでつけていたため、~
G列は数値か空白であるものと解釈していました。

関数で「""」を返した場合、「長さ0の文字列」を意味するようになります。
文字列に対して
 MOD(文字列,1)
を計算しようとしても計算はできないので、エラーになります。
一部でもエラーがあれば、計算式全体の結果もエラーになります。
条件付き書式の場合にはエラー値はFalse同等と見做されるので、他のセルに少数以下があってもFalseの判定となってしまったということです。

想像するところ、セルに「0」を表示させたくなくて""を返す関数式を設定しているのでしょうから、もしもそのような見え方にしたければ、以下のような方法も考えられます。
1)①の計算式はそのままにして、G列の関数式は0を返すように変更する。
その上で、セルの書式設定で「0」を表示しないようにする。
2)G列の関数式は""を返すようにしておいて、①の計算式を「エラーは無視」するように変更する。

1)はG列の対象範囲の書式設定を「ユーザ定義」で「0.00;-0.00;;@」などのようにしておくことで実現できます。(「0」の値だけ表示されなくなります)

2)は①の関数式を
 =AGGREGATE(14,6,MOD(G7:G306,1),1)>0
などに変えることで可能と思います。
ただし、エラー値を無視しますので、セルの値が""だけでなく、"abc"のような文字列があってもそのセルは無視するようになります。
    • good
    • 1
この回答へのお礼

>>「長さ0の文字列」
>>一部でもエラーがあれば・・・条件付き書式の場合にはエラー値はFalse同等
なるほど。。。知識不足でお騒がせしました><教えて下さりありがとうございます。

>>想像するところ・・・・
もう、本当にすごいです(T_T) 1)も2)試してみました。
今回G列は数式で”abc”などの文字列は含まれることはないのですが
今後、自由に記入できる列でこの関数を使用する際は、1)の方で対処するようにいたします。

この度は色々ご丁寧に教えて下さり、本当に本当に勉強になりました。
また何か疑問があった際にご縁でご教示いただけたら本当に幸いです><
ありがとうございました。感謝です。。

お礼日時:2023/07/18 09:03

No.1です。



> 数式は合っている・・ということでしょうか。
そうではなく、
数式の成否を、別な場所で確認しましょう、
という事です。
    • good
    • 1

まず、その条件式が適正であることを確認してください。



その条件式を別なセルに書き込めば、その結果でわかります。
    • good
    • 0
この回答へのお礼

見て下さりありがとうございます_(._.)_

数式は合っている・・ということでしょうか。
私のExcelだと①②とも反映されず・・・同じ条件で別のセル、シート、ブックで試しても書式は反映されませんでした。
バグかなにか・・・
もし思いつく原因等あればご指摘頂けると幸いです。

お礼日時:2023/07/14 17:20

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!