• ベストアンサー

エクセル:シートをまたいで隔行のコピー

いつもお世話になっております。 Win:XP MSOffice:2003 を使用しています。 会社の作業実績表をエクセルで作成しました。 タイムカードとしての打刻機能や、個人の業務実績(時間)の入力・集計 残業時間の集計(自動)ができるものです。 こちらで教えていただいて優れものが完成しましたが 如何せん、横長の表になり、プリントアウトには適しません。 ついては別のシートに入力データを自動反映して 一か月分のタイムカード(A4サイズ)を作成したいと思っています。 (出勤・退勤・休憩・残業時間等の欄にて作成) が、シートをまたいでのコピー(コピー自体は上手くいくのですが、 ドラッグ&ペーストで)が規則良く映ってくれません。 お知恵を貸してください。 Sheet1:実績表 出社時間 → J5~BP5(セル一つ置き・・・J5/L5/N5/P5・・・) 退社時間 → J6~BP6(セル一つ置き・・・J6/L6/N6/P6・・・) これを Sheet2:タイムカード 出社時間 → B2~B32 退社時間 → C2~C32 に自動反映したい。  B2=Sheet1!J5 B3=Sheet1!L5 と手入力すれば上手くいくのですが、 このB2、B3のセルをドラッグさせてもB4以下には反映されません。 (そういうものですか・・・?) 全て手入力する・・・という手段ができなくはないのですが 何か賢いやり方をご存知でしたら教えてください。 ※説明ベタで申し訳ありません。

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

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

Sheet2のB2セルに  =OFFSET(Sheet1!$J$5,0,ROW(B2)*2-4) Sheet2のC2セルに  =OFFSET(Sheet1!$J$6,0,ROW(C2)*2-4) と入力して下方向にコピーしてください 式を入れるのは二行目でなくても良いです(3行目でも、4行目でも…)

babuiori
質問者

お礼

できました!ありがとうございます。

babuiori
質問者

補足

できればこれを、各個人の表で作成したいと思うのですが 休憩時間・残業時間については、行の位置が人によって違います。 (その間に記入する項目が人によって異なるため) そこは、それぞれの表にて(たとえばC20 → C50 などと) 変更する必要があるでしょうか? それとも「休憩」という行を選択して自動反映してくれるような方法もございますでしょうか? なお、残業時間については、都合によりセルが3つ(Sheet1:C40/C41/C42といった具合)あり その合計をまとめたものをsheet2のつのセルに反映したいのですが・・・可能でしょうか。

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

その他の回答 (3)

回答No.4

babuioriさんのしたい操作が、行列を入れ替えるだけでいいのならばいくつか方法があります。 (1)行列を入れ替えてコピー&貼り付け Sheet1の表全体をコピーします ↓ Sheet2のB2をクリックします ↓ [編集]メニューより[形式を選択して貼り付け]をクリックします ↓ [行列を入れ替える(E)]にチェックを入れてOKをクリックする ※この方法が一番簡単かもしれません。 (2)数式で参照する =INDIRECT(ADDRESS(ROW(Sheet1!$B$5)-COLUMN(Sheet1!$B$5)+COLUMN(Sheet1!B5),COLUMN(Sheet1!$B$5)-ROW(Sheet1!$B$5)+ROW(Sheet1!B5),4,1,"Sheet1")) この数式をSheet2のB2に入力してC32までコピーしていくだけ (1)の方法をおすすめします。

babuiori
質問者

お礼

ありがとうございます。 行と列を入れ替えるだけ、ではないんです・・・。 (セルが一つずつ飛びますし。) 加えて、一人分だけの作業ではないので、毎回コピペをしていられないんです。 (という説明が抜けていましたね。失礼しました。)

全文を見る
すると、全ての回答が全文表示されます。
  • redowl
  • ベストアンサー率43% (2140/4926)
回答No.3

Sheet2 B2に =INDIRECT(ADDRESS(5,6+2*ROW(),,,"Sheet1"))

babuiori
質問者

お礼

ありがとうございます。できました。

全文を見る
すると、全ての回答が全文表示されます。
  • FEX2053
  • ベストアンサー率37% (7987/21355)
回答No.2

そりゃまあ、マクロを使えばナンだって出来ますが、30件くらいなら 手入力しまくったほうが絶対に速いですって。 どうしてもマクロで、といわれるなら、Sheet1とSheet2の両方とも、 コピー開始のセルを選択しておいて、以下のマクロを実行すれば データのコピーは可能です。 Sub Macro1() Selection.Copy Sheets("Sheet2").Select ActiveSheet.Paste Do Sheets("Sheet1").Select Selection.Offset(0, 2).Select If Selection.Value = 0 Then Exit Do Selection.Copy Sheets("Sheet2").Select Selection.Offset(1).Select ActiveSheet.Paste Loop End Sub

babuiori
質問者

お礼

ありがとうございます。 1人分くらいなら、手入力でもいいかなと思うのですが。 他のスタッフの表に反映する場合、コピペをしても、 人によって行が異なっていたりすることもあり、 同様の手間が人数分×毎月かかってしまうんです・・・。

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

関連するQ&A

  • エクセルでシートは別ですが、同じセルの集計を行いたいのですが

    自治会のアンケートの集計に頭を悩ましています。 一つ目のシートに集計結果を入力出来る表を作りました。 組が10組有りますので、シートのコピーを繰り返して10組分を作成しました。 11シート目に各組の組別の質問毎の集計表を作成しました。 アンケートの設問が23問あり、選択も各問に3項目有ります。 最初は、集計表に各組の結果を入力すれば、自動的に集計表に転記出来るにと、集計表の入れたいセルをシフト+=を押して、その組のシートを開いて、集計結果のセルをクリックして、シフト+=+エンターを繰り返していましたが、余りにも回数が700回近く行わなければ成りません。 そこで教えて頂たいのですが、 10個のシートの同じセルを、各組に入力すれば集計表に自動的に同じ数字が入る様にする方法は有るのでしょうか? 宜しくお願い致します。 マクロはさっぱり判りませんので簡単に出来る方法をご教示頂きたくお願い致します。

  • エクセル内の数式を反映させながらシートをコピーする方法

    エクセルのシートのコピーについて教えて下さい。 1日1シートで表計算できる表を作るよう指示されました。 シート内には、累計を出すように(前日までの合計)+(本日の数字) の数式が入っています。 具体的に書きますと、セルA1に本日の数字を入力。 セルB1に(前日までの合計)+(本日の数字)と数式を入れました。 数式でいうと、例えばシート3のセルB1には(シート2:B1)+A1 シート4のセルB1には(シート3:B1)+A1 という具合にセルB1には前日までの合計を反映させるように、常に 前シートの累計をリンクさせています。 シートをコピーしては、セルB1の数式「前シート」部分を修正して こつこつシート7まで作ったのですが、30日分作って欲しいと 言われて困っています。 時間がたくさんあればこつこつ続けて完成させるのですが、就業上の 問題があってこれにずっと時間を割くことができません。 説明が長くなりましたが、ここで教えて頂きたいのです! 数式を反映させながら、シートをどんどんコピーする方法は ありませんでしょうか? 今、シート7まで作ったので、まんまコピーして7枚ずつ増やす 事は簡単ですが、累計部分の(前シート:B1)シートのリンクが 勝手には直ってくれません。 コピーすると同時に、前シートのリンクも直ってくれる方法が あればぜひ教えて下さい。 よろしくお願いします。

  • エクセル 入力シートのデータを別シートに書き込む

    エクセル 入力シートのデータを別シートに書き込む 1.Sheet1のA2に数字、B2に数字、C2に数字、D2に数字、E2に数字、F2に数字、G2に数字、にを入力する。 2.内容確認後、入力ボタンを押すと、 Sheet2のF2にSheet1のA2の数字、 Sheet2のH2にSheet1のB2の数字、 Sheet2のI2にSheet1のC2に数字、 Sheet2のJ2にSheet1のD2に数字、 Sheet2のK2にSheet1のE2に数字、 Sheet2のL2にSheet1のF2に数字、 Sheet2のM2にSheet1のG2に数字が反映され、sheet2の入力されたデータが一列づつたされていく。 つまり。sheet1は入力シートで、同じセルに値を入力します(次回はデータが上書きされる)が、sheet2では、集計表の1列ずつ下に新しく記録されていく。 このような入力フォーム(マクロ)を作りたいと思っています。 わかりづらい質問で申し訳ありませんが教えていただけませんでしょうか。 よろしくお願いします。

  • エクセルのシートを自動で

    こんにちは。 エクセルの複数のシートのデータを自動的に一枚のシートに反映させたいのですが、教えていただけますか? シート1~31まで日々のデータが入っています。それを自動的に一枚のシートにまとめたいのです(集計ではなくて) 例えば、入力時に自動的に反映しても良いですし、もしくは、他の方法でもOKです。 1~31のシートのデータ数は日々違います。 よろしくお願いいたします。

  • エクセル マクロ

    マクロ初心者です。よろしくお願いします。 会社の約40部署の予算の進捗管理をしています。 (現状)[A]集計ファイル(1シート1部署同形式のエクセル)     [B]部署別ファイル([A]集計ファイルが1シート毎(部署毎)に独立している) [B]に各部署担当者が4月実績、5月見込、6月見込といったように予算を毎月入力しています。(翌月は5月実績、6月見込、7月見込です) [A]にマクロを入れ込み[B]を反映させて集計しています。  ちなみに[A][B]のフォーマットは以下のようなものです。     4月  5月  6月 広告費 10   10  10 運搬費 ・・・ 4月が終わって実際、広告費が20だったら上書きします。     4月  5月  6月  7月  広告費 20   10  10   10 運搬費 ・・・ (改善希望点)[B]ファイルの実績月セルだけ自動的に更新したい。  ※[C]各部署の実績だけが集計されたエクセルデータが別にあります。 これを[B]に反映させて各部署の担当者が実績入力する手間を省きたいのです。しかし見込数値が入力されている月のデータは消したくないのです。実績月のセルだけ毎月更新する方法はあるのでしょうか。 分かりにくい説明で申し訳ありません。アドバイスお願い致します。

  • EXCELでシート名をセルの内容で指定出来るか

    検索してみましたが、探し方が悪いのか該当する質問がないようなので、質問させていただきます。 EXCELで複数のシートにあるデータを使用して集計表を作成するときの質問です。 使用する人がEXCELに慣れていない方のため、汎用性を持たせたいのですが、以下のような方法は出来るのでしょうか。 集計元シート(複数)> '1','2','3'…のように連番のシート名 集計先シート>'集計' 1.'集計'シートのセル A列 にシート名を入力します。 2.'集計'シートのセル B列 にそれぞれのシートの合計部分のセルNo(Ex.B11)を指定します こうしたとき、2.のB列 は [ B1 = '1'!B11 ]のようになりますが、この '1' の部分で '集計'シートの A1 の値を反映したいのです。 こうすると、シートが増えたとしても、上の式をコピーすれば(ドラッグでのコピー)式のシート名を変更する必要がないと思うのですが…。 ですが、思いつく方法を試してみてもどうもうまくはいきません。 本当にこういった方法は出来るのか、出来るのならその方法をご教授いただければありがたいです。 説明ベタで申し訳ありません。 これが出来るといろいろなものがうまくいくので、ぜひよろしくお願い致します。 (VBAはなるべく使わない方向でお願いします)

  • Excel で、こんなこと出来ますか?

    いつもいつも大変お世話様になっております。 とある伝票を作成しています。 フォームが決まっていて、いつもその前に使ったシートをコピーして使っています。(【1伝票=1シート】) そして、その伝票に入力した同じ内容を、集計表にも入力しています。 (その集計表と伝票は同じファイル内にあります。) 二度手間だなぁ…といつも思うのですが、そう入力する内容も多くないので今まで苦とは思わずやってきましたが、ふと… 集計表にうった内容が伝票の方にも連動表示しないかなぁ~ (または、伝票の方にうった内容が集計表に連動表示されないかなぁ~) …と思いました。そこで、試してみました。 集計表(Sheet1)のセルB1にうったものが、伝票(Sheet2)の該当セルにも表示させるよう Sheet2にの該当セルに…『Sheet1!B1』…と設定。 以下、セルC1、D1,E1…と同様の設定をしていきました。 しかし、新しい伝票が発生するたびに、新しいシートが必要となります。 Sheet2をコピーしてSheet3を作成しましたが、当然、Sheet2のセルに設定してある内容と同じなので、 集計表の セルB2、C2、D2…のデータを返してほしくても、Sheet2のデータである セルB1、C1、D1…のデータをかえしてしまいます。 仕方がないので、Sheet3に入っている…『Sheet1!B1』…の『B1』の部分を『B2』に手で修正しました。 シートが増えるたびにこの作業(手でセル内にある式を修正)をしているのでは、今のままの方が断然 楽なので、連動させるのは、やめようかと思っています。 もし、良いアイディアをお持ちの方がいらっしゃいましたら、アドバイスいただければ幸いです。 (なにぶん知恵がないもので…すみません…) なければないでキッパリ諦めます。 よろしくお願い致します。

  • Excel オートフィル?でなんとかしたい

    教えてください。 画像参照。 1つのファイル内にシートが2枚あり、 1枚目は「入力シート」2枚目は「反映シート」となります。 やりたい事は 入力シートの黄色いセルの部分に入力をしていくと 反映シートの水色のセルに自動的に 黄色いセルの入力内容を反映をさせたい、です。 なので 反映シートのB2セルに =入力シート!B2 と入力すると、 当然、入力シートのB2に入力したものが反映されます。 それを反映シート水色セル全てに反映させたいので 反映シートB2セルからオートフィル機能?で横にひっぱっても 入力シートと行列?が反対だからでしょうか? うまく反映ができません。 例えば・・・ 反映シートC3には =入力シート!B3 反映シートD3には =入力シート!B4 反映シートE3には =入力シート!B5 と反映させたいです。 入力シートか反映シートの行列を逆にすればいい問題ですが それはできません。 一つ一つ手入力していく事も、本番のシートは量が莫大なので 現実的ではありません。 Excel2003です。 よろしくお願いします!!m( _ _ )m

  • 複数のシートの同じセル範囲を一つのシートにまとめたいです。

    Excelで複数シート上の同じセルにある表を一つにまとめたいです。 表はBQ6:CS6で、A:BPにある表の集計が入ってます。 多数のシート上のBQ6:SC6の表を一つのシートに値で貼り付けていきたいのですが、 シート名が固定でないこと、シート数が20~30と複数あり、数も決まってないこと、 そんなブックがいくつもあり非常に困っております。 VBAの貼り付け、マクロの自動登録くらいのスキルしかありません。 どなたかお知恵を貸して下さい。お願い致します。

  • Excel、複数シート同セルを別シートで列に表示するいい方法教えてください

    Excelで、複数シートの同セルに数値又は、文字が入力されているものを別シートの列に表示(反映)させるいい方法を教えてください。 ・sheet1は、一覧表(sheet名):纏めるsheet ・sheet2~は、各物件名(sheet名) となっています。 例) sheet2~sheet4のA1セルに数値、B2に文字が入力されていたとします。 それを、sheet1(一覧表)のB2、B3、B4とC2、C3、C4にそれぞれ表示させたい。以下参照。    A    B   C 1 物件名  件数 有・無 2 北海道  10   有 3 青森   15   無 4 岩手   20   無 ・sheet1(一覧表)には項目、物件名は入力済です。  データのみ反映させたい。 ・sheetは、左から順番に並んでます。  (北海道、青森、岩手の順に) ・集計するわけではないので、最終行には合計とかはいりません。 ------------------------------------------------------------- また、できるかどうかわかりませんが、 sheet1(一覧表)を修正したらそれぞれの物件(sheet2~)も修正される。というような、画期的なこともできるのでしょうか? こちらは、上記が出来た上でのことなので、出来なければ出来ないで構いません。 どうぞ、よろしくお願いいたします。

専門家に質問してみよう