• ベストアンサー

エクセルの参照についてお願いします

先日の統計についてはおかげさまでできましたが、次のファイルでまたまた躓いてしまいました。 シート1の日付、曜日、日直については、シート2に飛ばすことができました。これはシート2に1年分コピーしても上手に機能しているのですが、会議や出張等が上手に飛びません。1日ずつではできるのですが、1年分にコピーして使えません。何かよい方法があるでしょうか。ちなみに、シート2は打ち出して下に手書きに書き込んでもらう形式の日報です。よろしくお願いいたします。

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

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

シート1がお示しの表としてシート2のA1セルには次の式を入力して右横方向にドラッグコピーしたのちに下方にもドラッグコピーします。 =IF(MOD(ROW(A1),19)=1,IF(COLUMN(A1)=1,IF(INDEX(Sheet1!$A:$A,ROUNDUP(ROW(A1)/19,0)*10-9)="","",TEXT(INDEX(Sheet1!$A:$A,ROUNDUP(ROW(A1)/19,0)*10-9),"m月d日")&TEXT(INDEX(Sheet1!$A:$A,ROUNDUP(ROW(A1)/19,0)*10-9),"(aaa)")),IF(COLUMN(A1)=4,IF(INDEX(Sheet1!$C:$C,ROUNDUP(ROW(A1)/19,0)*10-9)="","",INDEX(Sheet1!$C:$C,ROUNDUP(ROW(A1)/19,0)*10-9)),"")),IF(AND(MOD(ROW(A1),19)>=3,MOD(ROW(A1),19)<=11),IF(COLUMN(A1)=1,IF(INDEX(Sheet1!$C:$C,ROUNDUP(ROW(A1)/19,0)*10-9+MOD(ROW(A1)-2,19))="","",INDEX(Sheet1!$C:$C,ROUNDUP(ROW(A1)/19,0)*10-9+MOD(ROW(A1)-2,19))),IF(COLUMN(A1)=4,IF(INDEX(Sheet1!$D:$D,ROUNDUP(ROW(A1)/19,0)*10-9+MOD(ROW(A1)-2,19))="","",INDEX(Sheet1!$D:$D,ROUNDUP(ROW(A1)/19,0)*10-9+MOD(ROW(A1)-2,19))),"")),"")) 会議などシート1に記載されたものは自動的にシート2に表示させることができます。

greenoff
質問者

お礼

ありがとうございます。 長いものをせっかく作って頂いたのですが、 うまく機能しませんでした。 もう一度確認してみますが・・・。

その他の回答 (2)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

回答No2です。 お示しいただいたと全く同じシート1を用意して、こちらで示した式をコピーしてシート2のA1セルに貼り付けし、右横のドラッグkピーしたのちに下方にもドラッグコピーしてみてください。 こちらでは実際に試験した結果、満足する式を示しております。なぜエラーなのかわかりません。

greenoff
質問者

お礼

ありがとうございました。 何度もやったシートで試したらうまくいかなかったのですが、 ご指摘があって再度新しくやり直したら綺麗に表示されました。 本当にありがとうございました。

  • chayamati
  • ベストアンサー率41% (260/624)
回答No.1

うまくいかないことを具体的に記述して下さい 例えば改ページ半端、日付がまずい 1年分とは365日分それとも土、日、祝祭日、振り替え休日は省く

greenoff
質問者

補足

上手に伝わらなくてすみません。 365日分作りたいのです。 =を使うとシート2の行数がシート1と違うので ずれてしまいます。 offsetを使うと前のページと同じものがコピーされてしまい、 結局手作業で直さなければいけないという状況です。 すべてを手作業で直せばできるのですが、 何かいい方法がないか教えて頂きたいというお願いです。 よろしくお願いいたします。

関連するQ&A