У меня есть 2 столбца данных в Google Sheet. Столбец1 - это уникальные слова или предложения (слова повторяются в предложениях), а Столбец2 - это число c рядом с каждым (скажем, голосами). Я пытаюсь получить список уникальных слов из столбца 1, а затем сумму значений (голосов) из столбца 2, когда слово присутствовало либо само по себе, либо в предложении.
Вот пример данных Я работаю с Google Sheets:
Term Votes
apple 20
apple eat 100
orange 30
orange rules 40
rule why 50
Вот как выглядит конечный результат:
Word Votes
apple 120
eat 100
orange 70
rules 40
rule 50
why 50
То, как я делаю это сейчас, довольно долго, и я не уверен если это лучшее решение.
Вот мое решение:
JOIN
значения в столбце 1 с использованием разделителя "", а затем SPLIT
их с использованием того же разделителя, а затем TRANSPOSE
их в столбец все за один шаг. Таким образом, у меня есть список всех слов, используемых в Column1, например, в Column3. - В Column4 вытащите все значения
UNIQUE
, а затем выполните COUNTIF
для уникальных значений из Column3. Таким образом, я могу получить частоту каждого уникального слова, ссылаясь на список всех слов. - Чтобы получить сумму голосов, мне нужно
TRANSPOSE
Column4, а затем QUERY
Column1 и Столбец2 с использованием текста Dynami c в формуле. Формула выглядит как =QUERY(Column1:Column2, "SELECT SUM(Column2) WHERE Column1 CONTAINS '" & referenceToUniqueWord & "'", 1)
. Сначала мне нужно транспонировать, потому что формула запроса выводит 2 ячейки данных ie Text: sumColumn1 и Number: 'sum of voice'. Поскольку для одной ячейки уникального слова я получаю две ячейки данных, я не могу перетащить формулу вниз и, следовательно, я должен сделать это горизонтально. - Я наконец-то получаю три строки данных после последнего шага: Один строка только что транспонирована Column4 (все уникальные слова). Вторая строка - это просто текст sumColumn2, использующий формулу
QUERY
. И третий ряд - фактическая сумма голосов, полученная из отдельных QUERY
формул. Затем я перемещаю эти строки в столбцы и для получения окончательной таблицы I VLOOKUP
значений частоты, полученных ранее.
Этот подход является длительным и подвержен ошибкам. Также не работает, если список большой и в начальном JOIN
я получаю ошибку, достигшую предела в 50 000. Любые идеи, чтобы сделать это лучше, приветствуются. Я знаю, что это можно сделать намного проще с помощью скриптов, но я бы предпочел, чтобы это делалось с использованием только формул.