アプリ版:「スタンプのみでお礼する」機能のリリースについて

Excelの条件付き書式を用いて、特定の文字列が表示されているセルに色付けなどするとき、その文字列が直接入力されている場合はうまくいくのですが、計算式などを使ってそのセルに文字表示させている場合はその文字列を正しく認識しないようなのです。
なぜうまくいかないか、何かうまい方法があればご教示賜りたく、よろしくお願いします。

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

  • ご指摘ありがとうございます。Excelに不慣れのため説明下手なのと、友人の健康管理データで個人情報に触れるためExcel表そのものをお見せするわけにはいかず申し訳ないのですが、やりたいことは次の通りです。
    起点となるセルには「yyyy/mm/dd」形式で日付データが入っており、それをセルの書式設定で「ユーザー形式」として種類欄に「m"月"d"日"(aaaa);@」という表示形式が入っております。例えばあるセルに2016/07/16を入力すると「7月16日(土曜日)」という文字列が表示されます。
    そのセルを起点に、計算式で日付データを「+1」ずつして行った一連のセルの中から、条件付き書式を用いてその中に「土曜日」という文字列があるセルに青色背景、「日曜日」という文字列があるセルに赤色背景をそれぞれ表示したいのです。
    ご面倒おかけしますが、よろしくお願いします。

    No.3の回答に寄せられた補足コメントです。 補足日時:2016/07/16 22:27

A 回答 (6件)

こんばんは!



横からお邪魔します。
>「ユーザー形式」として種類欄に「m"月"d"日"(aaaa);@」
>「土曜日」という文字列があるセルに青色背景、「日曜日」という文字列があるセルに赤色背景をそれぞれ表示したいのです。

あくまで表示形式で ○曜日 となっているだけで実データはシリアル値になります。
すなわち「土曜日」や「日曜日」という文字で条件付き書式を設定するのではなく
シリアル値そのもので条件付き書式の設定をした方が良いと思います。

具体的な配置が判らないので、仮にA列にシリアル値が入りA列を塗りつぶすとします。

A列すべてを範囲指定 → 条件付き書式 → 新しいルール → 数式を使用して・・・ → 数式欄に
=WEEKDAY(A1)=1
という数式を入れ → 書式 → 塗りつぶし → 「赤」を選択しOK

A列を選択してまま新たに条件付き書式を設定します。
数式欄に
=AND(A1<>"",WEEKDAY(A1)=7)
という数式を入れ → ・・・中略・・・ → 「青」を選択しOK

こんな感じで対応できると思います。

※ 注意点 ※
土曜日の場合は注意が必要です。
空白セル=「0」となり、Excel的にはシリアル値の「1」の一つ前
すなわち1900年の1月1日は「日曜」のため
空白セルは「土曜」と判断してしまうようです。m(_ _)m
    • good
    • 0
この回答へのお礼

ありがとうございました。
ご教示頂いた通り、数式「WEEKDAY」を導入して、うまく目的を達することができました。ただ、確かに空白セルは、土曜と判断するようですね。

お礼日時:2016/07/17 18:10

No.4です。



No.5さんのお礼欄に
>ただ、この方法も空白セルをWEEKDAY7(土曜日)と誤認識する等、完璧ではありませんでした。
とありますが・・・

日曜・土曜 両方の条件付き書式を示したのですが、ちゃんと試してないみたいですね?

前回の 注意点以降の記述は
日曜と土曜の数式が異なるために書いた数式の説明文です。

※ 土曜の方は空白セル以外で・・・という条件をAND関数で付け加えています。m(_ _)m
    • good
    • 0
この回答へのお礼

たびたびのご指摘、ありがとうございます。
No.4でご教示頂いた「WEEKDAY7による空白セルの誤認識」を回避する方法は理解していましたが、対象セル群に敢えて空白セルを作らない設定にしましたので、当方では問題は発生していません。
No.5さんへのお礼に、「完璧ではない」と報告したのは、関数Weekdayにも不備な点があるということを言いたかっただけです。
誤解を招くような説明で、申し訳ありませんでした。

お礼日時:2016/07/18 13:34

No.4でも回答されていますが、セルに入力されている値はあくまでも「シリアル値」のままです。


文字列ではありません。
(右寄せ、左寄せの指定をしていないのに、右寄せで表示されますよね。右寄せは数値、左寄せは文字列になります)


どうしても文字列にする必要があるのでしたら、セルの書式設定ではなく、TEXT関数で文字列に変換しましょう。
B1セルに
 =TEXT(A1,"m月 d日 (aaaa)")
など。
そうしてA列を非表示にするとか。
(名前ボックスに「A1」と入力することで非表示のA1セルを指定することができます)

これならば文字列になっているので、条件付き書式の条件式に文字列を扱ったものを設定できます。
ただこの場合、
A1セルは入力セルなので非表示にはせず、
 条件付き書式で 「m"月" d"日"」
B列にセルに曜日を表示させる列を追加し
B1セルに
 =TEXT(A1+7,”aaaa")
などとし、B列のセルをその行のセル修飾の条件にしてはいかがでしょう。
(A1に7を加えるのは、No.4でも指摘されている空白対策で、曜日しか表示しないことを逆手に取ってます)

※個人的にはNo.4で回答されているようにシリアル値のまま使うことを勧めます。

・・・
A列を非表示にして名前ボックスにA1を入力してA1セルを選択しているところ
  ↓
「Excelの条件付き書式で、計算式で導か」の回答画像5
    • good
    • 0
この回答へのお礼

追加のご回答ありがとうございました。
ご教示頂いた方法は、トライしてみましたが、やはり自分には難しく、結局ご助言通り、No.4さんの方法で目的を達することができました。ただ、この方法も空白セルをWEEKDAY7(土曜日)と誤認識する等、完璧ではありませんでした。
一番スマートな方法はやはり「文字列」による選別だと思いますが、それが「条件付き書式」のメニューに存在するにも関わらず、直接入力されたものでなければ(計算式や関数で導かれたものは)認識されない、というのはある意味欠陥(一種の「バグ」)ではないかと、残念に思います。

お礼日時:2016/07/17 22:51

>計算式などを使ってそのセルに文字表示させている場合


(´・ω・`)
具体的にその計算式と結果の値を示してください。
併せて「条件付き書式」での条件指定も。

使い方と言うか、質問文中の説明を間違えているような気がしてならないのです。
この回答への補足あり
    • good
    • 0

「計算式などを使ってそのセルに文字表示させているセル」を


「TEXT関数で変換」して検索対象にしたらうまくいきませんか?
    • good
    • 0

見た目の表示が同じでも格納されている値が違うことはよくあることですよ。


例えば、日付のシリアル値を書式設定でyyyy/mm/dd表示しているものと、文字として”2016/07/16”と表示しているものでは、違うものとして扱われます。
それぞれの数式を確認して、同じ属性になるようにすれば、正しい判定が行われます。
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A