かなり古風な文字列を持つセルがあります。(それは魔法のマナ・コストです:ザ・ギャザリングは呪文。)例としては3g、2gg、3ur、とbg。5つの可能な文字(g w u b r)があります。5つの列があり、それぞれの列の数を一番下で数えたいと思います。したがって、スプレッドシートは次のようになります
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列すべてにドラッグし、いくつかのカードすべてを下にドラッグできます。(ちなみに、これらは実際のデータです。It笑されていません:-)。)
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そのため、たとえばCentaur Healer(行2)の1 1 #value #value #value代わりに取得します1 1 0 0 0。使用された式はif(find($A2,C$1) > 0, 1, 0)です。
search代わりに使用しましたfind。違いが何であるかはまだわかりませんが、私の目的には役立ちます。