Shah_Alina
@Shah_Alina
Нумеролог, корректолог жизненных дорог

Как посчитать сколько встречается каждое слово в таблице (или ячейке)?

https://docs.google.com/spreadsheets/d/1RrMOuBr-Eq...
Есть набор отзывов, хочу определить сколько каких слов встречается.
Т.е. не определенных слов, а все слова посчитать - сколько каждое из них встречается.
Есть такая универсальная формула?
  • Вопрос задан
  • 361 просмотр
Решения вопроса 1
ProgrammerForever
@ProgrammerForever Куратор тега Google Apps Script
Учитель, автоэлектрик, программист, музыкант
Виктор Л всё правильно подсказал.
Если немного изменить его код, можно получить не по одной ячейке, а по диапазону.
function COUNTUNIQWORDS(range) {
 let wordsCount = {};
 range.forEach(row=>{
   row.forEach(cell=>{
     let text = String(cell)
                  .toLowerCase()
                  .replace(/[^а-яА-ЯёЁa-zA-Z ]+/gi, ' ')
                  .replace(/\s+/gi, ' ');
    let words = text
                  .split(' ')
                  .filter(word=>word!=='');
    words.forEach(word=>{
      if (wordsCount[word]){
        wordsCount[word]+=1;
      }else{
        wordsCount[word]=1;
      };
    });
   });
 });
 
  let result = Object.keys(wordsCount)
                .sort()
                .map(word=>[word, wordsCount[word]]);
  return result;
};


Демонстрационная таблица с кодом
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Fzero0
@Fzero0
Вечный студент
Можно через создание своей формулы например
function COUNTUNIQWORDS(cell) {
 var result = []
 var words = String(cell).split(" ");
 var wordsCount = words.reduce(function (acc, w) {
  if(acc[w]) {
    acc[w] += 1
  } else {
    acc[w] = 1;
  }
  return acc;
}, {});
for (var w in wordsCount) result.push('Cлово "'+ w +'" встречается '+ wordsCount[w] +  ' раз');
return result
}

6108ef31e255c656419246.png
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы