Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Office (Word, Excel, Outlook и т.д.) (http://forum.oszone.net/forumdisplay.php?f=115)
-   -   [решено] Как в экселе подсчитать фразы (http://forum.oszone.net/showthread.php?t=285797)

nastushka 30-07-2014 19:18 2383313

Как в экселе подсчитать фразы
 
Вложений: 1
  • а.xlsx (30.60 KB, скачиваний: 20)
Будьте любезны, подскажите, как в эксель файле подсчитать фразы. У меня файл, там в разных столбцах , а их много, могут повторяться фразы. Сортировать их это убийство будет. Нет ли формулы, которая просто во всех столбцах посчитает слова.
Буду ждать вашего ответа;)))

Iska 30-07-2014 19:35 2383318

Опишите более подробно, что Вам требуется.

okshef 30-07-2014 19:37 2383320

nastushka, поясните, пожалуйста, что в вашем понимании "подсчитать фразы"? А лучше опишите подробно задачу, которую пытаетесь решить

nastushka 30-07-2014 20:55 2383351

Ну, смотрите откройте файл. В ячейке А3 есть фраза продвинуть сайт. это же фраза есть в ячейке D4. Т.е. она уже встречается как минимум 2 раза! Так вот задача найти все одинаковые фразы в данном документе и подсчитать их.

okshef 30-07-2014 21:49 2383362

А относительно чего ведется подсчет? Нужно подсчитать сколько раз некая фраза из столбца А встречается в остальных 180-и?

nastushka 30-07-2014 22:10 2383367

okshef, нет. подсчет ведется относительно всех столбцов. Потому что в некоторых столбцах есть слова, которых нет в столбце а. Если бы содержимое всех столбцов можно было бы объединить в один не копируя и вставляя вручную, то можно было бы легко провести частотный анализ он бы показал какая фраза или слово сколько раз встретилось. Поэтому и спросила как мне подсчитать повторяющееся слова.

okshef 30-07-2014 22:24 2383373

nastushka, если не вручную, то макросом можно. Раскройте еще 2 секрета: 1) почему каждый 3*N столбец пустой и сохраняется ли это во всем диапазоне столбцов; 2) что обозначают цифры в столбцах 2+3*N

nastushka 30-07-2014 22:35 2383377

okshef, мы девочки народ не умеющий макросы писать:)) Столбцы с цифрами и пустые столбцы их вообще можно убрать.Я сама не поняла зачем они в исходных данных, поэтому чисткой данных и занимаюсь. И такая пропорция сохраняется сначала столбец с фразами, потом 2 ненужных столбца: с цифрой и пустой.

okshef 31-07-2014 00:06 2383416

Вложений: 1
  • а1.xlsx (49.10 KB, скачиваний: 22)
nastushka, еще вопрос: фраза в первой строке каждого столбца учитывается?

Вот результат обработки без учета фраз в первой строчке

nastushka 31-07-2014 13:18 2383616

okshef, нет фраза не учитывается. Научите меня, как вы так классно сделали?

okshef 31-07-2014 20:58 2383806

nastushka, я вам говорил про макросы. Если не знакомы - почитайте и посмотрите Создание макросов и пользовательских функций на VBA
и
Как вставить готовый макрос в рабочую книгу?

А конкретно для вашей книги я использовал такой:
читать дальше »
Код:

Sub merge_col()
'  добавляем новый лист
    Sheets.Add After:=Sheets(Sheets.Count)
'  присваиваем имя
    Worksheets(Sheets.Count).Name = "Итоги"
'  в первую ячейку записываем название будущего столбца
    Worksheets(2).[a1] = "Вид"
'  переменная строки новой таблицы
        k = 2
Worksheets(1).Activate
'  цикл с первого до крайнего столбца с данными с шагом 3
            For i = 1 To 556 Step 3
'  поиск строки крайней ячейки с данными
                j = Cells(1, i).End(xlDown).Row
'  если данные в столбце есть,
                    If j < 1000 Then
'  копируем их на второй лист в первую пустую ячейку первого столбца
                        Range(Cells(2, i), Cells(j, i)). _
                        Copy (Worksheets(2).Cells(k, 1))
'  это номер строки новой пустой ячейки второго листа
                        k = k + j - 1
                    Else
'  если данных в столбце нет,
                    End If
'  переходим к следующему столбцу
            Next
'  строим сводную таблицу
    With Worksheets(2)
'  переход на второй лист
        .Activate
'  определяем источник для сводной таблицы
        Set srs = .Range("A1:A" & k)
'  вставка сводной
        ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
            srs, Version:=xlPivotTableVersion14).CreatePivotTable _
            TableDestination:=.[e1], TableName:="СводнаяТаблица1", _
            DefaultVersion:=xlPivotTableVersion14
        .[e1].Select
'  вставка поля сводной для подсчета количества элементов
        .PivotTables("СводнаяТаблица1").AddDataField .PivotTables _
            ("СводнаяТаблица1").PivotFields("Вид"), "Количество", xlCount
        ActiveWorkbook.ShowPivotTableFieldList = False
'  вставка поля сводной для элементов
        .PivotTables("СводнаяТаблица1").PivotFields("Вид").Orientation = xlRowField
    End With
End Sub


Учтите, если захотите повторить работу макроса в той же книге, нужно сначала удалить лист "Итоги"

nastushka 02-08-2014 00:40 2384315

okshef, Спасибо Вам за очень подробное разъяснение

nastushka 03-08-2014 14:21 2384706

А можно ещё спросить. В другом анализе, который мне нужно сделать. Нашла готовый макрос, но он не работает с большим массивом. там было под 180, а тут под 400
http://rusfolder.com/41362820
Мне сказали, что эту часть кода надо корректировать
PHP код:

For iCl1 1 To Cells(1Columns.Count).End(xlToLeft).Column 3 Step 3  
        iCl2 
iCl1 

но надо добавить на 2 листа.
Я цифры меняла,но выходила ошибка диапазона.

okshef 03-08-2014 21:43 2384861

nastushka, файл я видел, скажите, какую задачу нужно решить? Честно, в чужом коде разбираться как-то не хочется, тем более с ошибками, а первая ошибка, которая происходит, вызвана отсутствием второго листа.
Цитата:

Цитата nastushka
но надо добавить на 2 листа. »

какие, зачем?

nastushka 03-08-2014 23:29 2384879

okshef, во-во надо добавить второй лист, но не знаю как.

Вообще была задача такая. высчитать дельту
например в моем первом файле есть столбец Y продвижение сайта в поисковых системах и есть столбец V seo продвижение. от фразы продвижение сайта в поисковых системах до фразы seo продвижение 5 шагов, а от фразы seo продвижение до фразы продвижение сайта в поисковых системах 8
надо высчитать было разницу по модулю 8-5=3.
потом создать симметричную матрицу, куда эти цифры заполняются. вот этот файл с макросом
http://rghost.ru/57253940
он работает на этих 180 столбцах, а на новом файле нет и мне как раз сказали, что надо добавить второй лист, но я не знаю как.


Время: 20:51.

Время: 20:51.
© OSzone.net 2001-