答案1
使用公式可以轻松完成此操作。为简单起见,我将矩阵放入 主工作表的列(及以外);将其移动到另一个工作表(页面/选项卡)很简单C
。N
这是函数的工作SEARCH
,它在一个字符串中查找另一个字符串,例如在“frantic”中查找“anti”。我们将使用它来查找属性列表(“antiseptic、antifungal、analgesic、antitumoral 等”)中的每个单独属性(“analgesic”、“antibacterial”等)。
SEARCH
返回子字符串的位置 — 例如,SEARCH("anti", "frantic")
返回 3,因为“a”是“frantic”的第三个字符。我们不关心这个;我们关心的是,如果第一个字符串存在于第二个字符串中,则SEARCH
返回一个数字,否则返回一个错误。因此,如果我们将其放入ISERROR(SEARCH(C$1, $B2))
单元格中 ,如果“antiseptic”( )在 Lavender()的属性列表中,C2
则返回 FALSE ,否则返回 TRUE。所以C1
B2
=IF(ISERROR(SEARCH(C$1, $B2)), "", "x")
如果属性在列表中则显示x
,如果不在则显示空白。
但这种说法过于简单。如果属性列表中包含“抗菌(强大)”,那么搜索“抗菌”将会成功。您对所需矩阵的说明表明您不希望这种情况发生。对此有一个标准技巧:搜索“,抗菌,”(开头和结尾均带有逗号),以在列表中找到“抗菌”作为完整条目。但如果“抗菌”是列表中的第一个或最后一个条目,则不会匹配 - 因此我们也在列表的开头和结尾添加逗号。
因此,将其放入=IF(ISERROR(SEARCH(", "&C$1&",", ", "&$B2&",")), "", "x")
单元格 C2
,然后向下和向右拖动: