Как консолидировать данные по доменам в Excel? - PullRequest
0 голосов
/ 15 сентября 2010

У меня есть таблица, которая выглядит примерно так:

Referrer --- Clicks --- Conversions
http://google.com/search?q=hello+world ---- 12 ---- 3
http://george.com ---- 4 ---- 1
http://google.com/search?q=yeah ----- 3 ---- 3
http://george.com/2010/3/this-blog ----- 4 ---- 0
http://www.wave-runner.com/hey ---- 3 ---- 0

Как я могу написать макрос, который объединит его так:

http://google.com/ ---- 15 ---- 6
http://george.com ---- 8 ---- 1
http://www.wave-runner.com/hey ---- 3 ---- 0

Ответы [ 2 ]

3 голосов
/ 16 сентября 2010

Я не знаю, что это за тире, но я предполагаю, что это разрывы столбцов. Сделайте еще один столбец и назовите его Домен. Поместите эту формулу в это.

=IF(ISERR(FIND("/",A2,FIND("//",A2)+2)),MID(A2,FIND("//",A2)+2,LEN(A2)),MID(A2,FIND("//",A2)+2,FIND("/",A2,FIND("//",A2)+2)-FIND("//",A2)-2))

Затем выполните сводную таблицу с доменом в поле строки и кликами и преобразованиями в поле данных. Если эти черты действительно являются черточками, вы можете выполнить Data-Text to Columns, чтобы разбить их на столбцы.

0 голосов
/ 16 сентября 2010

Возможно:

Dim cn As Object
Dim rs As Object
Dim strFile As String
Dim strCon As String
Dim strSQL As String
Dim s As String
Dim i As Integer, j As Integer

    ''This is not the best way to refer to the workbook
    ''you want, but it is very convenient for notes
    ''It is probably best to use the name of the workbook.

    strFile = ActiveWorkbook.FullName

    ''Note that if HDR=No, F1,F2 etc are used for column names,
    ''if HDR=Yes, the names in the first row of the range
    ''can be used.
    ''This is the Jet 4 connection string, you can get more
    ''here : http://www.connectionstrings.com/excel

    strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strFile _
        & ";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"";"

    ''Late binding, so no reference is needed

    Set cn = CreateObject("ADODB.Connection")
    Set rs = CreateObject("ADODB.Recordset")


    cn.Open strCon

    strSQL = "SELECT Mid(Referrer & '/',1,Instr(8,Referrer & '/','/')), " _
           & "Sum([Clicks]) As SumClks, Sum([Conversions]) As SumConv " _
           & "FROM [Sheet2$] a " _
           & "GROUP BY Mid(Referrer & '/',1,Instr(8,Referrer & '/','/')) "

    rs.Open strSQL, cn, 3, 3

    Worksheets("Sheet3").Cells(2, 1).CopyFromRecordset rs
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...