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]
Добрый день. [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
Необходимо сосчитать слова и рядом написать сколько их из всей выделенной области (C2-V40), по убыванию вывести.
А рядом это где? А Вы могли бы показать в примере, так есть, а так надо, чтобы понять против какого значения писать количество из каких столбцов нужно выбрать. Пример строка 4, два, один, три в какой ячейке должен быть результат и по какому значению? Возможно нужно вывести список индивидуальных слов и посчитать сколько каждого. Но где вывести этот список, на другом листе?
Необходимо сосчитать слова и рядом написать сколько их из всей выделенной области (C2-V40), по убыванию вывести.
А рядом это где? А Вы могли бы показать в примере, так есть, а так надо, чтобы понять против какого значения писать количество из каких столбцов нужно выбрать. Пример строка 4, два, один, три в какой ячейке должен быть результат и по какому значению? Возможно нужно вывести список индивидуальных слов и посчитать сколько каждого. Но где вывести этот список, на другом листе?gling
ЯД-41001506838083
Сообщение отредактировал gling - Пятница, 03.08.2018, 23:29
Светлый, то что нужно, единственное, по убыванию чтобы были, я прикрепил файл, я не правильно что то вписал? или ваша формула не по убыванию просто. Хотелось узнать, что означает в формуле ячейка W1 ?
Спасибо всем.
Qlinq, справа пример написан
Светлый, то что нужно, единственное, по убыванию чтобы были, я прикрепил файл, я не правильно что то вписал? или ваша формула не по убыванию просто. Хотелось узнать, что означает в формуле ячейка W1 ?stalber
Понятно, масштаб 100%, что творится в столбце W на экране не видно, а уменьшить масштаб не догадался. W$1:W1=диапазон который увеличивается при протягивании формулы вниз. Если протянуть на 10 строк вниз диапазон изменится на такой W$1:W10.
Понятно, масштаб 100%, что творится в столбце W на экране не видно, а уменьшить масштаб не догадался. W$1:W1=диапазон который увеличивается при протягивании формулы вниз. Если протянуть на 10 строк вниз диапазон изменится на такой W$1:W10.gling
Немного упростил: [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%)&""
Немного упростил: [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%)&""
Помогите пожалуйста, необходимо немного доработать, в связи с дополнительным появившемся условием. В примере изначально в этой области C2:V40 был только текст, сейчас появились и числа, необходимо чтобы только текст подсчитывался, а если попадаются числа в ячейках то они должны игнорироваться, и формула не должна их выводить.
Помогите пожалуйста, необходимо немного доработать, в связи с дополнительным появившемся условием. В примере изначально в этой области C2:V40 был только текст, сейчас появились и числа, необходимо чтобы только текст подсчитывался, а если попадаются числа в ячейках то они должны игнорироваться, и формула не должна их выводить.stalber