- ベストアンサー
関数を使って誕生日に◯や▢がつく方法
- 関数を使って誕生日に◯や▢がつく方法を教えてください。
- また、◎と〇の間に▢の設定を入れたいです。設定は0826=0817,"▢"、月が同じで日運が同じという条件です。
- さらに、日運値だけの連動で△を最後の位置に入れたいです。◎>▢>〇>△の順になります。塗りつぶしの色で表現する方法も教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>△は、しかしよく考えてみると、当日と日の数字を足す必要はないですね。 質問文には「当日」と言う文言が無いので「当日と日の数字を足す必要はないですね」は蛇足になり、思考の混乱を起こします。 >2桁の数字(29=2+9=11=2,28=2+8=10=1)1の位と10の位を足した値がC4:Q6とC13 の間で一致してれば"△"で表示するというわけです。 今回の添付画像と前回の添付画像では列が異なっています。 「C4:Q6とC13 」は前回の添付画像を参照しています。 どちらの添付画像を処理対象にするかを指定してください。 また、日付の10の位と1の位を加算して1桁の数値にする条件を加味するには数式が複雑になりますので作業用(中間加工値収納用)のセルを設けた方が良いでしょう。 =INT((INT(MOD(C4,100)/10)+MOD(C4,10))/10)+MOD(INT(MOD(C4,100)/10)+MOD(C4,10),10) 騎手生日=926 → 2+6 → 8 → 0+8 → 8 馬 生日=208 → 0+8 → 8 → 0+8 → 8 馬 生日=829 → 2+9 → 11 → 1+1 → 2 他に追加要件が有れば追加してください。
その他の回答 (2)
- unokwave
- ベストアンサー率58% (966/1654)
その式を分解してみれば理解できます。 IFは「条件」「一致すればA」「不一致ならB」という記述になっています。 この「不一致ならB」の部分に入れ子に次のIF文を入れているのがExcelで複雑に見えるIF文の正体ですので、分解すれば簡単な条件式になります。 分解作業や組み立て作業はExcel上でおこなわず、メモ帳に式をコピーしておこなうほうが簡単です。 IF(E13="","",IF(COUNTIF(D4:U5,E13),"◎",IF(SUMPRODUCT((RIGHT(D4:U5,2)=RIGHT(E13,2))*1),"〇",""))) は 一番最後のIF文を取り出し見ると(IFに続く括弧とペアになる括弧を探します) 1) IF(E13="","",IF(COUNTIF(D4:U5,E13),"◎",)) 2) IF(SUMPRODUCT((RIGHT(D4:U5,2)=RIGHT(E13,2))*1),"〇","") に別けられます。 ダブルクォーテーション「"」やアポストロフィー「’」で括られてる括弧を除き、開き括弧「(」と閉じ括弧「)」の数は同じになっている必要があるのがどの関数に当てはまりますので、開き括弧を+1、閉じ括弧を-1として足し算していってゼロになった閉じ括弧がペアになる括弧ですので。 次にIFの中にまだIFが残っている1)を分離してIFの登場順に並べると a) IF(E13="","",) b) IF(COUNTIF(D4:U5,E13),"◎",) c) IF(SUMPRODUCT((RIGHT(D4:U5,2)=RIGHT(E13,2))*1),"〇","") となります。 きちんと理解できたら次に進みます。 このbとcの間に□条件のIF文を作り、cの後に△条件のIF文を作って並べてください。 出来上がったらIF文の構成要素「IF(条件, 一致, 不一致)」の不一致の部分に後ろのIFを入れていきます。 組み立て作業は入力済みの部分を壊さず、メモ帳の画面の一番下に組み立て対象となるIF文をコピーしておこなってください。 組み立ての順序としては、後のIF文を一つ前のIF文の「不一致」要素に挿入する逆順で組み立てると混乱せずに済むはずです。 「不一致」の箇所はIF文の最後の閉じ括弧の手前なので挿入位置が明確ですから。 IF(条件1, 一致1, 不一致1) IF(条件2, 一致2, 不一致2) IF(条件3, 一致3, 不一致3) とあれば、条件3のIF文を条件2の不一致2に入れ込み、 IF(条件2, 一致2, IF(条件3, 一致3, 不一致3)) 条件1のIF文の不一致1に組み立てたこいつを入れ込みます。 IF(条件1, 一致1, IF(条件2, 一致2, IF(条件3, 一致3, 不一致3))) 上手くいなければ組み立てた式全体を分解して、組み立てる前と同じになっているか確認してみてください。 同じになっているのであれば、追加したIF文に問題がありますので、組み立てた式全体を提示しつつその箇所のみを再度質問してみてください。 条件付き書式は文字列の指定で○を指定した条件を個別に設定すれば済むはずです。 http://www.ne.jp/asahi/juku/excel/Jouken12.htm Excelのバージョンによって指定の仕方事なり、書式の数の制限がある場合もあります。
補足
入れ子のことは理解できます、検索して勉強してます。 C4:Q6とD13 の間で一致するものがあればD14に▢を表示するということをやりたいわけなんですがその式がわかりません。 条件1は誕生日の月が一致する。 条件2は日の数字を1の位と10の位を足して1から9の間にした値が一致する。 この二つです。 =IF(AND(C4:Q6 以下がわかりません。
- bunjii
- ベストアンサー率43% (3589/8249)
あなたの考え方を整理するためにフローチャートを以下のように示します。 フローチャート C13が空欄か?→Yes→C16=””→終了 ↓ No ↓ C4:Q6にC13と同じセルがあるか?→Yes→C16=”◎”→終了 ↓ No ↓ C4:Q6/100の整数部にC13/100の整数部が同じセルがあるか?→Yes→C16=”□”→終了 ↓ No ↓ C4:Q6/100の小数部にC13/100の小数部が同じセルがあるか?→Yes→C16=”○”→終了 ↓ No ↓ C16=”” ↓ 終了 >もう一つあります。日運値だけの連動で△を最後の位置に入れたいです。 フローチャートの何処にどのような条件で△が入るのかを補足してください。 月日が同じのときは◎ 月のみ同じのときは□ (記号の四角=□、環境依存の四角=▢) 日のみ同じのときは○ (記号のまる=○、漢数字の零=〇) ?????のときは△
補足
↓ C4:Q6/100の小数部にC13/100の小数部が同じセルがあるか?→Yes→C16=”○”→終了 ↓ No ↓ C4:Q6/100の小数部にC13/100の小数部が同じセルがあるか?→Yes→C16=”△” ↓ No ↓ C16=”” ↓ 終了 説明文は違いますが、流れはこの流れです。 △は、しかしよく考えてみると、当日と日の数字を足す必要はないですね。2桁の数字(29=2+9=11=2,28=2+8=10=1)1の位と10の位を足した値がC4:Q6とC13 の間で一致してれば"△"で表示するというわけです。 どうでしょうか?
お礼
お付き合いくださいましてありがとうございます。
補足
画像でE3に0826が入っていますが、E4=0826の間違いです。 さて、▢を表示する条件ですが、2つの条件を満たす必要があります。 1、月が一致する 2、次の式の値が一致する =INT((INT(MOD(D4:S5,100)/10)+MOD(D4:S5,10))/10)+MOD(INT(MOD(D4:S5,100)/10)+MOD(D4:S5,10),10) と =INT((INT(MOD(D11,100)/10)+MOD(D11,10))/10)+MOD(INT(MOD(D11,100)/10)+MOD(D11,10),10) 長くなるので1行セルを増やせということですね。わかりました画像の12行と14行の下に1行増やします。 2の条件式は =IF(D11="","",IF(AND(=INT((INT(MOD(D4:S5,100)/10)+MOD(D4:S5,10))/10)+MOD(INT(MOD(D4:S5,100)/10)+MOD(D4:S5,10),10),=INT((INT(MOD(D11,100)/10)+MOD(D11,10))/10)+MOD(INT(MOD(D11,100)/10)+MOD(D11,10),10),月が一致する式),"▢") 間違ってるような感じですが、、、。 次の質問に画像をUPします、今日の結果が入力されています。