【问题标题】:Vlookup AND check if cell contains other criteraVlookup 并检查单元格是否包含其他条件
【发布时间】:2022-01-14 01:34:46
【问题描述】:

我有一个包含以下标签的 Google 表格:

  • Shops ||这包含一些下拉菜单
  • !Data_ShopInventory ||这包含 A-I 列,实际上是“数据库”
  • !Data_Shops ||这包含一些基于其他选项卡随机生成的内容,然后从中提取“商店”选项卡

我有以下公式:

={"Items";SORTN(FILTER('!Data_ShopInventory'!$A$2:$A, SEARCH(Shops!$C$3, '!Data_ShopInventory'!$I$2:$I)), 5, 0, ARRAYFORMULA(RANDBETWEEN(TRANSPOSE(SPLIT(REPT("1,",COUNTA(FILTER('!Data_ShopInventory'!$A$2:$A, search(Shops!$C$3, '!Data_ShopInventory'!$I$2:$I)))), ",", 0, 1)), 10000)), 1)}

这是这样工作的:根据在Shops 选项卡(单元格 C3)上选择的下拉菜单,它会从!Data_ShopInventory(Col A)选项卡中随机拉出 5 个项目。

在!Data_ShopInventory 选项卡中,我有一列(城镇规模),其中包含如下文本:

  • 大
  • 中等
  • 中、大
  • 小、中
  • 小
  • 小、中、大

我需要让返回随机项目的 vlookup 也考虑到这一点。
在Shops 选项卡上,还有另一个下拉菜单(单元格 C4),其中包含小、中或大选项。

因此,如果我选择“大”,我希望 vlookup 仅返回 C3 匹配的随机项目(就像它当前在上面的公式中所做的那样),并且 Col G 中的相应单元格包含从下拉菜单中选择的内容C4.

试了一堆,我就是想不通...现在是凌晨 1:30,我累了。有谁能帮忙吗?

以下是工作表的链接: Google Sheet Copy

【问题讨论】:

  • 以为我已经做到了。我的坏

标签: sorting if-statement google-sheets google-sheets-formula vlookup


【解决方案1】:

删除 G1:J1 并在 G1 中使用:

={"Standard Price", "Discounted Price", "Inflated Price", "Limited Stock"; 
 ARRAYFORMULA(IF(LEN(F2:F), IFNA(VLOOKUP(F2:F, 
 FILTER('!Data_ShopInventory'!A:H, REGEXMATCH('!Data_ShopInventory'!G:G, Shops!C4)), {3,4,5,8}, )), ))}

更新:

={"Items";SORTN(FILTER('!Data_ShopInventory'!$A$2:$A, SEARCH(Shops!$C$3, '!Data_ShopInventory'!$I$2:$I),REGEXMATCH('!Data_ShopInventory'!G2:G, Shops!C4)), 30, 0, ARRAYFORMULA(RANDBETWEEN(TRANSPOSE(SPLIT(REPT("1,",COUNTA(FILTER('!Data_ShopInventory'!$A$2:$A, search(Shops!$C$3, '!Data_ShopInventory'!$I$2:$I),REGEXMATCH('!Data_ShopInventory'!G2:G, Shops!C4)))), ",", 0, 1)), 10000)), 1)}

【讨论】:

  • 这当然比一堆 vlookup 效果更好,但它实际上并不是我想要的(无论如何谢谢!)。我需要 !Data_Shops 表上 ColF 中的项目根据 Shops 表中的下拉列表(单元格 C3 和 C4)进行填充。 C3 查找已经在工作,它可以为铁匠找到东西,但我还需要它只在 C4 值与 '!Data_ShopInventory'!G:G 匹配的地方找到它。因此,如果我们查看物品 Plate,它只在大型商店有售。所以我只想在 C4 下拉大的时候随机拉它。我希望这是有道理的?
  • 我想我是根据你的回答怀疑它的: ={"Items";SORTN(FILTER('!Data_ShopInventory'!$A$2:$A, SEARCH(Shops!$C$3, ' !Data_ShopInventory'!$I$2:$I),REGEXMATCH('!Data_ShopInventory'!G2:G, Shops!C4)), 30, 0, ARRAYFORMULA(RANDBETWEEN(TRANSPOSE(SPLIT(REPT("1,",COUNTA( FILTER('!Data_ShopInventory'!$A$2:$A, search(Shops!$C$3, '!Data_ShopInventory'!$I$2:$I),REGEXMATCH('!Data_ShopInventory'!G2:G, Shops!C4) ))), ",", 0, 1)), 10000)), 1)}
【解决方案2】:

如果我选择“大”,我希望 vlookup 只返回 C3 匹配的随机项目(就像它当前在上面的公式中所做的那样),并且 Col G 中的相应单元格包含 C4 中下拉列表中的选择.

因此,如果我理解正确,您希望从 !Data_ShopInventory 返回五个随机项目,其中 ShopType 匹配 Shops!C3 和 TownSizeAvailable 匹配 Shops!C4。如果这就是您所追求的,那么这个公式就可以解决问题。

={"Items";SortN(Query('!Data_ShopInventory'!A2:I,"select A where I='"&Shops!C3&"' and G like '%"&Shops!C4&"%'",0),5,,RandArray(SumProduct(('!Data_ShopInventory'!I2:I=Shops!C3)*RegexMatch('!Data_ShopInventory'!G2:G,Shops!C4))),0)}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-25
    • 1970-01-01
    • 2014-05-19
    • 1970-01-01
    • 1970-01-01
    • 2018-10-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多