• ベストアンサー

excelで困っています。お力をお貸しください。

はじめまして、今excelでA列に244007このデータがあって、 それをA2475から101個のデータをA2578から101個のデータ、 A2681から101個・・・といった風にA24153までB列に連続して表示したいのですが 、手作業ではとても時間がかかりすぎてしまいます。どうか早くできる方法を教えていただけないでしょうか?

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

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

No.4です! No.1さんの補足に >2475~A2575の1つ1つに入っている数値を移動させたいんです・・・ とありましたので、 前回のコードはコピー&ペーストですので、 もしA列のデータを消したいのであれば、前回のコード内の >Cells(i, "A").Resize(101, 1).Copy Cells(i, "A").Offset(, 1) の行を > Cells(i, "A").Resize(101, 1).Cut Cells(i, "A").Offset(, 1) に変更してみてください。 ※ 途中で「応答なし」になっても無視して待ち続けてみてください。m(_ _)m

mugi161
質問者

お礼

すごいです!私が昨日1日かけてやったことを一瞬でやってくれました!本当にありがとうございます。 私の説明が足りないのにこんなものを作ってくださって感謝感激です。

その他の回答 (6)

  • 172003
  • ベストアンサー率37% (3/8)
回答No.7

おっしゃってる意味かどうかわかりませんが。 A列のデータをB列に表示する。 1、“コピー”による方法 (1)最初にB列に表示したいA列のデータの最初のセルを選択する。(右クリックしたまま)その回にB列に表示したいA列のデータをそのまま、ドラッグする←このことを“範囲指定する”といいます。 (2)(右クリックを離す)範囲指定をした範囲の中に“アイポインター(矢印のマーク)”を持っていき、右クリックをする。 (3)「コピー」をクリックする。 (4)「(3)」でコピーしたデータを表示したいB列の最初のセルを選択し、(右クリックする)貼り付けをクリックする。 以後はこの繰り返しです。これは、データの「コピー・貼り付け」ですが、「切り取り・貼り付け」は(1)~(4)の手順の“コピー”を“切り取り”に変更するだけです。 2、“数式”による方法(入力モードを半角英数で行う) (1)A列のデータを表示したいB列の最初のセルを選択し、そのセルに『=A2475』(もちろん半角英数で)を入力し、“Enter”キーを押下する。 (2)『=A2475』と入力したセルの右下角に“アイポインター(矢印のマーク)”を当てると“黒い十字マーク”に変わったところで、クリックし、B列のデータを表示したい最後のセルまで、ドラッグする。 以後はこの繰り返しです。

mugi161
質問者

お礼

詳しく書いていただきありがとうございます。最初切り取って張り付け、切り取って張り付け、と繰り返してやっていたのですが、いかんせんデータ数が244007個という莫大な数ゆえに心が折れてしまいました。そこで皆様に知恵をお借りしたく質問をさせてもらいました。数式による方法は使ったことなかったのでためになりました!ありがとうございます

回答No.5

>合計ではなく、A2475~A2575の1つ1つに入っている数値を移動させたいんです・・・  少しわかりにくい質問の仕方ですがすみません。 少しというより、こちらではまだ何一つ見えていません。したいことが何であるのか、もっとヒントください。こちらとしては、可能性が無数にありすぎです。移動?コピペじゃないとすると、何でしょうね…。 何番のセルにどうしたいとか、できるだけ具体的に。

mugi161
質問者

お礼

A2475からA2575までのセルをB列に移動し、A2578~A2678までのセルをまたその続きから移動するということをしたかったのです。すみません。説明が下手すぎてご教授いただく前の問題ですね。

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

こんにちは! VBAになってしまいますが、一例です。 画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面に ↓のコードをコピー&ペーストしてマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub Sample1() 'この行から Dim i As Long Application.ScreenUpdating = False For i = 2475 To Cells(Rows.Count, "A").End(xlUp).Row Step 103 Cells(i, "A").Resize(101, 1).Copy Cells(i, "A").Offset(, 1) Next i Application.ScreenUpdating = True End Sub 'この行まで ※ データ量が多いようですので若干時間を要するかと思います。m(_ _)m

noname#181154
noname#181154
回答No.3

範囲を指定してコピペすれば?思いますが、 それもまた違うのでしょうか?

回答No.2

No.1 です。ごめんなさい、私も数字を間違えてしまいました…。名前ボックスに入力する範囲は、「b2578:b21735」でした。103 の倍数にしてください。(21735 - 2578 + 1) / 103 = 186 と、整数になります。

回答No.1

合計ですか? B2475 =sum(a2475:a2575) と入力。2575 - (2475 - 1) = 101 なのでこれで合っていると思いますが、一応実際のシートを見て確認。 できたら、B2475:B2577(← 103 行あるので気を付けて)のセル範囲をコピー。そのままの状態で名前ボックス(数式バーの左隣にあるセル番地が表示されるボックス)に、例えば「b2578:b21733」(←質問文の数字は違ってそうなので気を付けて)と入力し、キーボードで Enter。B2578:B21733 が選択されるので、他の操作をせずに右クリックなどでコピーしていたものを貼り付けてください。

mugi161
質問者

補足

合計ではなく、A2475~A2575の1つ1つに入っている数値を移動させたいんです・・・ 少しわかりにくい質問の仕方ですがすみません。

関連するQ&A