アクセスログを取るCGIを使用していますが、アクセス数により表示されるURL順序をエクセルで並び替えて集計しています。
同じサイトでページが分かれていてもサイト全体からのアクセスがわかるので重宝しています。
ただhttp://www.・・・・の表示では見難いのでこれをあらかじめ単語登録のようにリスト化して「サイト名」で表示させたいのです。
例:
http://www.1111111.com 124
http://www.aaaaaaa.com 82

と、このような表示を、
山田さん 124
田中さん  82 にさせたいのです。

エクセルでこのような集計は可能でしょうか?
これにより普段アクセスのないところからのリンクにはhttp://・・・と表示され、常連との区別も付けやすいのではと思うのです。

『補足』
countif関数で同じ文字列を含むもの、たとえば[goo.ne.jp]を範囲内でさがして件数を見ることはできます。
しかしアクセス数の合計計算が別に必要になります。

http://www.11111.com 124
http://www.aaaaa.com  82
・・・・・・・

これを
A列          B列
http://www.11111.com  124
http://www.aaaaa.com   82
http://www.aaaaa.com   62
http://www.aaaaa.com   11 ---->山田さん 155と表示させたいのです。


わかりにくい質問ですが、なにとぞよろしくお願いします。

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

A 回答 (2件)

こんにちは!



>countif関数で同じ文字列を含むもの、
>たとえば[goo.ne.jp]
たぶんこれは、
=COUNTIF(範囲,"*goo.ne.jp")
とされているものと思います。
集計は、同様に
 =SUMIF(参照範囲,"*goo.ne.jp",合計範囲)
で可能です。
 記載された例では(100行までとしたら)
 参照範囲:A列 → A2:A100
 合計範囲:B列 → B2:B100
 =SUMIF(A2:A100,"*goo.ne.jp",B2:B100)
となります。

>山田さん 
この意味が不明ですが?
山田さんを特定する列があるのでしょうか?
条件が増えると数式が多少変化します・・・
    • good
    • 0
この回答へのお礼

感謝です。
今までcountif関数は使っていましたが、sumifの使い方をわかっていませんでした。
sumといえば一番よく使う関数なのに機転が利かないと言うか・・・
本当に感謝です。
日常の作業がこれで半分の時間で済みます。
テンプレートを作って活用します。
ありがとうございました。

お礼日時:2001/10/29 17:33

こんにちは。

maruru01です。
合計計算についてはNo.1の方のやり方でいいと思います。
よって、「山田さん」の方を。

例えば、Sheet2のA1~B10に

A列            B列
http://www.aaaaa.com 山田さん
http://www.11111.com 田中さん
・・・・・・

のような表が作ってあるとします。
そして、例えばSheet1のC1に、
  =VLOOKUP("http://www.aaaaa.com",Sheet2!A1:B10,2,FALSE)
と書けば、"山田さん"と表示されます。
あとは、隣のD1にNo.1の方のやり方で、
  =SUMIF(A2:A100,"http://www.aaaaa.com",B2:B100)
と書けば、山田さんの合計値が入ります。
こんなところでしょうか。
また何かありましたら、補足して下さい。
では。
    • good
    • 0
この回答へのお礼

ありがとうございました。
先に回答をくださった方にはポイントが高くつけましたが、あなた様にも同様の感謝です!
本当に助かりました。

お礼日時:2001/10/29 17:35

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

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

Qエクセルで当番表を作ろうと、探していると、http://www.mat

エクセルで当番表を作ろうと、探していると、http://www.matsubarase.com/misc_program/Pipet-HTU.phpと言うサイトを見つけました。自動作成マクロですごく便利なのですが、マクロのpassがある為に、アレンジできません。又、勉強にもなりません。こんなの簡単だと思われる方はたくさんおられると思いますが、どなたか教えて頂けませんか?宜しくお願いします。

Aベストアンサー

そのマクロは、マクロ学校1年生卒業で、難しいことは何もしていません。

ただ、リンク先のツールは、kt関数がないので私の環境では動きません。祝日自体は、政府の来年の発表があるまでは、祝日さえ決まらないのですから、年間のリストを作っておけば良いのです。だから、kt 関数は必要ありません。

>マクロのpassがある為に、アレンジできません。

そういう考え方は改めたほうがよいです。他人のものでも、自分のマクロでも半年経てば別人のマクロで、分かりません。ご自身で作ることをお薦めします。

表だけみてマクロも作ってみたのですが、今回のサイトの改編で私の作ったプロシージャ全部は入らないです。もう、ここのサイトで完全にはマクロの質問はダメかもしれません。

マクロは三つに分かれています。[カレンダーの枠組みのフォームを作る][日付を入れる][人名を入れる]その内の人名を入れるマクロだけ入れておきます。
'-------------------------------------------
Sub PutInNames()
  Dim arNames As Variant
  Dim rng As Range
  Dim StartRng As Range
  Dim i As Long
  Dim j As Long
  Dim SetteiSh As Worksheet
  Dim n As Long, m As Long
  Dim Doyobiflg As Boolean  
  '=========================================
  Set SetteiSh = Worksheets("設定")
  Set rng = SetteiSh.Range("D5:D12") '名前リスト
  Doyobiflg = False '日曜/祭日のみ True
  '=========================================
  With SetteiSh
    If Application.CountA(rng) < 2 Then
      MsgBox "名前リストがないかもしれません。", vbExclamation
      Exit Sub
    End If
    
    arNames = rng.Value '名前リスト
    arNames = Application.Transpose(arNames)
    m = UBound(arNames)
    For i = 1 To rng.Rows.Count
      If rng.Cells(i, 2).Value <> "" Then
        j = i '最初の人の順番
        Exit For
      End If
    Next i
    If i > rng.Rows.Count Then
      MsgBox "最初の印がありません。", vbCritical
      Exit Sub
    End If
   End With
    '-------------------------------------------
    With ActiveSheet 'アクティブシート
      '書き込み
      Set StartRng = .Range("A6")
      n = j '最初の人の順番の移し替え
      With StartRng
        For i = 1 To 50
          With .Cells(1 + Int((i - 1) / 7) * 3, ((i - 1) Mod 7) + 1)
            If Val(.Offset(-1).Value) > 0 Then
              '日曜日か土曜日含むかの判定
              If .Offset(-1).Font.ColorIndex <= IIf(Doyobiflg, 3, 1) Then
                .Cells(1).Value = arNames(n)
                n = n Mod m + 1
              Else
                .Cells(1).ClearContents
              End If
            End If
          End With
        Next
      End With
    End With
End Sub

そのマクロは、マクロ学校1年生卒業で、難しいことは何もしていません。

ただ、リンク先のツールは、kt関数がないので私の環境では動きません。祝日自体は、政府の来年の発表があるまでは、祝日さえ決まらないのですから、年間のリストを作っておけば良いのです。だから、kt 関数は必要ありません。

>マクロのpassがある為に、アレンジできません。

そういう考え方は改めたほうがよいです。他人のものでも、自分のマクロでも半年経てば別人のマクロで、分かりません。ご自身で作ることをお薦めします。

表だけ...続きを読む

Qhttp://okwave.jp/qa/q5776430.html

http://okwave.jp/qa/q5776430.html
の質問に関連したものです。

添付画像のB列をなくした場合
はどこをいじればよいのでしょうか?

入れ子になりすぎてわけがわからなくなってしまいました。
アドバイス頂けると助かります。
よろしくお願いします。




=IF(COUNT($A$2:$A$1000)<ROW(A1),"",INDEX($A$2:$A$1000,SMALL(IF($A$2:$A$1000<>"",ROW($A$1:$A$999)),ROW(A1))))

F2セルには次の式を入力します。

=IF(E2="","",OFFSET(INDEX(A:A,MATCH(E2,A:A,0)),0,2)&IF(OFFSET(INDEX(A:A,MATCH(E2,A:A,0)),1,1)=2,CHAR(10)&OFFSET(INDEX(A:A,MATCH(E2,A:A,0)),1,2),"")&IF(OFFSET(INDEX(A:A,MATCH(E2,A:A,0)),2,1)=3,CHAR(10)&OFFSET(INDEX(A:A,MATCH(E2,A:A,0)),2,2),"")&IF(OFFSET(INDEX(A:A,MATCH(E2,A:A,0)),3,1)=4,CHAR(10)&OFFSET(INDEX(A:A,MATCH(E2,A:A,0)),3,2),"")&IF(OFFSET(INDEX(A:A,MATCH(E2,A:A,0)),4,1)=5,CHAR(10)&OFFSET(INDEX(A:A,MATCH(E2,A:A,0)),4,2),""))

http://okwave.jp/qa/q5776430.html
の質問に関連したものです。

添付画像のB列をなくした場合
はどこをいじればよいのでしょうか?

入れ子になりすぎてわけがわからなくなってしまいました。
アドバイス頂けると助かります。
よろしくお願いします。




=IF(COUNT($A$2:$A$1000)<ROW(A1),"",INDEX($A$2:$A$1000,SMALL(IF($A$2:$A$1000<>"",ROW($A$1:$A$999)),ROW(A1))))

F2セルには次の式を入力します。

=IF(E2="","",OFFSET(INDEX(A:A,MATCH(E2,A:A,0)),0,2)&IF(OFFSET(INDEX(A:A,MATCH(E2,A:A,0)),1,1)=2...続きを読む

Aベストアンサー

なんだかなあ、作業列を使わないと無駄な計算が多い。
A列昇順に並んでいる
5人まで
D2セル
=IF(COUNT(A:A)<ROW(A1),"",SMALL(A:A,ROW(A1)))
E2セル
=IF(D2="","",CHOOSE(MIN(5,IF(D3="",COUNTA(B:B)+1,MATCH(D3,A:A))-MATCH(D2,A:A)),
LOOKUP(D2,A:B),
LOOKUP(D2,A:B)&CHAR(10)&INDEX(B:B,MATCH(D2,A:A)+1),
LOOKUP(D2,A:B)&CHAR(10)&INDEX(B:B,MATCH(D2,A:A)+1)
 &CHAR(10)&INDEX(B:B,MATCH(D2,A:A)+2),
LOOKUP(D2,A:B)&CHAR(10)&INDEX(B:B,MATCH(D2,A:A)+1)
 &CHAR(10)&INDEX(B:B,MATCH(D2,A:A)+2)
 &CHAR(10)&INDEX(B:B,MATCH(D2,A:A)+3),
LOOKUP(D2,A:B)&CHAR(10)&INDEX(B:B,MATCH(D2,A:A)+1)
 &CHAR(10)&INDEX(B:B,MATCH(D2,A:A)+2)
 &CHAR(10)&INDEX(B:B,MATCH(D2,A:A)+3)
 &CHAR(10)&INDEX(B:B,MATCH(D2,A:A)+4)))
D2:E2セル 下へオートフィル

なんだかなあ、作業列を使わないと無駄な計算が多い。
A列昇順に並んでいる
5人まで
D2セル
=IF(COUNT(A:A)<ROW(A1),"",SMALL(A:A,ROW(A1)))
E2セル
=IF(D2="","",CHOOSE(MIN(5,IF(D3="",COUNTA(B:B)+1,MATCH(D3,A:A))-MATCH(D2,A:A)),
LOOKUP(D2,A:B),
LOOKUP(D2,A:B)&CHAR(10)&INDEX(B:B,MATCH(D2,A:A)+1),
LOOKUP(D2,A:B)&CHAR(10)&INDEX(B:B,MATCH(D2,A:A)+1)
 &CHAR(10)&INDEX(B:B,MATCH(D2,A:A)+2),
LOOKUP(D2,A:B)&CHAR(10)&INDEX(B:B,MATCH(D2,A:A)+1)
 &CHAR(10)&INDEX(B:B,MATCH(D2,A:A)+2)
 &CHAR(1...続きを読む

Qエクセルで、QNo.6227849(http://oshiete.go

エクセルで、QNo.6227849(http://oshiete.goo.ne.jp/qa/6227849.html)の追加での質問です。

tom04様よりご教授いただきました方法で私の希望はかないましたが・・・

Sheet2にさらに営業の検索条件("全員"にした場合は全て)というように
Sheet2の検索条件を増やした場合どのようになりますか?

ご教授よろしくお願いいたします。

tom04様ご覧になられていましたらm(__)m

Aベストアンサー

こんばんは!
「ハクション大魔王」のようにまたまた参上です!

当方のIDが書かれていたために他の方からの回答はなかったみたいですね!

本当は個人的に呼びかけるのではなく、なるべく多くの方の考え方を参考にされた方が良いと思います。
私が紹介した方法がベストではないと思います。
頭が固い(人間も古い)せいか、どうしても発想の転換ができない場合もあります。

色々な方からの案(方法)を試して、その中から自分に一番適している方法を選択することも必要かと思います。

せっかくご指名をいただいたので、本題の方に入ります。

以前の条件にもう一つ「営業」の表を追加すれば良いわけですかね?
一応そういうことだとして、画像をアップしてみます。
(以前の表をもう一度作成してみましたので、Sheet2の左側が画像から切れていますが以前のままです)
営業の場合は「件数」と「契約料」が必要だと思いますので、勝手に画像のような感じにしてみました。
列方向に項目は変更してもちゃんと表示されるはずです。

↓の画像のようにSheet1にもう1列作業列を設けてみました。
作業列3のK2セルに
=IF(AND(COUNTBLANK(Sheet2!$A$2:$B$2),Sheet2!$N$2=""),"",IF(Sheet2!$N$2="全員",IF(AND(A2>=Sheet2!$A$2,A2<=Sheet2!$B$2),ROW(A1),""),IF(AND(A2>=Sheet2!$A$2,A2<=Sheet2!$B$2,D2=Sheet2!$N$2),ROW(A1),"")))
としてオートフィルで下へずぃ~~~!っとコピー

O2セルは
=COUNT(Sheet1!K:K)

P2セルは
=SUM(Q5:Q1000)

そしてN5セルに
=IF(COUNT(Sheet1!$K$2:$K$1000)<ROW(A1),"",INDEX(Sheet1!$A$2:$H$1000,SMALL(Sheet1!$K$2:$K$1000,ROW(A1)),MATCH(N$4,Sheet1!$A$1:$H$1,0)))

という数式を入れ、列方向と行方向にオートフィルでコピーすると
画像のような感じになります。

尚、以前の回答で5行目の数式も訂正してみてください。

A5セルは
=IF(COUNT(Sheet1!$I$2:$I$1000)<ROW(A1),"",INDEX(Sheet1!$A$2:$H$1000,SMALL(Sheet1!$I$2:$I$1000,ROW(A1)),MATCH(A$4,Sheet1!$A$1:$H$1,0)))

I5セルは
=IF(COUNT(Sheet1!$J$2:$J$1000)<ROW(A1),"",INDEX(Sheet1!$A$2:$H$1000,SMALL(Sheet1!$J$2:$J$1000,ROW(A1)),MATCH(I$4,Sheet1!$A$1:$H$1,0)))

としてこれも列方向と行方向にオートフィルでコピーで大丈夫だと思います。
(日付・ポイント・契約料等の表示形式はそれぞれ修正してください。)

以上、こんなんで良かったのですかね?m(__)m

こんばんは!
「ハクション大魔王」のようにまたまた参上です!

当方のIDが書かれていたために他の方からの回答はなかったみたいですね!

本当は個人的に呼びかけるのではなく、なるべく多くの方の考え方を参考にされた方が良いと思います。
私が紹介した方法がベストではないと思います。
頭が固い(人間も古い)せいか、どうしても発想の転換ができない場合もあります。

色々な方からの案(方法)を試して、その中から自分に一番適している方法を選択することも必要かと思います。

せっかくご指名をいただい...続きを読む

Qエクセル マクロ webクエリ URL;http://…/2009/03/03/….html って形にするには?

エクセルのマクロでwebのデータを取り込みたいのですが

2009年3月3日のデータを取る時のアドレスがhttp://…/2009/03/03/….htmlの場合
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http://…/2009/03/03/….html"
となりますが、これをLoopさせて3/2、3/1、2/28、2/27…のデータを取りたいのですが
どういう形でLoopさせればよいのでしょう?
単純にMonthやDayを使うと1~9月や日は一桁になってしまうと思いますけど

Aベストアンサー

Date型の変数を定義して2009/03/03で初期化後-1しながらLoopでは?

Dim dt As Date
Dim url As String
  dt = DateValue("2009/03/03")
    url = "URL;http://…/" & dt & "/….html"
    dt = dt - 1

QExcelを使って読み取った時間(h:m:s)を(h:m:s:1/100)に表示する方法

電気抵抗をマルチメータで読み取ったデータをExcelに落として実験をしていたのですが、、、
時間データが秒までしか表示しなくて困っています。
設定では0.5秒ずつの時間で書き込んでいるはずなのですが、
17時10分50秒
17時10分51秒
17時10分51秒
17時10分51秒
17時10分52秒
17時10分52秒
17時10分53秒
17時10分53秒
17時10分53秒
という間隔で時間が表示されます。
この時間データ(↑)を標準データー(↓)
0.715856481
0.715868056
0.715868056
0.715868056
0.71587963
0.71587963
0.715891204
0.715891204
0.715891204
0.715902778
に変換に変換して、ここからどの様にして、秒の下の位を表示したらよいか検討が付きません。
ご指導の程よろしくお願いします。
長々説明してスミマセン。

Aベストアンサー

こんにちわ。
No.3のe10goです。

No.3で行数が足りないと回答しましたが誤りでした。
下の左の小数点9位までのデータをExcelで取り込むと、右のように小数点秒も表示できます。

0.875196759 = 21:00:17.00
0.875197917 = 21:00:17.10
0.875208333 = 21:00:18.00
0.916876157 = 22:00:18.10
0.958543981 = 23:00:18.20

申し訳ありませんでした。

なお、上の事からも、取り込み前のデータを工夫する必要がありそうです。

お詫びと言っては何ですが、No.4の補足にある質問に回答します。

>エクセルに測定値のデータが10msぐらいの間隔で入ってくるのですが、それをリアルタイム(測定中にグラフにプロットを打つ)様にしたいのですが、それは可能ですか?

エクセルにデータが追加される度に、グラフの系列要素(プロット点等)を自動で増やす方法があります。
日経パソコン2005/10/10号「Excel緊急対策室、自動追尾グラフを作れ」の記事にあった方法で、名前定義と関数を活用します。
内容をそのまま載せると、著作権の問題があるので、カスタマイズして記載します。

まず、シート「Sheet1」に下の例のデータがあり、A2~B5のデータでグラフができているものとします。

(行),「A列」,「B列」
(1),「時間」,「データ」
(2),「21:00:17.00」,「100」
(3),「21:00:17.10」,「102」
(4),「21:00:17.20」,「104」
(5),「21:00:17.30」,「106」

以下に、方法を説明します。
1.
A2を選択し、名前ボックスに「timetop」と入れて、「Enter」
または、A2を選択し、「挿入」メニュー →「名前」→「定義」→
「名前」欄に「timetop」と記入 →「OK」
2.
B2を選択し、名前ボックスに「datatop」と入れて、「Enter」
または、B2を選択し、「挿入」メニュー →「名前」→「定義」→
「名前」欄に「datatop」と記入 →「OK」
3.
「挿入」メニュー →「名前」→「定義」→「名前」欄に「timerange」と記入 →
「参照範囲」欄に「=OFFSET(timetop,0,0,COUNT(Sheet1!B:B))」と記入 →「追加」→
4.
「名前」欄に「datarange」と記入 →「参照範囲」欄に「=OFFSET(datatop,0,0,COUNT(Sheet1!B:B))」と記入 → 
「追加」→「OK」
5.
グラフを選択して、グラフウィザードボタンをクリック
6.
「次へ」ボタン →「グラフの元データ」の「系列」タブの「値」欄に「Sheet1!datarange」と記入 →
「項目軸ラベルに使用」欄に「Sheet1!timerange」と記入 →「完了」

これで、7行以下にデータが増えるとグラフも追加されるようになります。

こんにちわ。
No.3のe10goです。

No.3で行数が足りないと回答しましたが誤りでした。
下の左の小数点9位までのデータをExcelで取り込むと、右のように小数点秒も表示できます。

0.875196759 = 21:00:17.00
0.875197917 = 21:00:17.10
0.875208333 = 21:00:18.00
0.916876157 = 22:00:18.10
0.958543981 = 23:00:18.20

申し訳ありませんでした。

なお、上の事からも、取り込み前のデータを工夫する必要がありそうです。

お詫びと言っては何ですが、No.4の補足にある質問に回答しま...続きを読む


このカテゴリの人気Q&Aランキング

おすすめ情報