「夫を成功」へ導く妻の秘訣 座談会

お世話になります。
エクセルで20万行のデーターがあります(時刻と温度のデーター)。
これを100行ずつ抽出し、別のシートにコピーしたいのですがどうすればいいでしょうか?
+’sheet’A1
+’sheet’A101
+’sheet’A201
・・・
と手入力では大変ですので、ドラッグで一度に出来るやり方を教えて頂けると幸いです。
よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

よく解らないのですが、


掲載された例では、100行置きにセル参照したいということでしょうか。
普通、セル参照式は
=Sheet1!A1
というようになると思います。

(1)、上記のように、A1に参照式を入力します。
(2)、その参照式の = を # に書き換えて文字列にします。
(数式内で重複しない文字、記号ならOKです)
#Sheet1!A1
(3)、次に「名前ボックス」に、式を入力するセル範囲を入力します。
掲載例だと
A1:A200
と入力します。
(4)、Enterすれば、セル範囲A1:A200が選択されます。
(5)、Ctrl+D、とキー操作して、A1の文字列になった式をA2以下のセルにコピー
(6)、A2の文字列式のセル番地のところを
#Sheet1!A101
と変更
(7)、A1:A2を選択し、選択枠の右下角の■(フィルハンドル)をダブルクリック
(8)、範囲選択状態のままで、Ctrl+H、とキー操作して「置換」ダイアログボックスを表示し
検索する文字列を、#
置換後の文字列を、=
として「すべて置換」

以上の操作で、100行置きのセル参照式が出来上がります。
質問の意図が把握し切れていないので外しているかもしれません。
良かったら、一度試してみてください。
    • good
    • 0
この回答へのお礼

説明不足で申し訳ありません。
おかげさまで、問題は解決できました。

これで、仕事が出来ます。
No.2番の方の方法もあると思いますが、私にはこの方法が一番分かりやすかったです。
早速のご回答ありがとうございました。

お礼日時:2008/08/23 23:25

データがあるシート名が「sheet1」の時、


別のシートのA1に
=INDIRECT("sheet1!A"&(ROW()-1)*100+1)
と入力し、下にコピーします。
すると100行ごとのデータが出てきます。
    • good
    • 2
この回答へのお礼

おかげさまで、問題は解決できました。
早速のご回答ありがとうございました。

お礼日時:2008/08/23 23:23

VBAででもやらないと大変でしょう。

VBAの経験ありますか。
>100行ずつ抽出し
とはどうするのですか。A列にデータがあるとして
A1,A101,A201、・・の行をあるシートの1,2,3・・行に順次集めるのか。
1-100行を足してしまうのか。
1-100行をあるシートに、101-200行を別シートに
2000シートにも分割するのか。
質問文の中ではっきり説明してますか。
+’sheet’A1+’sheet’A101+’sheet’A201・・では、勝手な書き方で判らないと思いますよ
VBAでやれば、コードはそう複雑にはならない見込み。
    • good
    • 0
この回答へのお礼

説明不足で申し訳ありません。
おかげさまで、問題は解決できました。
早速のご回答ありがとうございました。

お礼日時:2008/08/23 23:22

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QEXCELで100行に1行ずつ抽出したい

現在卒業研究中でエクセルを使っています。
そこで分からない事があるんですが、約10万行のデータがある列から100行に1行ずつ抽出し、横に1000行の列を作りたいと思ってます。
抽出する行は[1,101,201...]や、[100,200,300]等、番号は問いません。ただランダムではなく、100行ずつ順番に並べたいです。

どなたか詳しい方いらっしゃいましたら、教えていただけないでしょうか?
よろしくお願いいたします。

Aベストアンサー

データがA列に 入っているなら
>横に1000行の列
仮にB列に抽出するとしたら

B1に
=INDEX(A:A,ROW()*100,)
この式を、下セルにドラッグ

式中の  ROW()*100 が 100、200,300行目のA列データを表示します。
101,201,301行目なら  ROW()*100+1
102,202,302行目なら  ROW()*100+2
にする。

Qエクセルで50行ごとに区切ったデータをシートに分割したい

エクセルで2000行ほどある一枚のシートを50行ごとに
(1-50)(51-100)(101-150)…と分割して、一つずつ
新しいブックで保存する作業があります。

今までは50行ごとにコピーして新しいブックにペーストを
繰り返してましたが、大量にきたもので困ってます。
何か自動化などできないことでしょうか?
ご回答お待ちしております。

参考にシートは以下のような形式です。
  A  B  C  D
1  a  1   1  1
2  b  1   2  3
3  c  2   3  4
4  d  5   6  7
5  e  7   8  9
6  f  2   3  4 
7  h  5   6  7
8  g  8   9  1
9  n  2   3  4
10 n  5   6  7



50 j  5   6  7

Aベストアンサー

> エクセルで50行ごとに区切ったデータをシートに分割したい
> …と分割して、一つずつ新しいブックで保存する作業があります。

「ブック」と「シート」のどちらか不明瞭ですが、アクティブシートを50行毎に
新しいブックにコピーするコードです。

アクティブブックと同じフォルダに保存されます。


Option Explicit

Sub Sample()
  
  Dim Wb     As Workbook
  Dim rngData   As Range
  Dim i      As Long
  Dim strBasename As String
  Dim strFilename As String
  Dim lng1stRow  As Long
  Dim lngLstRow  As Long
  
  Const STEP_ROWS_COUNT = 50 '50 行
  
  Set rngData = ActiveSheet.UsedRange
  strBasename = ActiveWorkbook.FullName
   
  With rngData
    lng1stRow = .Row
    lngLstRow = Application.Ceiling(.Cells(.Cells.Count).Row, STEP_ROWS_COUNT)
  End With
  Application.ScreenUpdating = False
  For i = lng1stRow To lngLstRow Step STEP_ROWS_COUNT
    ' 新規ブック作成
    Set Wb = Workbooks.Add
    ' STEP_ROWS_COUNT で指定された行ごとに新規ブックの Sheet1 にコピー
    rngData.Rows(CStr(i) & ":" & CStr(i + STEP_ROWS_COUNT - 1)).Copy _
      Destination:=Wb.Worksheets("Sheet1").Range("A1")
    ' 新規ファイル名生成
    strFilename = Left$(strBasename, InStrRev(strBasename, ".") - 1) & "(" _
          & Format$(i, "0000") & "-" & Format$(i + STEP_ROWS_COUNT - 1, "0000") _
          & ").xls"
    ' 同一フォルダに保存して閉じる
    Wb.SaveAs Filename:=strFilename
    Wb.Close
    Set Wb = Nothing
  Next i
  Set rngData = Nothing

End Sub

> エクセルで50行ごとに区切ったデータをシートに分割したい
> …と分割して、一つずつ新しいブックで保存する作業があります。

「ブック」と「シート」のどちらか不明瞭ですが、アクティブシートを50行毎に
新しいブックにコピーするコードです。

アクティブブックと同じフォルダに保存されます。


Option Explicit

Sub Sample()
  
  Dim Wb     As Workbook
  Dim rngData   As Range
  Dim i      As Long
  Dim strBasename As String
  Dim strFilename As Str...続きを読む

Qエクセルで数行おきにデータを抽出

エクセルシートで、あるデータ膨大にを出しますよね。
それで、たとえば、三行ごと、四行ごととかであるデータを右の行もしくは左行に抜き出す操作をするにはどうしたらいいですか?
今は、フィルタと可視フィルタを駆使してやっているのですが、一発でバンと出すような方法があると思って・・・数式とかでありそうだなって思って。
教えてください。、

Aベストアンサー

=OFFSET(抽出したい列の一番初めのセルの絶対参照,(ROW(A1)-1)*行間隔,0)
又は
=INDEX(抽出したいセルの範囲の絶対参照,(ROW(A1)-1)*行間隔+1,1)

QExcelで大量の2000個のリストを100個ずつ

お世話になります。

データが12000件ほどあるのですが、これを100件くらいずつにわけて保存したいのです。

途中で区切りとかがあるわけではなく、タダひたすらデータが

××××××@×××.××.××
××××××@×××.××.××
××××××@×××.××.××








と入力されてあるのですが、これを300個区切りくらいに分けるのを簡単にする方法はないものでしょうか。

なければ地道にマウスで100個ずつ選んで切り取っていくしかないので、もしなにか良い方法があれば是非ご助言いただきたいです。

Excel2000です。

どうかよろしくお願いいたします。

Aベストアンサー

テキストファイルにして、
テキストファイルの行数を指定して分割するフリーソフトを
使うのがいいのでは、

http://www.vector.co.jp/soft/win95/util/se088352.html

http://www.vector.co.jp/soft/dos/util/se228325.html

http://www.vector.co.jp/soft/dos/util/se300863.html

QExcelシートを分割して新シートにコピーしたい

5000行近くある1枚のExcelシートを、100行毎に分けて別のシートへコピーしたいです。

以前は、地道に100行ずつコピペしていました。
もし、簡単にできる方法があれば、是非ご教示ください。

なお、マクロ?だとか難しい事が分からない初心者です。
宜しくお願い致します。

Aベストアンサー

繰り返し作業はマクロの得意とするところです。
まず、「マクロの記録」機能で記録してみました
Sub マクロの記録()
  Sheets("Sheet1").Select '元シートの「Sheet1]を選択
  Application.Goto Reference:="R1:R100" '名前ボックスで「1:100」を入力
  Selection.Copy 'コピー
Sheets.Add 'シートを追加
  ActiveSheet.Paste '貼り付け
  Sheets("Sheet1").Select '元シートの「Sheet1]を選択
  Application.Goto Reference:="R101:R200" '名前ボックスで「1:100」を入力
  Application.CutCopyMode = False 'コピーの解除
  Selection.Copy 'コピー
  Sheets.Add 'シートを追加
  ActiveSheet.Paste '貼り付け
  Sheets("Sheet1").Select '元シートの「Sheet1]を選択
  Application.CutCopyMode = False 'コピーの解除
End Sub

上記の記録情報をもとに下記のように改良してみました
[Alt]+[F11]VBE起動
挿入 - 標準モジュール - 下記貼り付け
Sub マクロの記録改()
  Dim n As Long '変数の定義
  For n = 1 To 4901 Step 100
    Sheets("Sheet1").Select '元シートの「Sheet1]を選択
    Application.Goto Reference:="R" & n & ":R" & n + 99
    Selection.Copy 'コピー
    Sheets.Add 'シートを追加
    ActiveSheet.Paste '貼り付け
  Next n
  Application.CutCopyMode = False 'コピーの解除
End Sub
シートに戻り、[Alt]+[F8] で対象のマクロを実行します。
質問部分から読み取れない部分は勝手に補完しています
VBAはあまり自信がないので参考まで

繰り返し作業はマクロの得意とするところです。
まず、「マクロの記録」機能で記録してみました
Sub マクロの記録()
  Sheets("Sheet1").Select '元シートの「Sheet1]を選択
  Application.Goto Reference:="R1:R100" '名前ボックスで「1:100」を入力
  Selection.Copy 'コピー
Sheets.Add 'シートを追加
  ActiveSheet.Paste '貼り付け
  Sheets("Sheet1").Select '元シートの「Sheet1]を選択
  Application.Goto Reference:="R101:R200" '名前ボックスで「1:100」を入力
  Appl...続きを読む

Qエクセルで1列に500行並んだデータを5列毎に改行

エクセル2000で、A1~A500までデータが縦並びに入力されています。

これを5列毎に改行して、横並びのデータに加工したいのですが、何か方法ありますか?

図解すると、、


A1
A2
A3
A4
A5
A6
A7


A500

のデータを

A1 A2 A3 A4 A5
A6 A7 A8 A9 A10
・・・・・・
A496 A497 A498 A499 A500



したいのです。

何かよい方法ありましたらお教え願います。

Aベストアンサー

'直接シートをいじるのでコピーをしてから試してみてください。
Sub Macro1()
COUNTER = 0
For INP = 1 To Cells(Rows.Count, 1).End(xlUp).Row Step 5
COUNTER = COUNTER + 1
Range("A" & INP & ":A" & INP + 4).Copy
Range("B" & COUNTER).PasteSpecial Paste:=xlPasteValues, Transpose:=True
Application.CutCopyMode = False
Next INP
Range("A1").EntireColumn.Delete
End Sub

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい

Qエクセルの1シートを項目別に別シートへ分ける方法

エクセル2010で1シートのデータを項目別に別シートへ自動的に分割する方法で困っています。
検索するとマクロを使うと書いていますが、マクロはほとんど使ったことが無いのもあって、わかりませんでした。

シート1
A列(日付8ケタ+商品番号6ケタ) B列(売上額)
20130515000004           300
20130515000006           100
20130518000004           300
20130519000001           500
20130519000004           300
・・・                   ・・・
をA列の日付部分上8ケタを使って日別にシートを分け、
シート名をuriage20130515(uriageと日付8ケタ)という名前にしシート名+CSV形式で保存したいです。

シート2 シート名:uriage20130515
A列         B列
20130515000004 300
20130515000006 100

シート3 シート名:uriage20130518
A列         B列
20130518000004 300

シート4 シート名:uriage20130519
A列         B列
20130519000001 500
20130519000004 300

このように自動で別シートに分割した上で、シート名CSV形式で保存まで自動でできるとありがたいです。

自動化できるならシートを分割するマクロ、シート名でCSV保存するマクロが一つのマクロになっていても、分かれていてもOKです。

このようなことはできますか?

よろしくお願いします。

エクセル2010で1シートのデータを項目別に別シートへ自動的に分割する方法で困っています。
検索するとマクロを使うと書いていますが、マクロはほとんど使ったことが無いのもあって、わかりませんでした。

シート1
A列(日付8ケタ+商品番号6ケタ) B列(売上額)
20130515000004           300
20130515000006           100
20130518000004           300
20130519000001           500
20130519000004           300
・・・           ...続きを読む

Aベストアンサー

手順:
元データのブックを一度保存して開き直す
ALT+F11を押す
現れた画面で挿入メニューから標準モジュールを挿入する
現れたシートに下記をコピー貼り付ける

sub macro1()
 dim myPath as string
 dim myFile as string
 dim h as range
 dim s as string
 dim w as worksheet

 mypath = thisworkbook.path & "\"
 on error resume next
 kill mypath & "*.csv"
 application.displayalerts = false
 for each w in worksheets
  if w.name <> activesheet.name then w.delete
 next
 application.displayalerts = true
 on error goto errhandle

 for each h in range("A1:A" & range("A65536").end(xlup).row)
 if isnumeric(h.value) then
  s = left(h.value, 8)

 ’CSVに書き出し
  open mypath & "uriage" & s & ".csv" for append as #1
  print #1, h.value & "," & h.offset(0,1).value
  close #1

 ’シートに書き出し
  h.entirerow.copy worksheets(s).range("A65536").end(xlup).offset(1)

 end if
 next

 for each w in worksheets
  w.columns("A:B").autofit
 next
 exit sub

errhandle:
 worksheets.add after:=worksheets(worksheets.count)
 activesheet.name = s
 range("A1:B1") = array("date", "value")
 resume
end sub


ファイルメニューから終了してエクセルに戻る
ALT+F8を押しマクロを実行すると,CSVを書き出す。



#「CSVを書き出す」のが目的で「別シートに振り分ける」こと自体に目的はないと思いましたが,まぁご相談なのでシートに書き出しも追加しました。。。と思って書き足してったら無駄に長いマクロになっちゃいました。あんまりイミなかったです。

手順:
元データのブックを一度保存して開き直す
ALT+F11を押す
現れた画面で挿入メニューから標準モジュールを挿入する
現れたシートに下記をコピー貼り付ける

sub macro1()
 dim myPath as string
 dim myFile as string
 dim h as range
 dim s as string
 dim w as worksheet

 mypath = thisworkbook.path & "\"
 on error resume next
 kill mypath & "*.csv"
 application.displayalerts = false
 for each w in worksheets
  if w.name <> activesheet.name then w.delete
 next
 a...続きを読む

Qエクセルで特定の行を抽出させる方法について。

エクセルでの関数についての質問ですが、

     A     B    C     D  
 1  名前   日付  場所   時間
 2  Aさん  10/7  工場1   8.0
 3  Bさん  10/7  工場1   8.0
 4  Cさん  10/7  工場2   4.0
 5  Cさん  10/7  工場1   8.0
 6  Aさん  10/8  事務所   8.0
 7  Cさん  10/8  工場2   8.0
 8  Aさん  10/9  事務所   4.0

以上の表から別のシート2にAさんだけの行を抽出するには、どのようにすれば良いのでしょうか?
INDEXやMATCH・LOOKUPを使っていろいろ試したのですがイマイチうまく行かないもので・・・。

因みに、シート2のイメージは

      A     B     C  
 1   名前  :  Aさん 
 2
 3   日付   場所   時間
 4   10/7   工場1    8.0
 5   10/8   事務所    8.0
 6   10/9   事務所   4.0

このような感じです。

よろしくお願いします。

エクセルでの関数についての質問ですが、

     A     B    C     D  
 1  名前   日付  場所   時間
 2  Aさん  10/7  工場1   8.0
 3  Bさん  10/7  工場1   8.0
 4  Cさん  10/7  工場2   4.0
 5  Cさん  10/7  工場1   8.0
 6  Aさん  10/8  事務所   8.0
 7  Cさん  10/8  工場2   8.0
 8  Aさん  10/9  事務所   4.0

以上の表から別のシート2にAさんだけの行を抽出するには、どのように...続きを読む

Aベストアンサー

こんにちは!

極端にデータ量が多い場合はおススメできませんが・・・
一気に表示する方法です。

↓の画像で右側がSheet2とします。
Excel2007以降のバージョンをお使いだとして・・・

Sheet2のA4セルに
=IF($B$1="","",IFERROR(INDEX(Sheet1!B$1:B$1000,SMALL(IF(Sheet1!$A$1:$A$1000=$B$1,ROW(A$1:A$1000)),ROW(A1))),""))
これは配列数式になってしまいますので、Shift+Ctrl+Enterで確定!
この画面から数式をコピー&ペーストする場合は
上記数式をドラッグ&コピー → Sheet2のA4セルを選択 → 数式バー内に貼り付け
→ そのまま(編集可能なまま)Shift+Ctrlキーを押しながらEnterキーで確定!
数式の前後に{ }マークが入り配列数式になります。
これをC4セルまでコピー!

A4セルの表示形式は「日付」にし、A4~C4セルを範囲指定 → C4セルのフィルハンドルで下へコピー!

これで画像のような感じになります。m(_ _)m꜊

こんにちは!

極端にデータ量が多い場合はおススメできませんが・・・
一気に表示する方法です。

↓の画像で右側がSheet2とします。
Excel2007以降のバージョンをお使いだとして・・・

Sheet2のA4セルに
=IF($B$1="","",IFERROR(INDEX(Sheet1!B$1:B$1000,SMALL(IF(Sheet1!$A$1:$A$1000=$B$1,ROW(A$1:A$1000)),ROW(A1))),""))
これは配列数式になってしまいますので、Shift+Ctrl+Enterで確定!
この画面から数式をコピー&ペーストする場合は
上記数式をドラッグ&コピー → Sheet2のA4セルを選択 → 数式バ...続きを読む

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング