Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Сосчитать слова, написать сколько их, по убыванию - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Сосчитать слова, написать сколько их, по убыванию (Формулы/Formulas)
Сосчитать слова, написать сколько их, по убыванию
stalber Дата: Пятница, 03.08.2018, 12:49 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 369
Репутация: 7 ±
Замечаний: 40% ±

Excel 2007
Добрый день. Будьте любезны:

Необходимо сосчитать слова и рядом написать сколько их из всей выделенной области (C2-V40), по убыванию вывести.

Пример прикрепил.
К сообщению приложен файл: vvopros.xlsx (12.8 Kb)
 
Ответить
СообщениеДобрый день. Будьте любезны:

Необходимо сосчитать слова и рядом написать сколько их из всей выделенной области (C2-V40), по убыванию вывести.

Пример прикрепил.

Автор - stalber
Дата добавления - 03.08.2018 в 12:49
sboy Дата: Пятница, 03.08.2018, 13:54 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация: 724 ±
Замечаний: 0% ±

Excel 2010
Добрый день.
[vba]
Код
Sub slova()
Application.ScreenUpdating = False
arr = Range("c2:v40").Value
    With CreateObject("Scripting.Dictionary")
        For i = 1 To UBound(arr, 1)
            For j = 1 To UBound(arr, 2)
                If Not IsEmpty(arr(i, j)) Then .Item(arr(i, j)) = .Item(arr(i, j)) + 1
            Next
        Next
        c = .Count
        Cells(2, 23).Resize(.Count, 1).Value = Application.Transpose(.keys)
        Cells(2, 24).Resize(.Count, 1).Value = Application.Transpose(.items)
    End With
    With ActiveSheet.Sort
        .SortFields.Clear
        .SortFields.Add Key:=Range("X2:X" & c + 1), _
            SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
        .SetRange Range("W1:X" & c + 1)
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
Application.ScreenUpdating = True
End Sub
[/vba]
К сообщению приложен файл: vvopros.xlsm (22.6 Kb)


Яндекс: 410016850021169

Сообщение отредактировал sboy - Пятница, 03.08.2018, 13:54
 
Ответить
СообщениеДобрый день.
[vba]
Код
Sub slova()
Application.ScreenUpdating = False
arr = Range("c2:v40").Value
    With CreateObject("Scripting.Dictionary")
        For i = 1 To UBound(arr, 1)
            For j = 1 To UBound(arr, 2)
                If Not IsEmpty(arr(i, j)) Then .Item(arr(i, j)) = .Item(arr(i, j)) + 1
            Next
        Next
        c = .Count
        Cells(2, 23).Resize(.Count, 1).Value = Application.Transpose(.keys)
        Cells(2, 24).Resize(.Count, 1).Value = Application.Transpose(.items)
    End With
    With ActiveSheet.Sort
        .SortFields.Clear
        .SortFields.Add Key:=Range("X2:X" & c + 1), _
            SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
        .SetRange Range("W1:X" & c + 1)
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
Application.ScreenUpdating = True
End Sub
[/vba]

Автор - sboy
Дата добавления - 03.08.2018 в 13:54
stalber Дата: Пятница, 03.08.2018, 15:27 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 369
Репутация: 7 ±
Замечаний: 40% ±

Excel 2007
Спасибо!

А не макросом, а формулой можно осуществить?


Сообщение отредактировал awaddwaawddw - Пятница, 03.08.2018, 15:27
 
Ответить
СообщениеСпасибо!

А не макросом, а формулой можно осуществить?

Автор - stalber
Дата добавления - 03.08.2018 в 15:27
Pelena Дата: Пятница, 03.08.2018, 19:51 | Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 19162
Репутация: 4412 ±
Замечаний: ±

Excel 365 & Mac Excel
формулой можно осуществить?

Посмотрите похожую тему
и ещё более похожая


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщение
формулой можно осуществить?

Посмотрите похожую тему
и ещё более похожая

Автор - Pelena
Дата добавления - 03.08.2018 в 19:51
Nic70y Дата: Пятница, 03.08.2018, 19:59 | Сообщение № 5
Группа: Друзья
Ранг: Экселист
Сообщений: 8705
Репутация: 2260 ±
Замечаний: 0% ±

Excel 2010
извиняюсь, накосячил - невнимательно прочел
будет время напишу формулы (наверное, а может и нет)


ЮMoney 41001841029809

Сообщение отредактировал Nic70y - Пятница, 03.08.2018, 20:50
 
Ответить
Сообщениеизвиняюсь, накосячил - невнимательно прочел
будет время напишу формулы (наверное, а может и нет)

Автор - Nic70y
Дата добавления - 03.08.2018 в 19:59
Светлый Дата: Пятница, 03.08.2018, 23:16 | Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 1823
Репутация: 507 ±
Замечаний: 0% ±

Excel 2013, 2016
Массивная:
Код
=ИНДЕКС(A:V;МИН(ЕСЛИ((C$2:V$40>"")*(СЧЁТЕСЛИ(W$1:W1;C$2:V$40)=0);СТРОКА($2:$40)));ОСТАТ(МИН(ЕСЛИ((C$2:V$40>"")*(СЧЁТЕСЛИ(W$1:W1;C$2:V$40)=0);СТРОКА($2:$40)+СТОЛБЕЦ(C:V)%));1)/1%)&""

Код
=ЕСЛИ(W2="";"";СЧЁТЕСЛИ(C$2:V$40;W2))


Программировать проще, чем писать стихи.
 
Ответить
СообщениеМассивная:
Код
=ИНДЕКС(A:V;МИН(ЕСЛИ((C$2:V$40>"")*(СЧЁТЕСЛИ(W$1:W1;C$2:V$40)=0);СТРОКА($2:$40)));ОСТАТ(МИН(ЕСЛИ((C$2:V$40>"")*(СЧЁТЕСЛИ(W$1:W1;C$2:V$40)=0);СТРОКА($2:$40)+СТОЛБЕЦ(C:V)%));1)/1%)&""

Код
=ЕСЛИ(W2="";"";СЧЁТЕСЛИ(C$2:V$40;W2))

Автор - Светлый
Дата добавления - 03.08.2018 в 23:16
gling Дата: Пятница, 03.08.2018, 23:22 | Сообщение № 7
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2519
Репутация: 674 ±
Замечаний: 0% ±

2010
Здравствуйте.
Необходимо сосчитать слова и рядом написать сколько их из всей выделенной области (C2-V40), по убыванию вывести.
А рядом это где? А Вы могли бы показать в примере, так есть, а так надо, чтобы понять против какого значения писать количество из каких столбцов нужно выбрать. Пример строка 4, два, один, три в какой ячейке должен быть результат и по какому значению?
Возможно нужно вывести список индивидуальных слов и посчитать сколько каждого. Но где вывести этот список, на другом листе?


ЯД-41001506838083

Сообщение отредактировал gling - Пятница, 03.08.2018, 23:29
 
Ответить
СообщениеЗдравствуйте.
Необходимо сосчитать слова и рядом написать сколько их из всей выделенной области (C2-V40), по убыванию вывести.
А рядом это где? А Вы могли бы показать в примере, так есть, а так надо, чтобы понять против какого значения писать количество из каких столбцов нужно выбрать. Пример строка 4, два, один, три в какой ячейке должен быть результат и по какому значению?
Возможно нужно вывести список индивидуальных слов и посчитать сколько каждого. Но где вывести этот список, на другом листе?

Автор - gling
Дата добавления - 03.08.2018 в 23:22
stalber Дата: Суббота, 04.08.2018, 00:33 | Сообщение № 8
Группа: Проверенные
Ранг: Обитатель
Сообщений: 369
Репутация: 7 ±
Замечаний: 40% ±

Excel 2007
Спасибо всем.

Qlinq, справа пример написан

Светлый, то что нужно, единственное, по убыванию чтобы были, я прикрепил файл, я не правильно что то вписал? или ваша формула не по убыванию просто. Хотелось узнать, что означает в формуле ячейка W1 ?
К сообщению приложен файл: 2984155.xlsx (13.7 Kb)


Сообщение отредактировал awaddwaawddw - Суббота, 04.08.2018, 00:36
 
Ответить
СообщениеСпасибо всем.

Qlinq, справа пример написан

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

Автор - stalber
Дата добавления - 04.08.2018 в 00:33
gling Дата: Суббота, 04.08.2018, 00:52 | Сообщение № 9
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2519
Репутация: 674 ±
Замечаний: 0% ±

2010
справа пример написан
Понятно, масштаб 100%, что творится в столбце W на экране не видно, а уменьшить масштаб не догадался.
W$1:W1=диапазон который увеличивается при протягивании формулы вниз. Если протянуть на 10 строк вниз диапазон изменится на такой W$1:W10.


ЯД-41001506838083
 
Ответить
Сообщение
справа пример написан
Понятно, масштаб 100%, что творится в столбце W на экране не видно, а уменьшить масштаб не догадался.
W$1:W1=диапазон который увеличивается при протягивании формулы вниз. Если протянуть на 10 строк вниз диапазон изменится на такой W$1:W10.

Автор - gling
Дата добавления - 04.08.2018 в 00:52
krosav4ig Дата: Суббота, 04.08.2018, 01:05 | Сообщение № 10
Группа: Друзья
Ранг: Старожил
Сообщений: 2346
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
как я понял, нужно сортировать в порядке убывания количества повторений
у мну так получилось
Код
=НАИБОЛЬШИЙ(СЧЁТЕСЛИ(C$2:V$40;C$2:V$40);СУММ($X$1:X1;1))
Код
=ИНДЕКС(A:V;МАКС((СЧЁТЕСЛИ(C$2:V$40;C$2:V$40)=X2)*(СЧЁТЕСЛИ($W$1:W1;C$2:V$40)=0)*СТРОКА(C$2:C$40));ОСТАТ(МАКС((СЧЁТЕСЛИ(C$2:V$40;C$2:V$40)=X2)*(СЧЁТЕСЛИ($W$1:W1;C$2:V$40)=0)*(СТРОКА(C$2:C$40)+СТОЛБЕЦ(C$2:V$2)%%));1)/1%%)
К сообщению приложен файл: 1561063.xlsx (13.7 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Суббота, 04.08.2018, 18:22
 
Ответить
Сообщениекак я понял, нужно сортировать в порядке убывания количества повторений
у мну так получилось
Код
=НАИБОЛЬШИЙ(СЧЁТЕСЛИ(C$2:V$40;C$2:V$40);СУММ($X$1:X1;1))
Код
=ИНДЕКС(A:V;МАКС((СЧЁТЕСЛИ(C$2:V$40;C$2:V$40)=X2)*(СЧЁТЕСЛИ($W$1:W1;C$2:V$40)=0)*СТРОКА(C$2:C$40));ОСТАТ(МАКС((СЧЁТЕСЛИ(C$2:V$40;C$2:V$40)=X2)*(СЧЁТЕСЛИ($W$1:W1;C$2:V$40)=0)*(СТРОКА(C$2:C$40)+СТОЛБЕЦ(C$2:V$2)%%));1)/1%%)

Автор - krosav4ig
Дата добавления - 04.08.2018 в 01:05
Светлый Дата: Суббота, 04.08.2018, 09:27 | Сообщение № 11
Группа: Друзья
Ранг: Старожил
Сообщений: 1823
Репутация: 507 ±
Замечаний: 0% ±

Excel 2013, 2016
Не оптимизируя:
Код
=ИНДЕКС(A:V;ОСТАТ(МАКС(ЕСЛИ((C$2:V$40>"")*(СЧЁТЕСЛИ(W$1:W1;C$2:V$40)=0);СЧЁТЕСЛИ(C$2:V$40;C$2:V$40)*100+СТРОКА($2:$40)));100);ОСТАТ(МАКС(ЕСЛИ((C$2:V$40>"")*(СЧЁТЕСЛИ(W$1:W1;C$2:V$40)=0);СЧЁТЕСЛИ(C$2:V$40;C$2:V$40)*100+СТРОКА($2:$40)+СТОЛБЕЦ(C:V)%));1)/1%)&""

Медлительная.


Программировать проще, чем писать стихи.
 
Ответить
СообщениеНе оптимизируя:
Код
=ИНДЕКС(A:V;ОСТАТ(МАКС(ЕСЛИ((C$2:V$40>"")*(СЧЁТЕСЛИ(W$1:W1;C$2:V$40)=0);СЧЁТЕСЛИ(C$2:V$40;C$2:V$40)*100+СТРОКА($2:$40)));100);ОСТАТ(МАКС(ЕСЛИ((C$2:V$40>"")*(СЧЁТЕСЛИ(W$1:W1;C$2:V$40)=0);СЧЁТЕСЛИ(C$2:V$40;C$2:V$40)*100+СТРОКА($2:$40)+СТОЛБЕЦ(C:V)%));1)/1%)&""

Медлительная.

Автор - Светлый
Дата добавления - 04.08.2018 в 09:27
Светлый Дата: Суббота, 04.08.2018, 09:51 | Сообщение № 12
Группа: Друзья
Ранг: Старожил
Сообщений: 1823
Репутация: 507 ±
Замечаний: 0% ±

Excel 2013, 2016
Немного сократил:
Код
Немного упростил:
[code]=ИНДЕКС(A:V;ОСТАТ(МАКС(ЕСЛИ((СЧЁТЕСЛИ(W$1:W1;C$2:V$40)=0);СЧЁТЕСЛИ(C$2:V$40;C$2:V$40)*100+СТРОКА($2:$40)));100);ОСТАТ(МАКС(ЕСЛИ((СЧЁТЕСЛИ(W$1:W1;C$2:V$40)=0);СЧЁТЕСЛИ(C$2:V$40;C$2:V$40)*100+СТРОКА($2:$40)+СТОЛБЕЦ(C:V)%));1)/1%)&""

Код
=ИНДЕКС(A:V;ОСТАТ(МАКС((СЧЁТЕСЛИ(W$1:W1;C$2:V$40)=0)*(СЧЁТЕСЛИ(C$2:V$40;C$2:V$40)*100+СТРОКА($2:$40)));100);ОСТАТ(МАКС((СЧЁТЕСЛИ(W$1:W1;C$2:V$40)=0)*(СЧЁТЕСЛИ(C$2:V$40;C$2:V$40)*100+СТРОКА($2:$40)+СТОЛБЕЦ(C:V)%));1)/1%)&""

Код
=ИНДЕКС(A:V;ОСТАТ(МАКС((СЧЁТЕСЛИ(W$1:W1;C$2:V$40)=0)*(СЧЁТЕСЛИ(C$2:V$40;C$2:V$40)+СТРОКА($2:$40)%));1)/1%;ОСТАТ(МАКС((СЧЁТЕСЛИ(W$1:W1;C$2:V$40)=0)*(СЧЁТЕСЛИ(C$2:V$40;C$2:V$40)*100+СТРОКА($2:$40)+СТОЛБЕЦ(C:V)%));1)/1%)&""


Программировать проще, чем писать стихи.

Сообщение отредактировал Светлый - Суббота, 04.08.2018, 10:44
 
Ответить
СообщениеНемного сократил:
Код
Немного упростил:
[code]=ИНДЕКС(A:V;ОСТАТ(МАКС(ЕСЛИ((СЧЁТЕСЛИ(W$1:W1;C$2:V$40)=0);СЧЁТЕСЛИ(C$2:V$40;C$2:V$40)*100+СТРОКА($2:$40)));100);ОСТАТ(МАКС(ЕСЛИ((СЧЁТЕСЛИ(W$1:W1;C$2:V$40)=0);СЧЁТЕСЛИ(C$2:V$40;C$2:V$40)*100+СТРОКА($2:$40)+СТОЛБЕЦ(C:V)%));1)/1%)&""

Код
=ИНДЕКС(A:V;ОСТАТ(МАКС((СЧЁТЕСЛИ(W$1:W1;C$2:V$40)=0)*(СЧЁТЕСЛИ(C$2:V$40;C$2:V$40)*100+СТРОКА($2:$40)));100);ОСТАТ(МАКС((СЧЁТЕСЛИ(W$1:W1;C$2:V$40)=0)*(СЧЁТЕСЛИ(C$2:V$40;C$2:V$40)*100+СТРОКА($2:$40)+СТОЛБЕЦ(C:V)%));1)/1%)&""

Код
=ИНДЕКС(A:V;ОСТАТ(МАКС((СЧЁТЕСЛИ(W$1:W1;C$2:V$40)=0)*(СЧЁТЕСЛИ(C$2:V$40;C$2:V$40)+СТРОКА($2:$40)%));1)/1%;ОСТАТ(МАКС((СЧЁТЕСЛИ(W$1:W1;C$2:V$40)=0)*(СЧЁТЕСЛИ(C$2:V$40;C$2:V$40)*100+СТРОКА($2:$40)+СТОЛБЕЦ(C:V)%));1)/1%)&""

Автор - Светлый
Дата добавления - 04.08.2018 в 09:51
Светлый Дата: Суббота, 04.08.2018, 10:56 | Сообщение № 13
Группа: Друзья
Ранг: Старожил
Сообщений: 1823
Репутация: 507 ±
Замечаний: 0% ±

Excel 2013, 2016
krosav4ig, формула не работает, если слова в столбцах J и T


Программировать проще, чем писать стихи.
 
Ответить
Сообщениеkrosav4ig, формула не работает, если слова в столбцах J и T

Автор - Светлый
Дата добавления - 04.08.2018 в 10:56
krosav4ig Дата: Суббота, 04.08.2018, 18:23 | Сообщение № 14
Группа: Друзья
Ранг: Старожил
Сообщений: 2346
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Цитата Светлый, 04.08.2018 в 10:56, в сообщении № 13 ()
формула не работает, если слова в столбцах J и T
упс, мой косяк %)
Исправил в своем посте


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщение
Цитата Светлый, 04.08.2018 в 10:56, в сообщении № 13 ()
формула не работает, если слова в столбцах J и T
упс, мой косяк %)
Исправил в своем посте

Автор - krosav4ig
Дата добавления - 04.08.2018 в 18:23
stalber Дата: Воскресенье, 12.08.2018, 00:23 | Сообщение № 15
Группа: Проверенные
Ранг: Обитатель
Сообщений: 369
Репутация: 7 ±
Замечаний: 40% ±

Excel 2007
Использую данную формулу:

[vba]
Код
=ИНДЕКС(A:V;ОСТАТ(МАКС((СЧЁТЕСЛИ(W$1:W1;C$2:V$40)=0)*(СЧЁТЕСЛИ(C$2:V$40;C$2:V$40)+СТРОКА($2:$40)%));1)/1%;ОСТАТ(МАКС((СЧЁТЕСЛИ(W$1:W1;C$2:V$40)=0)*(СЧЁТЕСЛИ(C$2:V$40;C$2:V$40)*100+СТРОКА($2:$40)+СТОЛБЕЦ(C:V)%));1)/1%)&""
[/vba]

[vba]
Код
=ЕСЛИ(W2="";"";СЧЁТЕСЛИ(C$2:V$40;W2))
[/vba]

Помогите пожалуйста, необходимо немного доработать, в связи с дополнительным появившемся условием.
В примере изначально в этой области C2:V40 был только текст, сейчас появились и числа, необходимо чтобы только текст подсчитывался, а если попадаются числа в ячейках то они должны игнорироваться, и формула не должна их выводить.
 
Ответить
СообщениеИспользую данную формулу:

[vba]
Код
=ИНДЕКС(A:V;ОСТАТ(МАКС((СЧЁТЕСЛИ(W$1:W1;C$2:V$40)=0)*(СЧЁТЕСЛИ(C$2:V$40;C$2:V$40)+СТРОКА($2:$40)%));1)/1%;ОСТАТ(МАКС((СЧЁТЕСЛИ(W$1:W1;C$2:V$40)=0)*(СЧЁТЕСЛИ(C$2:V$40;C$2:V$40)*100+СТРОКА($2:$40)+СТОЛБЕЦ(C:V)%));1)/1%)&""
[/vba]

[vba]
Код
=ЕСЛИ(W2="";"";СЧЁТЕСЛИ(C$2:V$40;W2))
[/vba]

Помогите пожалуйста, необходимо немного доработать, в связи с дополнительным появившемся условием.
В примере изначально в этой области C2:V40 был только текст, сейчас появились и числа, необходимо чтобы только текст подсчитывался, а если попадаются числа в ячейках то они должны игнорироваться, и формула не должна их выводить.

Автор - stalber
Дата добавления - 12.08.2018 в 00:23
Светлый Дата: Воскресенье, 12.08.2018, 09:51 | Сообщение № 16
Группа: Друзья
Ранг: Старожил
Сообщений: 1823
Репутация: 507 ±
Замечаний: 0% ±

Excel 2013, 2016
Код
=ИНДЕКС(A:V;ОСТАТ(МАКС(ЕСЛИ(C$2:V$40>"";СЧЁТЕСЛИ(W$1:W1;C$2:V$40)=0)*(СЧЁТЕСЛИ(C$2:V$40;C$2:V$40)+СТРОКА($2:$40)%));1)/1%;ОСТАТ(МАКС(ЕСЛИ(C$2:V$40>"";СЧЁТЕСЛИ(W$1:W1;C$2:V$40)=0)*(СЧЁТЕСЛИ(C$2:V$40;C$2:V$40)*99+СТРОКА($2:$40)+СТОЛБЕЦ(C:V)%));1)/1%)&""


Программировать проще, чем писать стихи.
 
Ответить
Сообщение
Код
=ИНДЕКС(A:V;ОСТАТ(МАКС(ЕСЛИ(C$2:V$40>"";СЧЁТЕСЛИ(W$1:W1;C$2:V$40)=0)*(СЧЁТЕСЛИ(C$2:V$40;C$2:V$40)+СТРОКА($2:$40)%));1)/1%;ОСТАТ(МАКС(ЕСЛИ(C$2:V$40>"";СЧЁТЕСЛИ(W$1:W1;C$2:V$40)=0)*(СЧЁТЕСЛИ(C$2:V$40;C$2:V$40)*99+СТРОКА($2:$40)+СТОЛБЕЦ(C:V)%));1)/1%)&""

Автор - Светлый
Дата добавления - 12.08.2018 в 09:51
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Сосчитать слова, написать сколько их, по убыванию (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!