• ベストアンサー

関数 誕生日を入力 別のセルに色がつく、変更〇がつ

画像にはいくつかの非表示にしてあるものがありますので縦番号がとんでいます。 赤線で示したのが連動です。馬から人にも連動します(311=111)。連動設定ですが日の部分だけ〇と同生日◎2つを設定したいです。=IF(AND(ってかんじですかね、あとわかりません(笑)。セルの範囲はC4:Q6の範囲になります、ここに入力されていきます。あー、同日だけにしたんでANDはいらんのかな?できたら同生日もお願いしたいです。宜しくお願い致します。

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

  • ベストアンサー
  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.2

>日の連動とは入力値0425なら25,0408なら08、つまり日の部分だけを見ます。 「連動」を国語辞書で意味を調べてください。 あなたの例示とは異なるはずです。 また、生日は添付画像では数値の425のように見えますが文字列で0425のように入力されるのですか? 一般的に日付は4/25のように入力するとExcelで扱う日付のシリアル値(1900/1/1を起点とする日数)になります。 データの実態が分からないと正しい処理ができませんので再確認してください。 >同じ値(0425=0425、0408=0408)なら◎にします。この時後の入力で◎を〇で上書きしてはいけません。〇<◎の条件が付きます。〇が付く式だけでもお願いしたいです。 IF関数の本質を理解すればそのような心配は不要です。 そのためにフローチャートを作成して条件分岐の論理を確認してから数式を組み立てます。 フローチャートは次のようになるでしょう。 開始→C13は空欄か?┬→Yes→C16=""→終了 ┌─────────────┘ └─→No →C13と同じ値がC4:Q6の中にあるか? ┬→Yes→C6="◎"→終了 ┌──────────────────────────────┘ └─→No →C13の右2文字がC4:Q6の中の右2文字と同じか?┬→Yes→C6="〇"→終了 ┌─────────────────────────────────────┘ └─→No →C6=""→終了 C6には次の数式を設定します。 =IF(C13="","",IF(COUNTIF($C$4:$Q$6,C13),"◎",IF(SUMPRODUCT((RIGHT($C$4:$Q$6,2)=RIGHT(C13,2))*1),"〇",""))) 尚、C6へ代入する"◎"や"〇"は此処に提示の数式をコピペしたときは予想の「まる」にならないかも知れません。 C6セルをQ6セルまでオートフィルコピーし、その結果をC21:Q21へコピペすれば良いでしょう。

annsyuu38
質問者

補足

IF(SUMPRODUCT((RIGHTを検索して意味がわかりました!日だけ=RIGHT(C4:Q6,2)なんですね、、、=IF(C13="","",IFの"",""は値が入ってないときの処理かな?また研究していきます。どうもありがとうございました、エクセルが好きになりました面白いです。でわ~

その他の回答 (2)

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.3

>MOD(値,100)って書き込みくださいましたがわかりませんでした。 以前の質問に対する回答の疑問を此処で問うときは以前の質問のURLを提示してください。 http://okwave.jp/qa/q9255109.html の回答No.3に記載した次の数式のことでしょうか? =INT((MOD(A2,100)+MOD(B2,100))/10)+MOD(MOD(A2,10)+MOD(B2,100),10) タイプミスの箇所があります。 =INT((MOD(A2,100)+MOD(B2,100))/10)+(MOD(A2,10)+MOD(B2,10)) A2=1113 (数値)、B2=203 (数値) MOD(A2,100)→MOD(1113,100)→13  MODは元の値を指定の値で除したときの余りを返します。 (前半の数式) INT((MOD(A2,100)+MOD(B2,100))/10) → INT((13+3)/10) → INT(1.6) → 1 (後半の数式) (MOD(A2,10)+MOD(B2,10)) → 3+3 → 6 前半の数式の結果が 1 で後半の数式の結果が 6 なので双方を加算すると 7 になります。 この質問でベストアンサーに選んだ回答はA列とB列に日付のシリアル値が入力されていることを前提にした数式です。 処理対象の値の実態が分からないと見えている状態から憶測して数式を組みますので期待した結果が得られないこともあります。

annsyuu38
質問者

お礼

ありがとうございます。あと二つ設定したいんですが、よろしければまたお願いしたいです。

annsyuu38
質問者

補足

Chiquilinさんのコメントです。詳しい説明ありがとうございます。 MOD,INT,検索して勉強していきます。

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.1

>赤線で示したのが連動です。 「連動」と言う語句がどのようなことなのかが理解できません。 >連動設定ですが日の部分だけ〇と同生日◎2つを設定したいです。=IF(AND(ってかんじですかね、 C13の223の右から2文字(23)とC4:Q4とC6:Q6の右から2文字が一致するデータが有るときはC16セルに"〇"を代入する数式を知りたいのでしょうか? 考え方としてはIF関数の入れ子構造の数式で目的の条件を満たす論理式を考えれば良いことになります。 前回の質問(http://okwave.jp/qa/q9256602.html)では条件に合うときにセルの塗りつぶしでしたが、今回は比較データの下のセルへ"〇"または"◎"を代入することにされたのですよね? 前回の場合は条件付き書式でセルの色付けをしましたが今回はセルに値を代入するので処理結果を代入するための数式を目的のセルへ入力しなければなりません。 この数式は連動と言う表現ではありませんので用語を適切なものに置き換えてください。 正しい用語で質問しないと回答が困難になります。 IF関数を使って条件分岐する場合はフローチャートを書いて論理を整理してください。 前回の質問では比較対象の値が連続していなかったので文字列の比較としましたが、今回は数値の値として2つの範囲にまとめてあるので考えやすいかも知れません。 何れにしても模擬データで検証しながら数式を組み立てますので時間がかかります。 無駄な質問は極力避けるようにして頂きたいものです。

annsyuu38
質問者

お礼

また変なことを書きました、上書き防止のために〇と◎の行を分けたんでした。すいません。なお、◎のほうは解決しました。日だけの連動の式ができてません。MOD(値,100)って書き込みくださいましたがわかりませんでした。

annsyuu38
質問者

補足

日の連動とは入力値0425なら25,0408なら08、つまり日の部分だけを見ます。日と日が合うと〇を付けます。その式をC16~T16に入れたいわけです。 同じ式をC21~T21にコピーします。同じ値(0425=0425、0408=0408)なら◎にします。この時後の入力で◎を〇で上書きしてはいけません。〇<◎の条件が付きます。〇が付く式だけでもお願いしたいです。