• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルでのご質問)

エクセルでのデータベースのインポート・更新方法と日付範囲へのマークアップについての関数の使い方

このQ&Aのポイント
  • エクセル2007でアクセスのクエリから元となるデータベースを引いています。そのシート1にID、開始日、終了日が入力されており、エクセルを開くたびに元データからインポート・更新し新しいデータに変わります。
  • 別のシート2にはカレンダーで週間予定が書かれており、シート1を見てIDが同じなら開始日から終了日までの期間にマークアップ(丸印もしくは塗りつぶし)を行いたいです。週の始めが期間内の場合や年をまたいでも同様の動きをして欲しいです。
  • VBA初心者ですので、関数で対応していただけると助かります。具体的な関数の使い方を教えていただけると嬉しいです。

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

  • ベストアンサー
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.2

 Sheet2においてB5セルに次の関数を入力してから、B5セルをコピーして、C5~I5のセル範囲に貼り付けて下さい。 =IF(AND($B$2<>"",B$4>1,B$4<"9999/12/31"+0,COUNTIFS(Sheet1!$A:$A,$B$2,Sheet1!$B:$B,"<="&B$4,Sheet1!$C:$C,">="&B$4,Sheet1!$B:$B,">1",Sheet1!$C:$C,"<9999/12/31")),"○","")

NSrai
質問者

お礼

わかりやすくありがとうございます! 言われた通り関数を使ったら思う通り出来ました! ベストアンサーにさせていただきます! この度はありがとうございました。

その他の回答 (1)

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.1

シート2のB5に以下の式を入力して右にコピーしてください。 =IFERROR(IF(AND(INDEX(シート1!$B:$B,MATCH($B$2,シート1!$A:$A),1)<=B4,INDEX(シート1!$C:$C,MATCH($B$2,シート1!$A:$A),1)>=B4),"○",""),"")

NSrai
質問者

お礼

早々とご回答くださりありがとうございました。 自分の入力がまずかったのか、思うように表示されませんでしたが、関数を参考に勉強させていただきます! この度はありがとうございました。