- ベストアンサー
Excel条件付書式を使ったセルの色付け表示について
- Excelの条件付き書式を用いて、Sheet1の各項目に日付が入ると該当する日付のセルに色をつけて表示する方法について教えてください。
- また、Sheet1のCE列に1/30と入力された場合、予約表示シートにはCE列に対応した1ヶ月面接14時の項目の1月30日に色がついています。手入力で日付を入力し、A17以下に面接項目名称と漢字氏名が表示されるような関数を調べています。
- INDEX関数などを使って実現できる方法についてアドバイスをお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
>#VALUEになります。 再掲: >と記入してコントロールキーとシフトキーを押しながらEnterで入力 という操作を行っていません。 数式を回答からコピーし,ただ貼り付けただけの状況に合致します。 もう一回: 数式を回答からコピーし,数式バーの中に貼り付けます。 #上手く出来なければ,回答からコピーしてエクセルに貼り,すると#VALUEになりますがそこからF2キーを押して(あるいは数式バーの中を1クリックして)数式の編集状態に戻すのでもいいです。 まだEnterせず,数式は数式バーの中で入力途中の状態で, キーボードの左下にあるコントロールキー(Ctrlと書いてあるキーです)と, シフトキー(Shiftと書いてあるキーです)を2本の指で押して押したままの状態で, キーボードのEnterのキー(右側にある入力キーです)を押して,式を入力します。 Ctrl+Shift+Enterで式が入力できたら,コントロールキーとシフトキーからは指を離して構いません。
その他の回答 (4)
- keithin
- ベストアンサー率66% (5278/7941)
ん? 回答の数式をやってみることもまだしていないのですか? でしたら,まず手を動かしてみてください。 再掲: >「面接項目名称」が,どこに記入してあるのを引っ張ってくればいいのか見て取れません。 >ので,シート1の1行目(CE列以右)に記入してください。 面接項目名称をCE1,CF1…に右向けに並べておく,と書いてあります。 アナタがわざわざ補足してくれた通りの事を前提に,数式はちゃんと作成してあります。 再掲: >A17には =INDEX(Sheet1!$1:$1,SMALL(IF(Sheet1!$CE$1:$CX$99=$A$15,COLUMN(Sheet1!$CE$1:$CX$99),256),ROW(A1)))&"" と記入してコントロールキーとシフトキーを押しながらEnterで入力,下向けにコピー。 こちらは前述したとおり,回答した通りにやれば出来たはずです。 再掲: >名前はシート1のCB列に記入してあるモノとします。 これはまぁ違いましたね。名前がBD列にあるなら,回答した式のCBをBDに直します。 再掲: >B17には =INDEX(Sheet1!$CB:$CB,SMALL(IF(Sheet1!$CE$1:$CX$99=$A$15,ROW(Sheet1!$CE$1:$CX$99),999),ROW(B1)))&"" と記入してコントロールキーとシフトキーを押しながらEnterで入力,下向けにコピー。 B17はCBをBDに直して =INDEX(Sheet1!$BD:$BD,SMALL(IF(Sheet1!$CE$1:$CX$99=$A$15,ROW(Sheet1!$CE$1:$CX$99),999),ROW(B1)))&"" と記入してコントロールキーとシフトキーを押しながらEnterで入力,下向けにコピー。 のようにするってことです。 >あとあまり理解できていないのですが、補足頂いた内容ですと、条件付き書式の表示は、一度シートに表示させてからその結果を条件付き書式の設定を行わないといけないということでしょうか? いいえ。そういう事ではありません。 条件付き書式のことはすっかり無関係に,A17・B17以下は「シート1の元データを使って最初から計算し直す」とご説明しました。 条件付き書式は条件付き書式で,前回のご質問の手順で「シート1から計算して」結果を出せていますね?それはそれで結果が出せたのでOKです。
補足
ご指示頂いたとおりにA17とB17に入力してみました。(コピーもしてみました) #VALUEになります。 どこか変でしょうか。 申し訳ありませんが再度お願い致します。
- KURUMITO
- ベストアンサー率42% (1835/4283)
回答No2です。 最後のA17セルへの入力の式が抜けてしまいました。 次の式をA17に入力したのちにB17セルまでオートフィルドラッグコピーしたのちに下方にもオートフィルドラッグコピーします。 =IF(COUNTIF(Sheet1!$CP:$CP,$A$15*1000+ROW(A1))=0,"",IF(COLUMN(A1)=1,INDEX(Sheet1!$CE$1:$CN$1,MOD(INDEX(Sheet1!$CQ:$CQ,MATCH($A$15*1000+ROW(A1),Sheet1!$CP:$CP,0)),1000)),IF(COLUMN(A1)=2,INDEX(Sheet1!$CB:$CB,MATCH($A$15*1000+ROW(A1),Sheet1!$CP:$CP,0)),""))) なお、シート1ではCE列からCN列の間では1行あたりに一つの日付だけが入力されていることとします。同一日付で同じ氏名の人が複数の項目を選ぶ場合には必ず行を変えて入力することが必要です。そうでないと式はますます複雑となって対応が難しくなります。
- KURUMITO
- ベストアンサー率42% (1835/4283)
分かり易く対応するためにはシート1について作業列を作って対応することです。 シート1のCD2セルには次の式を入力して下方にオートフィルドラッグコピーします。 =IF(COUNT(CE2:CN2)=0,"",SUM(CE2:CN2)) CP2セルには次の式を入力して下方にオートフィルドラッグコピーします。 =IF(CO2="","",CO2*1000+COUNTIF(CO$2:CO2,CO2)) CQ2セルには次の式を入力して下方にオートフィルドラッグコピーします。 =IF(CP2="","",CO2*1000+MATCH(CO2,CE2:CN2,0)) 以上でシート1の作業は終わって予約表示シートでは次の作業を行います。 該当する日付で項目に該当するセルに色を付けるためにはB4セルから例えばAF13セルまでを範囲として選択します。 条件付き書式の設定では数式のセルに次の式を入力して書式で色を設定します。 =COUNTIF(Sheet1!$CQ:$CQ,B$2*1000+ROW(A1))>0 また、A17セルには次の式を入力してB17セルまでオートフィルドラッグコピーしたのちに下方にもオートフィルドラッグコピーします。
- keithin
- ベストアンサー率66% (5278/7941)
「面接項目名称」が,どこに記入してあるのを引っ張ってくればいいのか見て取れません。 ので,シート1の1行目(CE列以右)に記入してください。 名前はシート1のCB列に記入してあるモノとします。 A17には =INDEX(Sheet1!$1:$1,SMALL(IF(Sheet1!$CE$1:$CX$99=$A$15,COLUMN(Sheet1!$CE$1:$CX$99),256),ROW(A1)))&"" と記入してコントロールキーとシフトキーを押しながらEnterで入力,下向けにコピー。 B17には =INDEX(Sheet1!$CB:$CB,SMALL(IF(Sheet1!$CE$1:$CX$99=$A$15,ROW(Sheet1!$CE$1:$CX$99),999),ROW(B1)))&"" と記入してコントロールキーとシフトキーを押しながらEnterで入力,下向けにコピー。 #補足 ご質問の文脈を読むと,「条件付き書式の結果が現れたセル」を関数(やマクロ)で調べる事はできません。 条件付き書式とは全く無関係に,上述のようにオリジナルデータを当たって条件に合致する記載を調査する必要があります。
補足
回答ありがとうございます。 漢字氏名 Sheet1 BD列 面接項目名称というのは Sheet1の CE 1ヶ月面接(14時) CF 1ヶ月面接(15時) CL 6週間電話(メール) CR 2ヶ月面接(14時) CS 2ヶ月面接(15時) DA 10週間電話(メール) DG 3ヶ月電話(メール) DM 6ヶ月面接(14時) DN 6ヶ月面接(15時) DE 6ヶ月電話(メール) になります。 ですので、面接項目名称は別々の列のものを予約表示のA17以降に表示させたいのですが無理でしょうか。 あとあまり理解できていないのですが、補足頂いた内容ですと、条件付き書式の表示は、一度シートに表示させてからその結果を条件付き書式の設定を行わないといけないということでしょうか?
お礼
丁寧にご指導頂きましてありがとうございました。 私の操作に不備があったようで大変申し訳ありませんでした。 無事完成いたしました。 ありがとうございました。