【问题标题】:Referencing from table with mixed cells of different categories从表中引用不同类别的混合单元格
【发布时间】:2016-09-15 06:52:56
【问题描述】:

我正在尝试编写一个 Google 表格来比较和分析物流成本。 我有以下内容:

  • 包含数字数据库的表格,组织方式如下:

  • 第二张带有表格的工作表,在该表格中,我使用 MIN 函数获取了每种型号的最便宜供应商的价格,具体取决于数量和目的地。

  • 最后,在另一张纸上,我有我所谓的“界面”。使用INDEX MATCH MATCH 公式,我让用户为每个可用的型号选择目的地和数量,并返回最便宜的价格。 (我不能发更多的图片,所以基本上是这样的结构):

    MODEL A  
    DESTINATION:    DESTINATION 2  
    NUM. OBJ:       2  
    PRICE:          59  
    PROVIDER:  
    

我的问题是我不知道如何让它返回价格最便宜的提供商的名称,因为我从第二个表中引用,其中在同一行或列中,有带有价格的单元格属于不同的供应商。

【问题讨论】:

    标签: filter google-sheets google-sheets-formula


    【解决方案1】:

    在这种情况下使用min 是不可取的,因为它不会告诉您在哪里找到最小值,而您需要此信息。

    这是一个与提供者一起返回最低成本的公式。在我的示例中,数据在 A1:E7 范围内,如下所示;目的地在G1,模型在G2。

    =iferror(array_constrain(sort({filter(A1:A7, B1:B7=G2), filter(filter(C1:E7, B1:B7=G2), C1:E1=G1)}, 2, True), 1, 2), "Not found")
    

    为了便于阅读,换行符也是如此:

    =iferror(
       array_constrain(
         sort(
           {
             filter(A1:A7, B1:B7 = G2), 
             filter(filter(C1:E7, B1:B7 = G2), C1:E1 = G1)
            }, 
         2, True), 
       1, 2), 
    "Not found")
    

    解释:

    1. 按 B1:B7 = G2 过滤意味着只保留具有所需模型的行
    2. 按 C1:E1 = G1 过滤意味着只保留具有所需目标的列
    3. { , } 表示将过滤表的两个部分放在一起:A 列和目标列
    4. 按第二列(价格)升序排序(真)
    5. array_constrain 只保留这种排序的第一行;也就是价格最低的。
    6. iferror 是在表中没有这样的目的地或模型的情况下。然后该函数返回“未找到”。

    示例:G1 = 目的地 1 且 G2 = A,公式返回

     Provider 2     2
    

    【讨论】:

    • 非常感谢。我不得不用 {\} 替换 {,} 但之后它完美地工作了!
    猜你喜欢
    • 2011-11-29
    • 1970-01-01
    • 2017-11-24
    • 1970-01-01
    • 2021-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多