【问题标题】:Looking up a value based on 2 conditions with HLOOKUP使用 HLOOKUP 根据 2 个条件查找值
【发布时间】:2019-12-24 22:47:23
【问题描述】:

我有一个基于大量数据的数据透视表。我想将这些数据过滤到一个简单的表格中以生成报告。我尝试了 HLookup,但由于我更改了数据透视表的设置,它失败了。所以我需要用类似的东西来做;

=如果团队是 EN 并且它在下午班,那么下午班号是 x。

这里是更多说明的谷歌表格链接:https://docs.google.com/spreadsheets/d/1mk5xhn9Su26ptmRMLINcKxViP2SgkKrjiA9jfy5a9wM/edit?usp=sharing

【问题讨论】:

  • 你想要每个值还是只需要指定的值?
  • 一个公式就够了,其余的我会理解的,非常感谢你,祝你和你的家人圣诞快乐。
  • 解决方案已添加,Reda 节日快乐

标签: google-sheets google-sheets-formula transpose array-formulas gs-vlookup


【解决方案1】:

尝试:

=ARRAYFORMULA(IFNA(VLOOKUP(L2:L, TRANSPOSE(A1:I11), {2,3,4,5,6,7}, 0)))


一体化:

=ARRAYFORMULA({IFNA(VLOOKUP(L2:L9, TRANSPOSE(A1:I11), {2,3,4,5,6,7}, 0));
   QUERY(QUERY(IFNA(VLOOKUP(L2:L9, TRANSPOSE(A1:I11), {2,3,4,5,6,7}, 0)), 
 "select sum(Col1),sum(Col2),sum(Col3),sum(Col4),sum(Col5),sum(Col6)", 0), "offset 1", 0)})

【讨论】:

  • 您好,亲爱的。你能解释一下这个数字是干什么用的吗? {2,3,4,5,6,7}。
  • 那些是列因为左侧的表格被转置了。但是在这种情况下,您可以将其视为行
【解决方案2】:

你可以使用

=QUERY(ARRAYFORMULA(TRANSPOSE($A$1:$I$11)),"SELECT Col2 where Col1 = '"&$L2&"'",0)

它的作用是转置您的数据以获取您需要的格式,然后您可以根据左侧列的索引指定列,即Col2 = afternoon

如果你只是想在没有任何查询或过滤的情况下转置它,你可以这样做

=ARRAYFORMULA(TRANSPOSE(A1:I11))

这会给你

【讨论】:

  • 非常感谢,我会尝试申请并通知您。
【解决方案3】:

你可以像这样使用 Hlookup:

=transpose( {{"Team";A2:A7}, arrayformula( hlookup( if( row( A1:A7)^0*COLUMN(B1:I1)^0=1,B1:I1,""),B1:I7,sequence(counta(A1:A7),1),false))})

解释:

  1. {"Team";A2:A7} 带有转置将给出标题:

    Team    Afternoon   AL  MC  ML  Morning Night
    
  2. row(A1:A7)^0*COLUMN(B1:I1)^0 与数组公式将给出

    1 1 1 1 1 1 1 1 
    1 1 1 1 1 1 1 1
    1 1 1 1 1 1 1 1
    1 1 1 1 1 1 1 1
    1 1 1 1 1 1 1 1
    1 1 1 1 1 1 1 1
    1 1 1 1 1 1 1 1
    
  3. if( 行(A1:A7)^0 *COLUMN(B1:I1)^0 = 1, B1:I1,"")

    EN  DE  FR  UK  GE  BR  EG  IL
    EN  DE  FR  UK  GE  BR  EG  IL
    EN  DE  FR  UK  GE  BR  EG  IL
    EN  DE  FR  UK  GE  BR  EG  IL
    EN  DE  FR  UK  GE  BR  EG  IL
    EN  DE  FR  UK  GE  BR  EG  IL
    EN  DE  FR  UK  GE  BR  EG  IL
    
  4. hlookup( if( 行(A1:A7)^0 *COLUMN(B1:I1)^0 = 1, B1:I1,"") , B1:I7, 序列(counta(A1:A7),1) ,false) 与 arrayformula 将给出:

    EN  DE  FR  UK  GE  BR  EG  IL
    9   5   8   5   5   3   2   2
    1   1   1                   
    2       1   2               
                            1   
    6   6   5   4   4   2   1   1
    15  7   6   5   4   3   2   1
    
  5. 所有公式都会给出(转置后):

    Team    Afternoon   AL  MC  ML  Morning Night
    EN      9           1   2       6       1500%
    DE      5           1           6       700%
    FR      8           1   1       5       600%
    UK      5               2       4       500%
    GE      5                       4       400%
    BR      3                       2       300%
    EG      2                   1   1       200%
    IL      2                       1       100%
    

但简单的方法,只需使用转置:

=transpose({"team",B1:I1 ;A2:I7})   

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    • 2020-02-13
    • 1970-01-01
    • 2023-01-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多