从 table 引用不同类别的混合单元格
Referencing from table with mixed cells of different categories
我正在尝试编写一个 Google 表格来比较和分析物流成本。
我有以下内容:
- 一个 sheet 带有数字数据库,组织如下:
- 第二个 sheet 和 table,其中使用
MIN
函数,我根据数量和目的地获得每个型号的最便宜供应商的价格。
最后,进入另一个 sheet,我称之为 "The interface"。使用 INDEX MATCH MATCH
公式,我让用户为每个可用型号选择目的地和数量,它是 return 最便宜的价格。 (我不能post更多图片,所以基本上是这样的结构):
MODEL A
DESTINATION: DESTINATION 2
NUM. OBJ: 2
PRICE: 59
PROVIDER:
我的问题是我不知道如何使它成为 return 价格最低的提供商的名称,正如我从第二个 table 中引用的那样,其中同一行或同一列中的单元格的价格属于不同的供应商。
在这种情况下使用 min
是不可取的,因为它不会告诉您 哪里 找到了最小值,而您需要此信息。
这里有一个公式,returns 与供应商一起的最低成本。在我的示例中,数据在 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")
解释:
- 按 B1:B7 = G2 过滤意味着只保留具有所需模型的行
- 按 C1:E1 = G1 过滤意味着只保留具有所需目标的列
- { , } 表示将过滤后的 table 的两部分放在一起:A 列和目标列
- 按第 2 列(价格)升序排序(正确)
array_constrain
仅保留此排序中的第一行;也就是说,价格最低的。
iferror
是为了防止 table 中没有这样的目的地或模型。然后函数 returns "not found".
示例:G1 = 目的地 1 且 G2 = A,公式 returns
Provider 2 2
我正在尝试编写一个 Google 表格来比较和分析物流成本。 我有以下内容:
- 一个 sheet 带有数字数据库,组织如下:
- 第二个 sheet 和 table,其中使用
MIN
函数,我根据数量和目的地获得每个型号的最便宜供应商的价格。
最后,进入另一个 sheet,我称之为 "The interface"。使用
INDEX MATCH MATCH
公式,我让用户为每个可用型号选择目的地和数量,它是 return 最便宜的价格。 (我不能post更多图片,所以基本上是这样的结构):MODEL A DESTINATION: DESTINATION 2 NUM. OBJ: 2 PRICE: 59 PROVIDER:
我的问题是我不知道如何使它成为 return 价格最低的提供商的名称,正如我从第二个 table 中引用的那样,其中同一行或同一列中的单元格的价格属于不同的供应商。
在这种情况下使用 min
是不可取的,因为它不会告诉您 哪里 找到了最小值,而您需要此信息。
这里有一个公式,returns 与供应商一起的最低成本。在我的示例中,数据在 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")
解释:
- 按 B1:B7 = G2 过滤意味着只保留具有所需模型的行
- 按 C1:E1 = G1 过滤意味着只保留具有所需目标的列
- { , } 表示将过滤后的 table 的两部分放在一起:A 列和目标列
- 按第 2 列(价格)升序排序(正确)
array_constrain
仅保留此排序中的第一行;也就是说,价格最低的。iferror
是为了防止 table 中没有这样的目的地或模型。然后函数 returns "not found".
示例:G1 = 目的地 1 且 G2 = A,公式 returns
Provider 2 2