簡體   English   中英

計算值出現的列數(Google表格)

[英]Counting number of columns a value appears in (Google Sheets)

我有一個Google表格,我想知道值出現的唯一列數。例如,給出以下表格:

    |   A   |   B   |   C   |   D   |
    +-------+-------+-------+-------+
    | Joe   | Lisa  | Lisa  | Lisa  |
    | Joe   | Lisa  | Jenny | Lisa  |
    | Joe   | Jenny | Jenny | John  |
    | Joe   | Jenny | Katie | John  |       
    | Joe   | Jenny | Katie | John  |       

我希望有一些東西讓Joe出現在一欄中,Lisa出現在3中,Jenny出現在2中,Katie出現在1中,而John出現在一列中,即

    | Name  | Count |
    +-------+-------+
    | Joe   |     1 |
    | Lisa  |     3 |
    | Jenny |     2 |
    | Katie |     1 |
    | John  |     1 |

最好的方法是什么?

假設數據中沒有空格,請嘗試:

=ArrayFormula(QUERY(SPLIT(UNIQUE(TRANSPOSE(SPLIT(JOIN(" ", QUERY(A1:D&"_"&COLUMN(A1:D1),,ROWS(A1:A)))," "))), "_"), "Select Col1, count(Col2) where Col2 > 0 group by Col1 label count(Col2)''"))

如果源數據有空格,請嘗試:

=ArrayFormula(SUBSTITUTE(QUERY(SPLIT(UNIQUE(TRANSPOSE(SPLIT(JOIN(" ", QUERY(SUBSTITUTE(A1:D, " ", "~")&"_"&COLUMN(A1:D1),,ROWS(A1:A)))," "))), "_"), "Select Col1, count(Col2) where Col2 > 0 group by Col1 label count(Col2)''"), "~", " "))

編輯

湯姆注意到,我錯過了任務,正確的公式是:

=QUERY( 
    QUERY( 
    {TRANSPOSE(SPLIT(TEXTJOIN("#",1,FILTER(COLUMN(A:D)*row(A:D)^0,A:A<>"")),"#")), 
     TRANSPOSE(SPLIT(TEXTJOIN("#",1,A:D),"#"))}, 
    "select Col1, Col2, count(Col2) group by Col1, Col2"), 
"select Col2, count(Col3) group by Col2 label Col2 'Name',count(Col3) 'Count'")

圖片來源: @ tom-sharpe

我的原始公式計算最大次數名稱是連續的:

=QUERY(  
  QUERY(  
  {TRANSPOSE(SPLIT(TEXTJOIN("#",1,FILTER(COLUMN(A:D)^0*row(A:D),A:A<>"")),"#")),
   TRANSPOSE(SPLIT(TEXTJOIN("#",1,A:D),"#"))},
  "select Col1, Col2, count(Col2) group by Col1, Col2"),
"select Col2, max(Col3) group by Col2 label Col2 'Name'")

在此輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM