• ベストアンサー

エクセル2007です 

1行に B1個人名 E1科目 F1担当者 そえぞれ 記入した表があります これから 個人ネームを作成したいと思います 6行3列で 別シートに対応するため A2に個人名 B3に担当者 C1に科目を入れたもの フィルハンドルにて 作成すると順番が飛んでうまくいきません 1000人ほど ありますので 教えて下さい 

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

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

シート1の1行目からデータがあるとしたら、シート2のA1セルには次の式を入力してC1セルまでオートフィルドラッグしたのちに下方にもオートフィルドラッグします。A2に個人名、B3に担当者、C1に科目にするような場合です。 =IF(AND(MOD(ROW(A1),6)=2,COLUMN(A1)=1),INDEX(Sheet2!$B:$B,ROUNDUP(ROW(A1)/6,0)),IF(AND(MOD(ROW(A1),6)=3,COLUMN(A1)=2),INDEX(Sheet2!$F:$F,ROUNDUP(ROW(A1)/6,0)),IF(AND(MOD(ROW(A1),6)=1,COLUMN(A1)=3),INDEX(Sheet2!$E:$E,ROUNDUP(ROW(A1)/6,0)),"")))

shrager
質問者

お礼

有難うございます 一番近いものでした VBAはもう少し 理解が及ばなかったです お世話になりました

その他の回答 (6)

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.7

NO3です。 >1行にあるデータを 別シート6行に分けて 作成するものです >シート1にある A1 B1 C1を >シート2に   A1 B3 C6のように対応したく質問しました  ⇒通常の数式では行相対で変位しますので一旦、文字列で連続コピー(1ずつ変位する)後、   数式に変換する方法を提案しましたが試されたのでしょうか。   そのつもりで回答しましたが期待値が相違したのであればこうなったと補足して下さい。   因み、NO1様の回答補足と今回の回答セルが微妙に相違していますので調整が必要です。 >今回 シート2でA1B3C6 A7B9C12と2つ作り >下方向に オートフィルで一気にと思いましたが >全てシート1の6行おきの対応となりました    ⇒数値の連続コピーする場合、2セルを使う方法を考えられたみたいですが、  数式(=付き)の場合は行相対で変位する為、当然の結果です。

shrager
質問者

お礼

お世話になりました 有難うございました

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

こんにちは! 横からお邪魔します。 VBAでの一例です。 画面左下にある操作したいSheet見出し上で右クリック → コードの表示 → VBE画面が出ますので、 ↓のコードをコピー&ペーストしてマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) 尚、Sheet1のデータは1行目からあるとしています。 Sub test() 'この行から Dim i As Long Dim ws1, ws2 As Worksheet Set ws1 = Worksheets("sheet1") '←Sheet名は適宜変更してください。 Set ws2 = Worksheets("sheet2") '←こちらのSheet名も適宜変更 With ws2.Cells(1, 1) .Value = ws1.Cells(1, 1) .Offset(2, 1) = ws1.Cells(1, 2) .Offset(5, 2) = ws1.Cells(1, 3) End With For i = 2 To ws1.Cells(Rows.Count, 1).End(xlUp).Row With ws2.Cells(Rows.Count, 1).End(xlUp).Offset(6) .Value = ws1.Cells(i, 1) .Offset(2, 1) = ws1.Cells(i, 2) .Offset(5, 2) = ws1.Cells(i, 3) End With Next i End Sub 'この行まで こんな感じではどうでしょうか? 的外れならごめんなさいね。m(__)m

shrager
質問者

お礼

VBAを何とか理解できるよう 頑張ります 有難うございました

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.4

Sheet2!A2=Sheet1!B2 Sheet2!B3=Sheet1!F2 Sheet2!C6=Sheet1!E2 Sheet2!A8=Sheet1!B3 Sheet2!B9=Sheet1!F3 Sheet2!C12=Sheet1!E3 以下続くで表示ということでしょうか? Sheet2!A2=INDIRECT("Sheet1!B"&ROUNDUP(ROW()/6,0)+1) Sheet2!B3=INDIRECT("Sheet1!F"&ROUNDUP(ROW()/6,0)+1) Sheet2!C6=INDIRECT("Sheet1!E"&ROUNDUP(ROW()/6,0)+1) でA1:C6(6行3列)を選択して、下方にフィルコピーしてください。

shrager
質問者

お礼

お世話になりました 近い感じですが 元を触ると関数を理解してない分 こんがらがりました 有難うございました

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.3

非常に難解なご質問なので以下の解釈が相違していれば読み飛ばして下さい。 ・データシート(仮にSheet1)のB列、E列、F列を別シート(仮にSheet2)に転記する (1)Sheet2のA2にSheet1!B1、B3にSheet1!E1、C1にSheet1!F1を入力 (2)Sheet2のD1に1を入力→ホームタブ→編集枠の連続コピー→連続データの作成→範囲は列を選択、停止値欄に1000→OK (2)Sheet2のA1:C6を選択、フィルハンドルボタンをダブルクリック→ホームタブ→編集枠の「検索と選択」→置換でSheet1を=Sheet1にすべて置換 (3)Sheet2のD列を削除

shrager
質問者

補足

QNo.5845558 上記にて 質問させていただきました 今回はこれの反対で 1行にあるデータを 別シート6行に分けて 作成するものです 説明不足で申し訳ございいません シート1にある A1 B1 C1を シート2に   A1 B3 C6のように対応したく質問しました 今回 シート2でA1B3C6 A7B9C12と2つ作り 下方向に オートフィルで一気にと思いましたが 全てシート1の6行おきの対応となりました 困っております よろしくお願いたします

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

内容補足のこと。 質問の内容がわからない。モットしっかり内容を書くこと。 このコーナーは表現がわかりにくい質問が多いが、本質問はひどいよ。 >B1個人名 E1科目 F1担当者 そえぞれ 記入した表があります は身出しの文字列が入っている、ということか? >個人ネームを作成したいと思います 個人名と個人ネームは違う内容か?同じなら表現は統一すること。 >6行3列で 別シートに対応するため 6列3行がどうした?何か意味があるのか?書かない世いけない内容か? >A2に個人名 B3に担当者 C1に科目を入れたもの 別シートにあるデータか。 それを書くなら、A2に個人名 B3に担当者 C1に科目を入れたSheet2が在ります、と書くべきでは? >フィルハンドルにて 作成すると順番が飛んでうまくいきません どのシートのどの列(多分)でフィルハンドルをやろうとしているのか? 数が入っている列だと思うが、どこか? ーーー >フィルハンドル は関数の式の複写のことか。 何かVLOOKUP関数でも使っているのか。

shrager
質問者

お礼

すみません 的確に質問できないこと 反省しました これからも よろしくお願い致します 有難うございました

  • cider4
  • ベストアンサー率51% (640/1249)
回答No.1

フィルハンドルはどの列に対して行おうとするのか? やりたいことを具体的に補足してもらえませんか?

shrager
質問者

お礼

的確に 質問できないこと 反省しきりです これからも よろしくお願い致します 有難うございました

shrager
質問者

補足

あわててました  シート1の 1行に B1個人名 E1科目 F1担当者 シート2に 6行3列(A1からC6)で対応するため        A2に個人名 B3に担当者 C1に科目       A8に個人名 B11に担当者 C9に科目を       A14に個人名 B17に担当者 C15に科目を 以下1000人分 フィルハンドルにて作りたいのです 12行6列作り 下方向にフィルハンドルで行いましたが 5行おきに飛んでしまいます 教えてください

関連するQ&A