人に聞けない痔の悩み、これでスッキリ >>

データの集計

サイトのアクセスログをメモ帳からエクセルに貼り付けて集計しています。
エクセルに貼り付け可能な行数を超えるデータの場合にはどうしたらよいかわからず困っています。
特に複雑な集計ではなく、単純に下記項目の個数を調べたいのです。
(有料・無料のアクセス解析などを利用せずに集計したいと思っています)
項目は(1)IPアドレス(2)社員No(3)日時(4)閲覧ページです。

何かよい方法はないでしょうか。

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

A 回答 (4件)

>エクセルに貼り付け可能な行数を超える


最多どれぐらいのレコード数(行数)ですか。
56千を超えない場合もある?
>貼り付けて
手作業でですか?
>集計しています
どのように?
関数利用?
なぜエクセル利用。
他のソフトは持っていない。
他のソフトは知らない。
結果を渡す先の制約やグラフ?
ーー
数が10万前後程度ならシートを分けて貼り付けや列を分けて貼り付けではダメなんですか。
ーーー
メモ帳に貼り付けた、テキストファイルの項目の状況は?
場合(項目の開始位置がそろっている場合)によっては、Sortコマンドでソートし、エクセルVBAで
Basic機能を借りて、集計できるかもしれない。
    • good
    • 0

来年発売される予定のExcel2007(WindowsXPのみ対応)は1,048,576行,16,384列だそうです。


現在Microsoftのサイトでベータ版がダウンロードできるようですが...
http://www.microsoft.com/japan/office/preview/de …

ベータ版をテストしている方が紹介してます。
http://blog.goo.ne.jp/office2007
    • good
    • 0

アクセスを使う、



アクセスログを貼り付けせずに、
VBAを使ってプログラム的に集計処理をする
    • good
    • 0

シートを複数に分割するしかありません。



あるいは、Excelでの集計を止めてAccessで集計すればデータ件数は実質無制限です。
※制限はありますが、Excelと比べれば…ということです。
    • good
    • 0

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

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

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

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

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

Qエクセル2000で65536行を超えるCSVファイルの読み込み方法

Windows2000、エクセル2000です。
今回、約10万行を超えるCSVファイルが送られてきました。
エクセルで開くと当然65536行で切れてしまいます。
やむをえず、拡張子を .txt に変え、メモ帳で開いて分割してエクセルの複数のシートに張ろうとしてみました。
拡張子を .txt に変えれば65536行で切れず、全件表示されます。しかし、このデータをコピーしようとCtrlを押したままマウスでスクロールをしたところ、スクロールはできるのですがデータが膨大なため遅々として先にすすんでくれません。
これじゃらちがあかないので、他の部署のAccsessを使える人にデータをわたして数ファイルのCSVファイルに分割していただきました。
今回はこれで事なきをえたのですが、これからまたこんなことがあった場合、わたしはAccsessを使ったことがないので困ってしまいます。(送付側からは分割したければそっちでやれといわれております。)

こんな場合、エクセルではどのような対応をすればいいのでしょうか?
(エクセル2007を使えという答えは勘弁してください。)

Windows2000、エクセル2000です。
今回、約10万行を超えるCSVファイルが送られてきました。
エクセルで開くと当然65536行で切れてしまいます。
やむをえず、拡張子を .txt に変え、メモ帳で開いて分割してエクセルの複数のシートに張ろうとしてみました。
拡張子を .txt に変えれば65536行で切れず、全件表示されます。しかし、このデータをコピーしようとCtrlを押したままマウスでスクロールをしたところ、スクロールはできるのですがデータが膨大なため遅々として先にすすんでくれません。
これじゃらちが...続きを読む

Aベストアンサー

別にexcelで開かなくても、wordで開いちゃえばいいじゃないですか。

word上で、適当な行数で切って「書式なし(*.txt)」で保存すれば
済む話です。ナンなら「メモ帳」でも同じことが出来ますよ。

QExcel 2007で6万5536行以上のデータ

Excel 2007では、最大列数が従来の256列から1万6384列に,最大行数が従来の6万5536行から104万8576行に増えたと聞きました。私のExcelは、2007ですが、最大行数は6万5536行のままです。
どうしたら、6万5536行以上のデータを扱えるようになるのでしょうか?
何らかの設定変更で可能になるのでしょうか?

Aベストアンサー

>何らかの設定変更で

エクセルを素で起動させたときの設定方法は,画面左上の丸いOfficeボタンからExcelのオプションの「保存」欄で,ファイルの保存形式が「Excel 97-2003ブック」になっているので「Excelブック(*.xlsx)」に変更します。



すでにあるブックについては,
>どうしたら、6万5536行以上のデータを扱えるようになるのでしょうか?

画面左上の丸いOfficeボタンから「変換」を開始すると,ブックを一度保存する画面が開いて後に変わっています。

ちなみにxlsxブック形式だけでなく,xlsmやxlsbを選んでも変わります。

QVBAでの100万行以上のデータの取り込み

どなたかご教示お願いいたします。
VBAで100万行以上のCSVデータの取り込みは可能でしょうか?
初心者なのでファイルを開いてセルに入れてから範囲を指定し配列に
取り込み処理しておりましたが100万行以上だとデータがシートから出てしまいます。
なのでエクセルに展開せずに配列に取り込むなどということはできるのでしょうか?
もし可能であればあつかましいのですが、A列の120万行データを配列に取り込むサンプルをご教示いただけるとありがたいのですが・・・
よろしくお願いいたします。

Aベストアンサー

6割程度出来たかも?
データ数180万、項目数8個、最大・最少を求めるのは1項目、
100データ区切りで試した結果。
5分。
200データ区切りだと
4分。
最初の30秒ほど応答なし状態ですがその後にシート転記が始まりました。
700万だとExcelが落ちる可能性有りです。

ただ、まだ確認したいことがありますのでコードは差し控えます。
時間軸の項目名と書式(例 15:30:25 のようなもの)。
時間軸のデータは重複があり得ますか。
何の最大値・最小値なのでしょう?もしかして時間軸を除く16項目。
もしかして、200区切りでその範囲内なら時間軸の値は同じ?
(でないと16項目の最大・最少を求めても意味ないですよね)
200区切りで、もし一部分でも200に満たないものがあった場合に
考慮しないで常に200区切りとして処理しても構わない。

呑み込みが悪くてすみません。
出来ればデータを1行目から数行提示してもらえると助かります。
例えば3データ区切とした場合
時間軸|項目1|項目2|・|項目16
1:01:01  10   20    30
1:01:01  20   50    40
1:01:01  15   80    10
1:01:02  90   60    10
1:01:02  20   50    40
1:01:02  15   80    50

1:01:01  20   80    40
1:01:01  10   20    10
1:01:02  90   80    50
1:01:02  15   50    10
ということでしょうか?
横の方が良いのか
1:01:01 20/10  80/20  40/10
1:01:02 90/15  80/50  50/10

つまり、
時間軸が大体200区切りで値が同じ
その中でそれぞれの項目の最大・最少なら単純なのですけど。
冒頭のデータ量で2分程度でした。
(3年前の中堅スペックのPCです)
700万行だとやってみないことには…。
ヘッダー(タイトル行)は120も700のモノも同じ
でデータ部分が異なるだけ?
bin-chan さんにお任せして敵前逃亡しようかな。。。

6割程度出来たかも?
データ数180万、項目数8個、最大・最少を求めるのは1項目、
100データ区切りで試した結果。
5分。
200データ区切りだと
4分。
最初の30秒ほど応答なし状態ですがその後にシート転記が始まりました。
700万だとExcelが落ちる可能性有りです。

ただ、まだ確認したいことがありますのでコードは差し控えます。
時間軸の項目名と書式(例 15:30:25 のようなもの)。
時間軸のデータは重複があり得ますか。
何の最大値・最小値なのでしょう?もしかして時間軸を除く16項目。
...続きを読む

Qエクセルで重複しているデータの抽出のしかたを教えてください。

エクセルで重複しているデータを抽出したいのですが・・。なにぶん初心者なもので簡単な方法があればよいのですが・・。
A列に日付 B列に企業名このデータが300件ほどあります。

 Å列      B列
1月 1日    AAAA社
1月 4日   BBBB社
1月 8日   CCCC社
2月 1日   BBBB社
2月20日    DDDD社
3月 2日   AAAA社

と、あるとしてB列の企業名が重複しているものを抽出したいのですが・・・。この場合 AAAA社とBBBB社ですが。
これを簡単に抽出する方法はないでしょうか?
教えてください お願いいたします。

Aベストアンサー

企業名がセルB2からセルB300まで入力されていると仮定します。
セルC2に IF(COUNTIF($B$2:B2,B2)>1,"*","") を入力し、セルC300までコピーして下さい。すると重複したデータの二番目以降に "*" のマークが付きます。
(注) 数式を下のセルまでコピーするため、COUNTIF($B$2 は絶対参照にして下さい。

QVBA csvを100万行ずつ各シートに読み込み

 今晩は、質問させていただきます。どうぞよろしくお願いいたします。
環境:Win7 64bit SP1、 エクセル2010
でございます。

 「1000万行×3列」のCSVファイルデータを、100万行ずつ
シート1~10に振り分けたく悩んでおります。
・エクセルは100万行しかありませんので、「一旦開いてから各シートに分割」という方法が使えませんし、
・またReadLineいたしますと(1行ずつの方法しか存じませんので)時間がかかりそうですし、
何よりcsvファイルのカンマ記号も含め1行全てが、エクセルのひとつのセルに入ってしまうのでは、などと考えております。

 何か良さそうな方法を思いつかれる方はおられませんでしょうか。
もしお詳しい方がいらっしゃいましたら,どうぞよろしくお願いいたします。

Aベストアンサー

>そのようにいたしますと、「,」(=カンマ)で区切られたCSVファイルの1行のデータ全てが
エクセルの「A1」に入ってしまいます。

実際に私の提示した方法を試されたのでしょうか?

私が提示した方法は、エクセルの一般機能(区切り位置)で上記のようなデータを列に自動的に分割する方法を紹介しています。

このように1回だけ区切り位置の機能を利用すると、その設定をエクセルが記憶していて、2回目からコピー貼り付けするだけで、自動的に列に分割してくれます。

自分でマクロコードを編集や記載する手間や時間を考慮すれば(毎日何回も同じ作業を繰り返すようなことがないなら)、私の提示した方法でショートカット操作を使えって操作すれば、10回のコピー貼り付け操作は5分もあればできると思うので、実戦的には効率的だと思うのですが・・・

Qエクセルで「コピー領域と貼り付け領域の形が違うため、情報を貼り付けることができません」とでます

タイトルどおりです。
全く同じ四角い領域(二つのセルを一つに結合している。それを4~5個)を、別の同じ形のところへ貼り付けようとするのですが、このメッセージが出てできます。それでコピー&ペーストができません。助けてください。
OS=WIN XP SP2
EXEL2000 9.0.2812
です

Aベストアンサー

私もそれで困ったことがあります。
貼り付けようとする側の4~5個を選択するのではなく、該当する範囲の左上の角1個のセルを指定してみてください。

私はそれで解決しました。

QExel VBA 別ブックから該当データを検索し、必要なデータを取得する方法について

部品表というブックがあります
A列に商品名、B列に商品番号が入力してあります。C列のコードは未入力です。
A列     B列     C列      
商品名  商品番号  コード
モータ  U-1325-L  
ホルダ  R-134256

また、コード一覧表という別のブックには、A列に商品番号と、B列にコードが、何千件も入力されています。

やりたいことは
部品表のC列のコード欄に、コード一覧表ブックから商品番号と一致するコードを貼り付けしたいのです。

部品表は、何百種類もありますので、関数ではなく、マクロで処理を希望します。

自分では、部品表の商品番号をコピーして、コード一覧表で検索し、検索結果の右隣のセル(B列のコード)の値を部品表のC列に貼り付ければよいかと思い、書いてみたんですが…

Sub 別ブックから貼り付ける()
  Dim 検索する As Long
Windows("部品表.xls").Activate
検索する = cells(i,2).Value
Windows("コード一覧表.xls").Activate
ActiveWindow.SmallScroll Down:=-3
Selection.AutoFilter Field:=3, Criteria1:="=検索する", Operator:= xlAnd

と、してみたものの、検索しても、その検索結果の隣のセルのコードをどうやって取得すればいいのかが、わかりませんでした。

基本事項は本で学びましたが、呪文のようなコードはよく理解できません。懸命にネットで検索して、訳して理解する努力をしてはいますが。

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

部品表というブックがあります
A列に商品名、B列に商品番号が入力してあります。C列のコードは未入力です。
A列     B列     C列      
商品名  商品番号  コード
モータ  U-1325-L  
ホルダ  R-134256

また、コード一覧表という別のブックには、A列に商品番号と、B列にコードが、何千件も入力されています。

やりたいことは
部品表のC列のコード欄に、コード一覧表ブックから商品番号と一致するコードを貼り付けしたいのです。

部品表は、何百種類もありますので、関数...続きを読む

Aベストアンサー

こんにちは。
とりあえず実用性も踏まえました。
メインの動作はワークシート関数のVLOOKUPをVBA上で使用していますので理解はしやすいかと思います。
また、質問文から察するに「部品表.xls」と「コード一覧表.xls」の両方を開いて処理されていますが「コード一覧表.xls」はプログラム内で開いて閉じているので実行するときは「コード一覧表.xls」は閉じて置いてください。
Option Explicit
Sub Sample()
 Application.ScreenUpdating = False
 Dim I As Long
 Dim xlBook
 Set xlBook = Workbooks.Open("C:\★★\コード一覧表.xls") '★要変更★
 I = 2
 Do While Range("A" & I).Value <> ""
  ThisWorkbook.Worksheets("Sheet1").Range("C" & I).Value = Application.VLookup(ThisWorkbook.Worksheets("Sheet1").Range("B" & I).Value, xlBook.Worksheets("Sheet1").Range("A2:B65535"), 2, 0)
  I = I + 1
 Loop
 xlBook.Close
 Application.ScreenUpdating = True
 MsgBox ("完了")
End Sub

こんにちは。
とりあえず実用性も踏まえました。
メインの動作はワークシート関数のVLOOKUPをVBA上で使用していますので理解はしやすいかと思います。
また、質問文から察するに「部品表.xls」と「コード一覧表.xls」の両方を開いて処理されていますが「コード一覧表.xls」はプログラム内で開いて閉じているので実行するときは「コード一覧表.xls」は閉じて置いてください。
Option Explicit
Sub Sample()
 Application.ScreenUpdating = False
 Dim I As Long
 Dim xlBook
 Set xlBook = Workbooks....続きを読む

QEXCEL VBAマクロ作成で、他のEXCELからデータを取り込みたい

メインプログラム(EXCEL VBA)より、
他のフォルダーにあるEXCELの項目の内容を取り込みたいです。
たとえば他のフォルダーのEXCELのRange("A2:A3").ValueをメインプログラムのRange("C2:C3").Valueにセットしたい時です。

・コマンドボタン押したら、どこのEXCELから取り込むかのポップアップ(?)は、表示はできてます。
・作業者が選んだパスとブックもMsgBoxで表示できてるので、もらう相手の場所も取得できてます。

・となると次はOPEN,INPUTですか?
テキストデータの取り込みですと、Inputでそのバッファを定義してるのですが、なんか違うような。。。

よろしくお願いします!

Aベストアンサー

私がやる方法です。

Dim writeSheet As Worksheet ' 自分自身の書き出し先シート
Set writeSheet = ThisWorkbook.Worksheets(1) ' Sheet1 を参照

Dim readBook As Workbook ' 相手ブック
Set readBook = Workbooks.Open(filename) ' 相手ブックを開いて参照
Dim readSheet As WorkSheet ' 相手シート
Set readSheet = readBook.Worksheets("sheetName") ' 相手シートを参照
' または Set readSheet = readBook.Worksheets(sheetIndex)

' 例えば
writeSheet.Cells(1, 1).Value = readSheet.Cells(2, 2).Value ' 相手シートの B2 の値を自分自身の A1 に書き込む

readBook.Close False ' 相手ブックを閉じる
Set readSheet = Nothing
Set readBook = Nothing

私がやる方法です。

Dim writeSheet As Worksheet ' 自分自身の書き出し先シート
Set writeSheet = ThisWorkbook.Worksheets(1) ' Sheet1 を参照

Dim readBook As Workbook ' 相手ブック
Set readBook = Workbooks.Open(filename) ' 相手ブックを開いて参照
Dim readSheet As WorkSheet ' 相手シート
Set readSheet = readBook.Worksheets("sheetName") ' 相手シートを参照
' または Set readSheet = readBook.Worksheets(sheetIndex)

' 例えば
writeSheet.Cells(1, 1).Value = readSheet.Ce...続きを読む

Q複数の同じフォーマットのファイルを新しいブックで一つのシートにまとめる方法

仕事で、各部署から送られてきた、同じフォーマットのファイル(シート1にのみデータ有)が50個近くあります。
それを新しいブックで一つのシートにまとめなくてはいけません。
地道にコピペするのは時間がかかるのでマクロで処理を行いたいと思います。
マクロでの処理方法ご存知の方、処理方法の載っているサイトをご存知の方、もしくはマクロより簡単な方法がありましたら教えてください。

あと、逆に一つのシートをいくつかのファイルに振り分けていく方法もご存知でしたら教えて下さい。
よろしくお願いします。

Aベストアンサー

すみません。質問を勘違いしていました。
>新しいブックで一つのシートにまとめなくてはいけません
でしたね。
Sub Sample1()
Dim buf As String, i As Long
Dim j
buf = Dir(Sheets("Sheet1").Range("A1").Value & "\*.xls")
Do While buf <> ""
Workbooks.Open Worksheets("Sheet1").Range("A1").Value & "\" & buf
Sheets("Sheet1").Range("A1:J1000").Copy
ThisWorkbook.Activate
Range("A65536").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste
Workbooks(buf).Activate
Application.CutCopyMode = False
Workbooks(buf).Close SaveChanges:=False
buf = Dir()
Loop
End Sub
で試してみてください。使い方などは
http://oshiete1.goo.ne.jp/qa4225063.html
を参照してみてください。同じ質問があったので気がつきました。

すみません。質問を勘違いしていました。
>新しいブックで一つのシートにまとめなくてはいけません
でしたね。
Sub Sample1()
Dim buf As String, i As Long
Dim j
buf = Dir(Sheets("Sheet1").Range("A1").Value & "\*.xls")
Do While buf <> ""
Workbooks.Open Worksheets("Sheet1").Range("A1").Value & "\" & buf
Sheets("Sheet1").Range("A1:J1000").Copy
ThisWorkbook.Activate
Range("A65536").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste
Workbooks(buf).Activate
Application.CutCop...続きを読む

Qエクセルでコピー領域と貼り付け領域の形が違うエラー

お世話になっております。
エクセルでセルの左上をクリックし、シート全体を選択して、他のブックに
このシートをコピーアンドペーストしようとすると、
コピー領域と貼り付け領域の形が違うというようなエラーが出て、貼りつける
事ができません。
左上の数字を見ると、片方は65536R×256C
もう片方は1048576R×16384C
となっており、明らかにセルの数が違うことが原因なのかなと思ったりもし
ます。
65536R×256Cでマクロを作成してしまっているため(エクセル2003で作成済分)
、もう片方の1048576R×16384Cのエクセルシートを65536R×256Cのセル数に変更する
ことができれば、大変ありがたいです。(現在はエクセル2007です。)
上記のような事は可能でしょうか?
可能であるならば、方法をお教えいただきたく。
よろしくお願いいたします。
なんとかして、以前作成したマクロを使えるように致したいですので。

Aベストアンサー

解決策1(推奨):
貼り付け先ブック(マクロが登録してある方)を,名前を付けて保存でファイルの種類を「Excelマクロ有効ブック」に変えて保存する
ファイル名が「今のブック名.xlsm」に変わるので,今のマクロを修正する



解決策2:
「シートの全部のセルをコピーする」のと「シートをコピーする」のでは,まったく意味が違います。

新しいマクロの記録を開始する
コピー元のブックを開き,
シート名タブを右クリックして「移動コピー」を開始し
コピーにチェックを入れ
移動先ブック(マクロブック)を指定してOKする

記録されたマクロを編集し,コピー元ブックをgetopenfilenameで指定できるように修正する。



解決策3:機能が劣るためあまりお奨めしません
そもそも「全セルを選んでコピー貼り付ける」なんて乱暴なことをしているので,失敗します。
コピー元がどんな大きさなのか不明なのは勿論仕方がないことですが,せめて「大体この範囲」みたいなのをつかんで仕事をしてもバチは当たりません。
もしもそれで,実際にコピー元が「IV列よりも右にはみ出して確かにデータがある」と確認できたのでしたら,それはもう今の256列のマクロブックじゃそもそも納まらないってことです。その時は解決策1に移行するしかありません。

作成例:
sub macro1()
 dim myFile
 myfile = application.getopenfilename()
 if myfile = false then exit sub
 workbooks.open filename:=myfile
 range("A:Z").copy  ’たとえば最大でもZ列止まりなら。
 thisworkbook.activate
 range("A1").select
 activesheet.paste
end sub


どーしても「全部のセル」を指定したくてしたくてシカタないなら,
range("A:IV").copy
のようになります。

解決策1(推奨):
貼り付け先ブック(マクロが登録してある方)を,名前を付けて保存でファイルの種類を「Excelマクロ有効ブック」に変えて保存する
ファイル名が「今のブック名.xlsm」に変わるので,今のマクロを修正する



解決策2:
「シートの全部のセルをコピーする」のと「シートをコピーする」のでは,まったく意味が違います。

新しいマクロの記録を開始する
コピー元のブックを開き,
シート名タブを右クリックして「移動コピー」を開始し
コピーにチェックを入れ
移動先ブック(マクロブック)を指定し...続きを読む


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

人気Q&Aランキング