手动数据标记和查找

问题描述 投票:0回答:3

我需要一个允许通过不同文本标签过滤条目的系统。

例如,我们存储有关某些产品的信息。我们有红苹果,梨,西瓜,黄瓜,辣椒和面包。我们将它们存储在A列中名为“ Data”的工作表中。接下来的列被标签占据,例如Red Apples是Red,Sweet,Fruit,Unpacked;胡椒是红色,麻辣,素类,盒装;面包刚装好。

然后在另一张纸上,我们有一个专用范围,例如A1:A10,它可以接受任何数据标签,例如Spicy或Packed。我需要的是,当有人在此范围内输入辣味和包装味时,它会查找所有辣味和包装味的物品并显示它们,因此在这种情况下,它将在B1单元格中显示Peppers。

要回顾:数据!A:A-条目名称,数据!B:Z-标签,Main!A1:A10-用户输入的标签,Main!B:B-具有标签的条目,与在A1中输入的标签相对应:A10。

我试图使用FILTER,但我不知道如何选择适当的条件范围。我觉得在此系统中应该可以实现这一点,我真的不想钻研脚本领域。

google-sheets filter google-sheets-formula array-formulas google-sheets-query
3个回答
1
投票

这可以通过使用帮助器列来收集所有标签,然后收集=query()公式来实现。

1)首先使用=join()=textjoin()创建一个多标签列,捕获每个产品的所有潜在标签。

Textjoin to multi-tag

2)然后使用this答案来帮助您创建所需的=query()公式。

Query for result


0
投票

有一个非常简单的解决方案。

您需要添加一个帮助器列,并使用此公式计算您的商品在列出的商品中有多少个标签

=SUM(ARRAYFORMULA(COUNTIF(B1:1,'Main'!$A$1:$A$10)))

“

[接下来,在演示文稿表中保留一些可以输入标签的位置-一次输入一个。就我而言,范围是A1:A10。然后只需将此公式粘贴到其他位置

=IFERROR(FILTER(Data!$B:$B,Data!$A:$A=(10-COUNTBLANK($A$1:$A$10))),"")

在那个地方,所有合适的元素都会出现。我还对公式添加了排序,原因为何?

““

您可以使用更多标签,为此只需增加标签范围并编辑公式,以便在没有输入标签时,COUNTIF会提供0。


0
投票

如果Data表看起来像这样:

0

并且您需要“建设性”清单,您可以这样做:

=SORT(FILTER(Data!A2:A, REGEXMATCH(TRANSPOSE(QUERY(TRANSPOSE(Data!B2:Z),,999^99)), 
 TEXTJOIN("|", 1, A1:A10))))

0


spreadsheet demo


0

如果您需要“破坏性”清单,请执行:

=ARRAYFORMULA(SORT(QUERY({Data!A2:A, TRANSPOSE(QUERY(TRANSPOSE(Data!B2:Z),,999^99))}, 
 "select Col1 where "&TEXTJOIN(" and ", 1, IF(A1:A10<>"", 
 "Col2 contains '"&A1:A10&"'", ))&"", 0)))

0

© www.soinside.com 2019 - 2024. All rights reserved.