Excel 相当于 Java 的 String.contains(String otherString)

Excel 相当于 Java 的 String.contains(String otherString)

我有一个单元格,里面有一个相当古老的字符串。(它是《万智牌》法术的魔法值消耗。)例如3g,,,和。有 5 个可能的字母( )。我有 5 列2gg,我想在底部计算每列包含多少个。所以我的电子表格可能看起来像这样3urbgg w u b r

  A                   B        C  D  E  F  G
 +--------------------------------------------
1|Name                Cost     G  W  U  B  R
2|Centaur Healer      1gw      1  1  0  0  0
3|Sunspire Griffin    1ww      0  1  0  0  0 // just 1, even though 1ww
4|Rakdos Shred-Freak  {br}{br} 0  0  0  1  1

基本上,我想要看起来像这样的东西=if(contains($A2,C$1),1,0),我可以将其拖到所有 5 列和所有 270 张卡片上。(顺便说一句,这些都是实际数据。它不是模拟的 :-)。)

在 Java 中我会这样做:

String[] colors = { "B", "G", "R", "W", "U" };
for(String color : colors) {
    System.out.print(cost.toUpperCase().contains(color) ? 1 : 0);
    System.out.print("\t");
}

在使用Excel 2010时是否存在类似情况。

我尝试使用find()和,search()如果颜色存在,它们效果很好。但如果颜色不存在,它会返回#value- 所以我得到了1 1 #value #value #value而不是1 1 0 0 0,例如 Centaur Healer(第 2 行)。使用的公式是if(find($A2,C$1) > 0, 1, 0)

答案1

类似这样的事=IF(ISERROR(FIND("text", A1)), "false", "true")应该可以起作用。

如果您需要使用通配符,您可以尝试search而不是find

答案2

我可能是错的,但我相信你正在寻找寻找()

FIND( substring, string, [start_position] )

答案3

这将做到:

=N(NOT(ISERR(SEARCH(C$1,$B2))))

相关内容