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