Google sheets 计算值出现的列数(谷歌工作表)

Google sheets 计算值出现的列数(谷歌工作表),google-sheets,spreadsheet,Google Sheets,Spreadsheet,我有一个谷歌表,我想知道一个值出现在其中的唯一列的数量。例如,给定以下表格: | A | B | C | D | +-------+-------+-------+-------+ | Joe | Lisa | Lisa | Lisa | | Joe | Lisa | Jenny | Lisa | | Joe | Jenny | Jenny | John | | Joe | Jenny |

我有一个谷歌表,我想知道一个值出现在其中的唯一列的数量。例如,给定以下表格:

    |   A   |   B   |   C   |   D   |
    +-------+-------+-------+-------+
    | Joe   | Lisa  | Lisa  | Lisa  |
    | Joe   | Lisa  | Jenny | Lisa  |
    | Joe   | Jenny | Jenny | John  |
    | Joe   | Jenny | Katie | John  |       
    | Joe   | Jenny | Katie | John  |       
我希望乔出现在第1栏,丽莎出现在第3栏,珍妮出现在第2栏,凯蒂出现在第1栏,约翰出现在第1栏,即

    | 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)''"), "~", " "))
编辑

正如Tom所注意到的,我错过了任务,正确的公式是:

=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'")
=查询(
查询(
{转置(拆分(TEXTJOIN(#),1,过滤器(列(A:D)*行(A:D)^0,A:A“”),“#”),
转置(SPLIT(TEXTJOIN(“#”),1,A:D),“#”),
“按Col1,Col2选择Col1,Col2,count(Col2)group by Col1,Col2”),
选择Col2,计数(Col3)按Col2标签Col2'名称'分组,计数(Col3)'计数')
信用证:@tomsharpe

我的原始公式计数最大次数名称在一行中:

=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'")
=查询(
查询(
{转置(拆分(TEXTJOIN(“#”),1,过滤器(列(A:D)^0*行(A:D),A:A“”),“#”),
转置(SPLIT(TEXTJOIN(“#”),1,A:D),“#”),
“按Col1,Col2选择Col1,Col2,count(Col2)group by Col1,Col2”),
“按Col2标签Col2‘名称’选择Col2,最大(Col3)组”

我很想看看你是如何把它放在一起@Max的,但如果它们在同一行,它似乎只会给出3个Lisa(例如)?这是我的建议=查询({TRANSPOSE(SPLIT(TEXTJOIN(#),1,FILTER(COLUMN(A:D)*row(A:D)^0,A:A“”),“#”)),TRANSPOSE(SPLIT(SPLIT(TEXTJOIN(#,1,A:D),“#”),选择Col1,Col2,count(Col2)“按Col1分组,Col2”),“选择Col2,计数(Col3)按Col2分组标签Col2‘名称’,计数(Col3)‘计数’”)Hi Tom。谢谢你的建议。我添加了一个结果的屏幕截图。我看不出这里到底出了什么问题。请看我的编辑@tom sharpeWell如果删除B6中的Lisa,Lisa的计数仅为3,尽管她出现在所有四列中。我认为这是给了丽莎(或任何其他名字)在任何一行的最大数量。谢谢你,汤姆!现在我明白了区别。