상당히 오래된 문자열이 있는 셀이 있습니다. (Magic: the Gathering 주문의 마나 비용입니다.) 예를 들면 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개 열 전체에 걸쳐 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");
}
엑셀 2010을 사용하는데 이런게 있나요?
find()
사용해 보았는데 search()
색상이 존재하면 잘 작동합니다. 그러나 색상이 없으면 반환됩니다 . 따라서 예를 들어 Centaur Healer(2행) 대신에 색상 #value
을 얻습니다 . 사용된 공식은 .1 1 #value #value #value
1 1 0 0 0
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))))