从具有不同类别的混合单元格的表格引用

时间:2016-05-18 16:37:35

标签: google-sheets spreadsheet

我试图编写一个谷歌电子表格来比较和分析物流成本。

我有以下内容:

  • 包含数字数据库的工作表,组织如下: DATABASE

  • 带有表的第二张表,其中使用MI N函数,我得到每种型号最便宜的提供商的价格,具体取决于数量和目的地。 MINIMUM PRICE

  • 最后,在另一张纸上,我有我称之为"界面"。使用INDEX MATCH MATCH功能,我让用户为每个可用的模型选择目的地和数量,并返回最便宜的价格。 (我无法发布更多图片,所以基本上它有这种结构)

MODEL A

DESTINATION:    DESTINATION 2

NUM. OBJ:       2

PRICE:          59

PROVIDER:

我的问题是,我无法确定如何以最便宜的价格返回提供商的名称,因为我引用了第二个表格,其中在同一行或列中#39;具有属于不同提供商的价格的单元格。

1 个答案:

答案 0 :(得分:0)

在此上下文中使用min是不受欢迎的,因为它不会告诉您 找到最小值,并且您需要此信息。

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

sample data

=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. 按第二列(价格)排序,按升序排列(true)
  5. array_constrain只保留此类中的第一行;也就是说,价格最低的一个。
  6. iferror以防表中没有此类目的地或型号。然后该函数返回"未找到"。
  7. 示例:当G1 =目的地1且G2 = A时,公式返回

     Provider 2     2