プロが教える店舗&オフィスのセキュリティ対策術

sheet1にこのような表を作りました。
  A   B   C   D   E   F
  数字  番号  カナ  氏名  番号  住所
   1   2   あ   阿   3    い
   4   5   う   有   6    い


sheet2に、
    A   B   C   D   E
    数字  番号  氏名  給与  1月
1    1    2   阿  給与1
2    1    2   阿  税金1
3    1    2   阿  給与2
4               税金2
5               給与3
6               税金3
7               給与4
8               税金4
9               給与合計
10               税金合計
11    4    5   有  給与1


1~10行が1名分で、下に同じものを後350人ぐらい続く表を作成しなければならにのですが、シート1の表をシート2に
挿入するにはどうすればよいですか?
宜しくおねがいします。

A 回答 (5件)

こんにちは。

maruru01です。

Sheet1のデータは2行目から(1行目は「数字」などの項目名)とします。
Sheet2のA2(「数字」のすぐ下のセル)に、

=INDEX(Sheet1!A:A,INT((ROW(A1)-1)/10)+2)

B2に、

=INDEX(Sheet1!B:B,INT((ROW(A1)-1)/10)+2)

C2に、

=INDEX(Sheet1!C:C,INT((ROW(A1)-1)/10)+2)

と入力して、A2:C2を下の行へ必要なだけオートフィルコピーします。
(350人なら、3500行分コピー)
    • good
    • 0
この回答へのお礼

さっそくありがとうございます!
やってみたのですが、なんだか上手くできません。
(すいません・・・。涙)
10行まで挿入したいのですが、5行までしか挿入されていません。私のやり方がまちがってるのかな。。。?
あと、コピーもうまくできません。オートフィルコピーってどうすればよいのでしょう・・?

お礼日時:2003/11/13 12:19

こんにちわ。

私もエクセルを覚え中です。ホントにややこしいですよね。。。質問の答えと違うのですが、オートフィルについて。セルに入力したらセルの右下に■がでますよね。それ(フィルハンドル)にマウスポインタを合わせるとポインタが+に変わります。それをつかんでままドラッグしてみてください。同じようなデータが連続入力されると思うのですが・・・。超初心者なので、的外れならすみません。私も独学で、いつも本見ながらやってます。ボスは全くエクセル知らなくて逃げるので、泣きながら・・・。たくさんの入力大変ですね。お役に立てなくてごめんなさい。でも、応援してます。がんばって!また本見て、何か気付いたら書き込みますね。
    • good
    • 0
この回答へのお礼

ありがとうございます。私のところもそーなんです。
なれないパソコン触りながらがんばってます。お互いがんばりましょー。
普段はそのやり方で連続したデータをコピーできるのですが、教えていただいた計算式(?)を入れてやるとただのコピーになっていたので、、、。何故でしょう。。。

お礼日時:2003/11/13 14:15

再びmaruru01です。



オートフィルコピーについては、No.2の方が説明して下さいましたが、もう一度念のため。
A2~C2に数式をそれぞれ入力したら、A2~C2を範囲選択します。
そして範囲の右下(C2セルの右下)の■にマウスポインタを合わせ、そこでクリックして、クリックしたまま、下の行へずりずりと必要な行までひっぱっていきます。
そうすると、行に対して、数式中の「ROW(A1)」の部分のみ、

ROW(A1)
ROW(A2)
ROW(A3)
・・・・・
のように連番で変化していきます。
もう一度やってみて下さい。
    • good
    • 0
この回答へのお礼

できましたっ!やっぱり私のやりかたがどこかおかしかったみたいで、何度か繰り返すとできました。
ありがとうございました。

お礼日時:2003/11/14 12:11

はじめまして。


別の方法を紹介します。

ちょっと長いですが、シート2のB2のセルに
=IF(ISERROR(VLOOKUP($A15,Sheet1!$A$2:$D$3,2,FALSE))," ",VLOOKUP($A15,Sheet1!$A$2:$D$3,2,FALSE))
と入力します。入力後C2のセルにB2の計算式をコピーします。
そして、C2のセルの計算式中の$A$2:$D$3,2,の「,2,」の部分を「,4,」に直します。(2箇所)
最後にB2とC2の計算式を必要なだけ下の行へオートフィルコピーを行います。

ただし、「$A$2:$D$3」の部分は、シート1に作成した実際の表の範囲を入力してください。(「$」マークは、計算式をコピーした際に列や行の指定がずれることを防ぐためのものです。)上記の例では、シート1の表の範囲は「A2:D3」を指定していることになります。
また、IFとISERRORを使っているのは、シート2のA列に何も入力しない時、空白の表示をさせるためです。
    • good
    • 0

関数式より素直に考えたとおりに組めるのでVBAをお勧めします。


(1)Sheet2をこれから入力するケース
まずSheet1より10行目ごとにSheet2へデータを移す。
Sub test01()
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Set sh1 = Worksheets("sheet1")
Set sh2 = Worksheets("sheet2")
d = sh1.Range("a1").CurrentRegion.Rows.Count
For i = 1 To d
j = (i - 1) * 10 + 1
sh2.Cells(j, "A") = sh1.Cells(i, "A")
sh2.Cells(j, "B") = sh1.Cells(i, "B") '以下 c,d・・列分を入れる
Next i
End Sub
(2)Sheet2が既に入力を終わっている場合
Sheet2で10行ごとに1行挿入し、Sheet1
から1行移す。下記のkは挿入による行数のずれを補正してます。
Sub test02()
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Set sh1 = Worksheets("sheet1")
Set sh2 = Worksheets("sheet2")
d = sh1.Range("a1").CurrentRegion.Rows.Count
k = 0
For i = 1 To d
j = (i - 1) * 10 + 1 + k
sh2.Cells(j, "A").EntireRow.Insert
k = k + 1
sh2.Cells(j, "A") = sh1.Cells(i, "A")
sh2.Cells(j, "B") = sh1.Cells(i, "B") '以下c,d・・列分を入れる
Next i
End Sub
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!