Совпадение слова в пределах диапазона, совпадение со вторым словом в пределах диапазона - PullRequest
0 голосов
/ 18 марта 2020

Прежде всего. Этот форум великолепен. Я использовал это много, и у меня не было необходимости создавать свой собственный вопрос. До сих пор.

У меня есть таблица данных со свободным текстовым полем в столбце O. Я отфильтровал наиболее встречающиеся слова и суммировал их в sheet1. Я создал столбец P с функцией соответствия, чтобы определить наиболее часто встречающееся слово в поле свободного текста. Я использовал следующую формулу в столбце P. Она работает для поиска первого наиболее встречающегося слова.

=IFERROR(INDEX(Sheet1!$B$2:$B$794;MATCH(1;COUNTIF(O8;"*"&Sheet1!$B$2:$B$794&"*");0));"")

(Sheet1! $ B $ 2: $ B $ 794 содержит слова, которые ищутся) До сих пор все работает нормально.

Я хочу добавить еще одну формулу в столбце Q в найти второе самое встречающееся слово. Т.е. он должен искать первое подходящее слово, которое он находит на листе 1, но не может быть словом, которое уже было найдено.

Я попытался немного изменить формулу, чтобы добавить другие критерии, используя COUNTIFS, но я не могу сделать это работает. Я попробовал эту формулу: (в столбце Q)

=IFERROR(INDEX(Sheet1!$B$2:$B$794;MATCH(1;COUNTIFS(O8;"*"&Sheet1!$B$2:$B$794&"*";O8;<>"*"&P8&"*");0));"")

Жирная часть не работает.

Любые предложения, чтобы исправить это?

Кроме того, есть ли способ опубликовать пример листа Excel?

Заранее спасибо!

РЕДАКТИРОВАТЬ:

Это вывод, который я ищу. Пример Excel требуется вывод

Он ищет слова из предопределенного набора слов как таковые: Пример поиска в Excel слов

Так что в этом примере я проанализировал сколько раз каждое слово встречается в колонке I «Комментар». Очевидно, слово «en» встречается 3 раза, слово «pauze» - 2 раза и т. Д. c. Я удаляю некоторые слова, которые меня не интересуют, такие как «EN». Оставшийся список представляет собой набор слов, которые я хочу найти. Таким образом, в cel P8 он должен вернуть первое слово в списке, которое совпадает с любым из слов в поле произвольного текста I8. Первое подходящее слово в списке, которое он находит, это Pauze, следовательно, ячейка P8 возвращает «Pauze», второе подходящее слово «Simulat ie», следовательно, Q8 возвращает Simulat ie.

Надеюсь, это немного прояснит ситуацию

Ответы [ 3 ]

0 голосов
/ 18 марта 2020

Это должно работать со всеми версиями Excel. Предполагается, что данные находятся в столбце A для простоты.

Следующая формула массива должна быть подтверждена с помощью Ctrl-Shift-Enter ...

=INDEX(A1:A9,MATCH(LARGE(COUNTIF(A1:A9,A1:A9),MAX(COUNTIF(A1:A9,A1:A9))+1),COUNTIF(A1:A9,A1:A9),))
0 голосов
/ 18 марта 2020

Насколько я понимаю, это, вероятно, то, что вы хотите!

Хотя вы сказали, что finding the first most occurring word, но я думаю, что вы пытаетесь найти ближайшее совпадение [top -> down], посмотрев на выражение, которое вы даете.

Вот формула:

D2=IfError(INDEX($B$2:$B$12,AGGREGATE(15,6,ROW($1:$12)/COUNTIF($D$1,"*"&$B$2:$B$12&"*"),ROW(A1))),"")

Office365:

F2=FILTER(B2:B12,COUNTIF(D1,"*"&B2:B12&"*"))

enter image description here

как это работает:

  • ROW($1:$12)/COUNTIF($D$1,"*"&$B$2:$B$12&"*") возвращает строку индекса массива, если совпадают.
  • Совокупная ошибка игнорирования и строка индекса возврата по возрастанию с row(A1)

Надеюсь, я правильно понимаю:)

0 голосов
/ 18 марта 2020

Если есть новые формулы Dynami c Array, доступные в подписке Office 365:

=TRANSPOSE(MID(SORT(UNIQUE(TEXT(COUNTIF(A1:A12,A1:A12),"0000")&"-"&A1:A12),,-1),6,9999))

Excel отобразит результаты вправо.

enter image description here


Без формулы массива Dynami c мы можем использовать:

=INDEX(INDEX($A$1:$A$13,N(IF({1},MODE.MULT(IF(MATCH($A$1:$A$13,$A:$A)=ROW($A$1:$A$13),ROW($A$1:$A$13)*{1,1}))))),COLUMN(A1))

Поместите это в столбец P. Затем подтвердите с помощью Ctrl-Shift-Enter вместо Enter при выходе из режима редактирования. Затем скопируйте / перетащите и выберите первое, затем второе, затем третье.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...