Показать полную графическую версию : [решено] Как в экселе подсчитать фразы
nastushka
30-07-2014, 19:18
Будьте любезны, подскажите, как в эксель файле подсчитать фразы. У меня файл, там в разных столбцах , а их много, могут повторяться фразы. Сортировать их это убийство будет. Нет ли формулы, которая просто во всех столбцах посчитает слова.
Буду ждать вашего ответа;)))
Опишите более подробно, что Вам требуется.
nastushka, поясните, пожалуйста, что в вашем понимании "подсчитать фразы"? А лучше опишите подробно задачу, которую пытаетесь решить
nastushka
30-07-2014, 20:55
Ну, смотрите откройте файл. В ячейке А3 есть фраза продвинуть сайт. это же фраза есть в ячейке D4. Т.е. она уже встречается как минимум 2 раза! Так вот задача найти все одинаковые фразы в данном документе и подсчитать их.
А относительно чего ведется подсчет? Нужно подсчитать сколько раз некая фраза из столбца А встречается в остальных 180-и?
nastushka
30-07-2014, 22:10
okshef, нет. подсчет ведется относительно всех столбцов. Потому что в некоторых столбцах есть слова, которых нет в столбце а. Если бы содержимое всех столбцов можно было бы объединить в один не копируя и вставляя вручную, то можно было бы легко провести частотный анализ он бы показал какая фраза или слово сколько раз встретилось. Поэтому и спросила как мне подсчитать повторяющееся слова.
nastushka, если не вручную, то макросом можно. Раскройте еще 2 секрета: 1) почему каждый 3*N столбец пустой и сохраняется ли это во всем диапазоне столбцов; 2) что обозначают цифры в столбцах 2+3*N
nastushka
30-07-2014, 22:35
okshef, мы девочки народ не умеющий макросы писать:)) Столбцы с цифрами и пустые столбцы их вообще можно убрать.Я сама не поняла зачем они в исходных данных, поэтому чисткой данных и занимаюсь. И такая пропорция сохраняется сначала столбец с фразами, потом 2 ненужных столбца: с цифрой и пустой.
nastushka, еще вопрос: фраза в первой строке каждого столбца учитывается?
Вот результат обработки без учета фраз в первой строчке
nastushka
31-07-2014, 13:18
okshef, нет фраза не учитывается. Научите меня, как вы так классно сделали?
nastushka, я вам говорил про макросы. Если не знакомы - почитайте и посмотрите Создание макросов и пользовательских функций на VBA (http://www.planetaexcel.ru/techniques/3/59/)
и
Как вставить готовый макрос в рабочую книгу? (http://www.e-xcel.ru/index.php/zaklinaniya/makrosy/124-kak-vstavit-gotovyj-makros-v-rabochuyu-knigu)
А конкретно для вашей книги я использовал такой:
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
okshef, Спасибо Вам за очень подробное разъяснение
nastushka
03-08-2014, 14:21
А можно ещё спросить. В другом анализе, который мне нужно сделать. Нашла готовый макрос, но он не работает с большим массивом. там было под 180, а тут под 400
http://rusfolder.com/41362820
Мне сказали, что эту часть кода надо корректировать
For iCl1 = 1 To Cells(1, Columns.Count).End(xlToLeft).Column - 3 Step 3
iCl2 = iCl1 + 3
но надо добавить на 2 листа.
Я цифры меняла,но выходила ошибка диапазона.
nastushka, файл я видел, скажите, какую задачу нужно решить? Честно, в чужом коде разбираться как-то не хочется, тем более с ошибками, а первая ошибка, которая происходит, вызвана отсутствием второго листа.
но надо добавить на 2 листа. »
какие, зачем?
nastushka
03-08-2014, 23:29
okshef, во-во надо добавить второй лист, но не знаю как.
Вообще была задача такая. высчитать дельту
например в моем первом файле есть столбец Y продвижение сайта в поисковых системах и есть столбец V seo продвижение. от фразы продвижение сайта в поисковых системах до фразы seo продвижение 5 шагов, а от фразы seo продвижение до фразы продвижение сайта в поисковых системах 8
надо высчитать было разницу по модулю 8-5=3.
потом создать симметричную матрицу, куда эти цифры заполняются. вот этот файл с макросом
http://rghost.ru/57253940
он работает на этих 180 столбцах, а на новом файле нет и мне как раз сказали, что надо добавить второй лист, но я не знаю как.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC