• ベストアンサー

エクセルのシーとコピーで

シート1に 数値が入っています。 その数値を シート2に コピーするには =シート1!A1の 数式を入れれば シートA1の数値が シート2に入りますが シート1のA列の数値を 等間隔で飛ばして シート2に入れようとして シート2のB列の1に =シート1!A1 シート2のB列の2に =シート1!A10 と 入力して 二つセルを合わせて コピー下にスライドしていけば 等間隔で シートBに 9行空けた間隔のシート1の数字が入ると思ったけれど 無理でした。 どなたか 簡単に シート1の数値を等間隔で飛ばして シートBの縦列にコピー出来る簡単な 方法は無いでしょうか? 宜しくお願いします。

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

  • ベストアンサー
  • sakuuuuu
  • ベストアンサー率32% (67/209)
回答No.2

#1です。 簡単なサンプルです。 Sub xxxx() Dim i As Integer 'sheet1の行数 Dim k As Integer 'sheet2の行数 Dim Row As Integer 'sheet1の最終行 '初期化 i = 1 k = 1 '最終行の取得 Row = Worksheets("Sheet1").Range("A1").CurrentRegion.Rows.Count '等間隔毎のコピー Do While i <= Row '10行ごとのカウントが最終行以内の間実行 'sheet1 → sheet2へのコピー Worksheets("Sheet2").Cells(k, 1) = Worksheets("Sheet1").Cells(i, 1) i = i + 10 'sheet1は10行おき k = k + 1 'sheet2は1行ずつ Loop End Sub

mitigusa
質問者

お礼

再度 回答 ありがとう御座います。  参考文例を参照しながら 今晩は流石に眠いので    明日 VBAの本と睨めっこしてみます。    お手数をお掛けしました。  また 1のお礼で タイプミスが有り 大変失礼致しました。 

その他の回答 (4)

noname#59788
noname#59788
回答No.5

fxの欄で、シングルクォーテーションマークを=の前につけて、 '=シート!A1 ’=シート!A10 として二つのセルに会わせて下にスライドします。 データ「区切り位置」で右下の「完了」をクリック。 これでどうでしょうか?

mitigusa
質問者

お礼

回答 ありがとう御座います。

  • maron--5
  • ベストアンサー率36% (321/877)
回答No.4

◆こんな方法もありますよ =INDEX(Sheet1!A:A,1+(ROW()-1)*9) または、 =INDIRECT("Sheet1!A"&1+(ROW()-1)*9)

mitigusa
質問者

お礼

回答 ありがとう御座います。  +(ROW()-1)*9)の記述が 味噌ですね。  今晩 コツコツ やってみます。

  • NNAQ
  • ベストアンサー率56% (104/184)
回答No.3

シート2のB1に =OFFSET(シート1!A$1,(ROW()-1)*9,) 下にコピー。

mitigusa
質問者

お礼

回答 ありがとう御座います。 OFFSET関数ですね ちょっと使ったこと無いので  明日 この関数の使い方を 調べて使ってみます。  

  • sakuuuuu
  • ベストアンサー率32% (67/209)
回答No.1

う~ん、関数では難しいですね。 (簡単な方法はない。VBAだったら簡単) もし今回1回コッキリの作業であれば手動でやったらどうですか? 1.シート1のB列に10セルおきに○を入れる 2.シート1のB列を○でフィルタリング 3.シート1のA列をコピー 4.シート2のB列にコピー

mitigusa
質問者

お礼

回答 ありがとうます。  やはり 関数では 難しいんですね・・。    1~4の手順のやり方で 1列なら対処出来そうですね  ただ これを応用できれば B列以降も同様に飛ばしが  出来ないかとも 思っていたので フィルタリングだと  列が増やすと 大変そうですね。  VBAは 殆ど解らないんですが    理解出来るかは別として  もし 行数も少なく簡単な記述で出来るのなら   お時間有りましたら 参考に 記述して頂ければ 幸いです。

mitigusa
質問者

補足

皆様 回答頂きありがとう御座いました。  今晩から 明日に掛けて マニュアル見ながら 頑張ってみます。  VBAの 本も有るんですが なかなか理解できなくて(^_^;  また 何か有りましたら 宜しくお願いします。

関連するQ&A

  • エクセルで、検索したセルの下の行を出したいときは?

    たとえば、一つのシートに数字が入った表があるとして(シート1)、 隣のシート(シート2)でA1のセルに数値が入るとシート1から 同じ数値を探し出す(作業しているのはB1)。 その探し出したセルの下の行にあるものを出したいのですが、 その方法がわかりません。関数の数式の中で、 ”+1行”とか、”+1列”というのは、 どういった入力をすればいいのでしょうか? ちょっと説明がうまくできないので、伝わりづらいと 思いますが、補足していきますので、よろしくお願いします。

  • エクセルの関数について。

    エクセルの関数。 Sheet1の作業列1のA2セルに =IF(COUNTA(Sheet2!2:2)=0,"",IF(Sheet2!A2="",A1,Sheet2!A2)) →数式1とする 作業列2のB2セルに =IF(A2=$D$2,ROW(),"") →数式2とする という数式を入れA2・B2セルを範囲指定 → B2セルのフィルハンドルで下へコピーしておきます。 (Sheet2の行数以上コピーしておく) そしてE2セルに =IF(COUNT($B:$B)<ROW(A1),"",INDEX(Sheet2!B:B,SMALL($B:$B,ROW(A1)))&"") →数式3とする という数式を入れオートフィルで列方向・行方向にコピーする。 教えて頂きたいことは、数式1、数式2、数式3が何を意味しているのか。 と、この数式を使って、表を作成したのですが、ある特定の数字(コード、D2セルに入力)を入力しても反応してくれない。 (E2~H2まで、空白セルの状態になります。) (sheet2は約1200行あります。) 教えて頂けないでしょうか?

  • 【エクセル】数式のセル番地を一定間隔で入れたい

    シート(1)、シート(2)があります。 シート(2)のA列に、以下のような数式を入れたいです。      A 1 ='シート(1)'!D10 2 ='シート(1)'!D54 3 ='シート(1)'!D98 … ※44行ごとに下にずれる、イコールの数式です。 数字を入力した時と同じように、 ドラッグコピーで数式も等間隔になってくれるのかなあ?と思ったのですがならないようで・・・ 手打ちで地道にセル番号を入力する方法しか思いついていません。 良い方法はないでしょうか? ご教授いただけると幸いです。

  • エクセルで数式をコピーするとき

    Sheet1に入力したものが、Sheet2の指定したセルに自動的に入るようにしたいのですが、量が多いため、入れた数式をコピーするときにわからないことがあります。 Sheet1の、 A3、B3、C3、D3・・・に入力した数字を Sheet2の、 B2、B3、C2、C3・・・に勝手に入ってほしいのです。 Sheet2のB2に、=Sheet1!A3 Sheet2のB3に、=Sheet1!B3 と数式を入れれば反映されるのはわかります。 でも、数式を一つずつ入れていくのはとても大変なので、コピーペーストしたいのですが、 Sheet2のB4には、Sheet1のA4の数字をいれたいのに、エクセル側のかしこい機能なのか、 Sheet1のA5となってしまいますよね。 上記のような規則性で何百行も作っていかないといけないので、どうしたものかと思って困っております。 とても説明が下手でわかりにくいと思いますが、伝わりますでしょうか? 画像を添付しているので、このような形式で左のデータを右のような形式のものに反映させたいです。 やり方を教えて頂けるとても助かります。 宜しくお願いします。

  • エクセルの使用方法

    エクセルの使用方法で質問があります。 1.あるA列10行に数式が入力されています。その数式はA列9行+B列10行の値です。B列10行に数値を入力する時、C列10行には日付を入力しています。このままだと、B列、C列に何も入力されていない行でも、A列だけは、延々と数値が表示されてしいます。できれば、B or C列に入力していない時は、A列の表示を空白にすることはできないでしょうか? 2.上記のようにA列には、数値が入っており、何行目まで数値があるのかは、B列、C列次第です。この状態で、A列の一番下の行のセルの数値を、固定したセルに表示させる方法はないでしょうか? ただこのシートは複数個作成し、あるシートでは、10行目が一番下だったり、あるシートでは25行目が一番下だったりする条件になります。 またB列にはマイナスの数値も入るので必ずしも行が増える程、A列の値が大きいわけではありません。 3.C列の日付ですが、たとえば「2009/8/8」と入力したら、「2008.8.8」と半角で表示するようにしてるのですが、これを「2008.08.08」と半角で表示する方法はないでしょうか? 4.エクセルで時々、あるセルの左上端が緑色になり<!>と表示されています。この<!>を押すと、いろいろコメントがでてくるのですが、エラーを無視するを選ぶと、消えます。一体これは何なんでしょうか? 出ないようにする方法はないでしょうか? 以上の件、どれでもよいのでご回答くださいますようお願います。

  • エクセルで数式が入ったセルを空白にしたい。

    エクセルで数式が入ったセルを空白にしたい。 A1に"100"と言う数字、 B1はA1と同じ数値を自動入力させているので"=A1"という式が 入ってます。このB1の数式をB2からB10までコピーしているのでA2からA10に入力した数値が 反映されます。しかしA列にはいつも数値が入力されているわけではなく空白にする場合もあります。 でもB列の数式はコピーされてるので"0"が残ります。 そこですべて入力終了後にこのB列に自動で入力された"0"を削除したいのですが 置換で"0"にしても入ってるのは数値じゃなくて数式なので該当なしになるし、 数式も列ごとに移動されてるので一定ではありません。 この"0"を一括で削除するにはどうすればいいでしょうか? 入力範囲は500行まで及ぶのでいちいち"0"を探して削除するのが大変です。 分かりにくい質問ですいませんがよろしくお願いします。

  • エクセルで数式が入ったセルを空白にしたい。

    エクセルで数式が入ったセルを空白にしたい。 A1に"100"と言う数字、 B1はA1と同じ数値を自動入力させているので"=A1"という式が 入ってます。このB1の数式をB2からB10までコピーしているのでA2からA10に入力した数値が 反映されます。しかしA列にはいつも数値が入力されているわけではなく空白にする場合もあります。 でもB列の数式はコピーされてるので"0"が残ります。 そこですべて入力終了後にこのB列に自動で入力された"0"を削除したいのですが 置換で"0"にしても入ってるのは数値じゃなくて数式なので該当なしになるし、 数式も列ごとに移動されてるので一定ではありません。 この"0"を一括で削除するにはどうすればいいでしょうか? 入力範囲は500行まで及ぶのでいちいち"0"を探して削除するのが大変です。 分かりにくい質問ですいませんがよろしくお願いします。

  • エクセル 数式のコピー・貼付について

    エクセルの数式のコピー・貼付について教えてください。 シート1にデータが1000行くらい入っているとします。    A   B   1 100  5 2 200  3 3 350  9 :  :   : :  :   : シート2のセルA1、A2に =A1*B1 シート2のセルA3、A4に =A2*B2 シート2のセルA5、A6に =A3*B3 と、2行ずつ数式を入れたいのですが、 普通にコピー貼付をするとセル番地が自動的に 増えていってしまいます。 2行ずつ、同じセル番地の数式を入れる方法がありますでしょうか。 どうぞよろしくお願いいたします。

  • Excelで数式のコピーが上手くいきません

    以下のことが出来ず困っています。  Sheet1のセルA1に「Sheet2!A1」、セルB1に「Sheet2!A2」が入っています。  このSheet1A1・B1の数式を横にコピーしたいのです。つまり、Sheet1C1にSheet2!A3~Sheet1F1にSheet2!A6というように数式の縦横が逆になるようにしたいのです。  さらに、上記で作成したSheet1のA1~F1までの数式を他の行にコピーしたいのです。A2に「Sheet2!B1」、B2に「Sheet2!B2」のようにです。  行列を入れ替える等やってみましたがダメでした。頭で考えていると訳がわからなくなります。  表内のデータ数が多いので手入力は避けたいです。  方法がありましたら教えてください。お願いします。

  • Excelの数式のコピーで列移動で行番号を変えたいのですが

    Excelで表管理をしているのですが、数式のコピーをする時に列を移動させて行の方を変更させる方法は無いのでしょうか? 例えばB2のセルに(Sheet2!B2)と入っている物を、C2,D2,E2…と列の方にコピーをさせた場合に(Sheet2!B3)、(Sheet2!B4)(Sheet2!B5)と行の方の数字だけを変更させたいんです。 $を付けたりして試して見たのですが行は行、列は列の方しか参照してくれないみたいなので、何か方法があれば教えて頂けないでしょうか? 作りたい表の数が多く手入力では大変なので、簡単な操作があればよろしくお願いします。

専門家に質問してみよう