• ベストアンサー

入力したデーターを別シートに

入力したデーターを別シートに いつもお世話になります。 Windows XP EXCELL2003 です。 シート名「記入」で入力したデーターをシート名「6月」に。 例えば 「記入」 「6月」 A2       →  A6 に C2 : D2 → B6~C6 に値(○)したい。 ご指導いただければありがたいのですか宜しく御願いします。

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

No.1です! 投稿した後でもう一度質問の画像を見てみると・・・ 退場日に「○」が入ってはいけないのですね! 数式を =IF(OR($A6="",COUNTIF(Sheet1!$A$2:$A100,$A6)=0),"",IF(AND(B$4>=INDEX(Sheet1!$C$2:$C$100,SMALL(IF(Sheet1!$A$2:$A100=$A6,ROW($A$1:$A$99)),1)),B$4<INDEX(Sheet1!$D$2:$D$100,LARGE(IF(Sheet1!$A$2:$A$100=$A6,ROW($A$1:$A$99)),1))),"○","")) に訂正してください。 LARGE関数の部分の等号を無し にしています。 どうも何度も失礼しました。m(__)m

dorasuke
質問者

お礼

「退場日に「○」が入ってはいけないのですね!」 説明をしようと思いながら説明不足してしまいました。 補完していただき誠に有難うございました。 うまく考えどおりの物ができました。 本当に有難うございました。 こんな難しい数式は小生にはとても手に負えません。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.3

シンプルに。 Sheet2のB6: =IF(SUMPRODUCT((Sheet1!$A$1:$A$100=$A6)*(Sheet1!$C$1:$C$100<=DATE($A$1,$A$2,COLUMN(A6)))*(DATE($A$1,$A$2,COLUMN(A6))<=Sheet1!$D$1:$D$100)),"○","") 右にコピー,下にコピー。 予約は順不同で。 #1,2,3…日の日付を入れたセルに「年/月/日」を計算してあるなら,そちらを使えばもっと簡単にできます。

dorasuke
質問者

お礼

いつもながら御世話かけます。 テストしました結果うまくいきました。 ただ 6/1~6/3の場合2泊になりますので1泊分が多く表示されるのが残念です。 お世話になり誠に有難うございました。 今後ともご指導宜しく御願いします。

すると、全ての回答が全文表示されます。
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんばんは! 参考になるかどうか判りませんが・・・ 条件として、Sheet1の日付は昇順に並んでいることが前提です。 ↓の画像のB6セルに =IF(OR($A6="",COUNTIF(Sheet1!$A$2:$A100,$A6)=0),"",IF(AND(B$4>=INDEX(Sheet1!$C$2:$C$100,SMALL(IF(Sheet1!$A$2:$A100=$A6,ROW($A$1:$A$99)),1)),B$4<=INDEX(Sheet1!$D$2:$D$100,LARGE(IF(Sheet1!$A$2:$A$100=$A6,ROW($A$1:$A$99)),1))),"○","")) これは配列数式ですので、この画面から直接B6セルにコピー&ペーストの後に F2キーを押す、又はB6セルをダブルクリック、又は数式バー内で一度クリックし、編集可能にします。 Shift+Ctrlキーを押しながらEnterキーで確定してください。 数式の前後に{ }マークが入り配列数式になります。 これを列方向と行方向にオートフィルでコピーすると 画像のような感じになります。 尚、数式はSheet1の100行目まで対応できるようにしています。 以上、参考になれば良いのですが 外したいたらごめんなさいね。m(__)m

すると、全ての回答が全文表示されます。

関連するQ&A