- ベストアンサー
エクセルで最終日を自動入力する方法
- エクセルでAさんとBさんの最終日を自動入力する方法を教えてください。
- AさんとBさんの場所と日付を入力すると、自動で最終日が列Bに入力されるようにしたいです。
- AさんとBさんの行が追加された場合でも、列Bには2人合わせた最終日が自動で入力されるようにしたいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
解決できて何よりです。 説明が下手ですので何処まで伝わるか判りませんが、説明させていただきます。 Excelでは日付をシリアル値と言う数字で扱っている事はご存知でしょうか(1900/1/1が1、1900/1/2が2、と一日に1づつ増えて行き、2011/6/7は40701です)。 この表でもD列、F列の日付はシリアル値で入って居ます。 この式では配列式にする事で、 (C2=A2)*D2、(C3=A2)*D3、~、(C10=A2)*D10、(E2=A2)*F2、~、(E10=A2)*F10 の最大値を求めて居ます。 (C2=A2)、(E2=A2)の部分は、C列・E列の値とA2の値を比べて、同じなら1、異なっていれば0になる式です。 #場所が「東京」なら1,それ以外なら0 つまり、D列、F列の日付のシリアル値に1か0を掛けて東京以外の場所のシリアル値を0にして、その上でD列、F列の最大値をMaxで求めています。 最大値=最終日です。 後、気をつけて欲しいのですが、D列やF列に来年の1/1のつもりで1/1と入力しても、Excelは年の情報が無い場合は今年の1/1と勝手に判断します。 出来れば日付を扱う時は「2011/6/7」の様に年まで入力、表示させた方が良いです。
その他の回答 (1)
- mt2008
- ベストアンサー率52% (885/1701)
取りあえず、10行目まで対応の式を作りました。 必要に応じて式中の「10」を変えてください。 B2セルに↓と、入れて、shift+ctrl+enterで確定してください(式が{}で囲われて配列式になります)。 =IF(COUNTIF($C$2:$F$50,A2)=0,"",MAX(($C$2:$C$10=A2)*$D$2:$D$10,($E$2:$E$10=A2)*$F$2:$F$10)) あとはB2セルを下にコピー B列の表示形式を日付にする必要が有るかもしれません。
お礼
すいません。今できました。問題無かったです。 もし宜しければ教えて頂きたいのですが、MAX(($C$2:$C$10=A2)*$D$2:$D$10,($E$2:$E$10=A2)*$F$2:$F$10))の説明をお願いできないでしょうか? もし面倒なら無視して頂いて大丈夫です。 解決はさせて頂きましたので、ありがとうございます。
補足
ありがとうございます。 ただ今上記のをコピーさせて頂いてやってみたのですが、一度入力してその後毎回shift+ctrl+enterで確定させないとダメという事でしょうか?