如何通过Excel公式生成5×1数组,判断数组元素是否存在于指定数组
实现每行判断是否匹配指定字符串(5行1列结果)
你需要对每行数据单独执行OR判断,而非对整个数组做聚合计算。以下几种方法可以实现需求:
方法1:BYROW + LAMBDA(Excel 365/2021及以上版本)
利用BYROW遍历每行数据,对每行单独执行OR逻辑:
=BYROW(A1:A5, LAMBDA(row, OR(row={"String1","String2"})))
公式会逐行检查A列单元格是否等于"String1"或"String2",返回5行1列的布尔值数组(TRUE/FALSE)。
方法2:直接逐行相加判断
将两个条件的布尔值转为数字后相加,再判断结果是否大于0,实现每行的OR逻辑:
=(--(A1:A5="String1") + --(A1:A5="String2"))>0
--用于将TRUE/FALSE转为1/0- 每行两个数字相加,结果大于0则表示该行匹配了其中一个字符串,最终返回5行1列的布尔数组。
方法3:MMULT矩阵运算
通过矩阵乘法对每行的两个条件结果求和,再判断是否大于0:
=MMULT(--(A1:A5={"String1","String2"}), {1;1})>0
--(A1:A5={"String1","String2"})生成5×2的数字数组(1/0)MMULT将每行的两个数字相加,最后判断结果是否大于0,得到5行1列的布尔数组。
内容的提问来源于stack exchange,提问作者Rasec Malkic
相关产品推荐
相关产品推荐

