2016-10-04 59 views
0

在我的谷歌文檔電子表格,我有樣(每行1句)句列:創建包含在另一列中顯示的句子中使用的單詞列表(唯一)的列?

How is it going? 
I am going to the store. 
He is going to play baseball. 

我想創建一個能夠包含單詞的唯一列表(每行1個字的另一列,忽略資本彷彿一切都是小寫),所以它的幾行可能看起來像:

how 
is 
it 
going 
I 
am 
to 
the 
store 


此外,作爲一博nus,我正在尋找創造另一列,每個這些詞出現的金額。例如,前幾行可能看起來像:

1 
1 
1 
2 

,因爲「怎麼做」,「是」和「它」的出現曾經和「走出去」出現兩次。

編輯:請有人請向我解釋爲什麼這得到了投票?

+0

你問堆棧溢出社區爲你寫一個腳本而不顯示wh的證據在你已經找到自己。我是新來的,但我敢打賭這就是爲什麼它被拒絕投票。在回答你的問題時,你是否嘗試過使用電子表格中的公式來做到這一點? –

+0

我正在尋找有關配方的東西,但我不清楚什麼是一個好的解決方案。 雖然我正在搜索堆棧溢出,以查看這個問題是否曾被問過,我發現的問題似乎有點類似(有點像http://stackoverflow.com/questions/703325/what-would-be-the-電子表格 - 函數 - 總和 - 所有值在一個列爲基礎的?rq = 1),並沒有表明提問者已經嘗試了什麼,所以我只是困惑爲什麼有些人會得到很多得票最高的是這個票子。 – paizhaulski

+0

我認爲這個問題有意義,因爲任務也可以用公式來解決。除了這個問題可以幫助其他用戶。 –

回答

1

下面介紹一種方法。

我寫了一個自定義函數的句子分解成的話,除去標點符號等,你會在工具添加此>腳本編輯器

function WORDS(input) { 
    var input = input.toString(); 
    var inputSplit = input.split(" "); 
    Logger.log(inputSplit); 
    inputSplit = inputSplit.toString(); 

    var punctuationless = inputSplit.replace(/[.,\/#!$%\?^&\*;:{}=\-_`~()]/g," "); 
    var finalString = punctuationless.replace(/\s{2,}/g," "); 
    finalString = finalString.toLowerCase(); 
    return finalString.split(" ") ; 
} 

一旦你做到了這一點,並保存它,你可以然後像這樣使用它=WORDS(A1:A3)

從那裏我只使用了谷歌功能。

=unique(c2:c)讓我們在列表中的唯一詞 =COUNTIF(C2:C,"="&D2)然後計算的話

有一個工作示例here

我不知道它會如何表現在大規模的,但它的出現可以開始處理更小的範圍。

1

Ussume,該列表是在列A

粘貼在該式中小區C2:

=ArrayFormula(TRANSPOSE(REGEXEXTRACT(SPLIT(JOIN(" ",A:A)," "),"\w+"))) 

這會給的所有字的列表。

,然後粘貼此公式中的任何無細胞:

=QUERY({C:C,C:C},"select Col1, count(Col2) where Col1 <> '' group by Col1",1) 

結果是:

enter image description here

單式解決方案也是可能的:

=QUERY({{"Words";ArrayFormula(TRANSPOSE(REGEXEXTRACT(SPLIT(JOIN(" ",A:A)," "),"\w+")))},{"Words";ArrayFormula(TRANSPOSE(REGEXEXTRACT(SPLIT(JOIN(" ",A:A)," "),"\w+")))}},"select Col1, count(Col2) where Col1 <> '' group by Col1",1) 
相關問題