Java의 String.contains(String otherString)에 해당하는 Excel

Java의 String.contains(String otherString)에 해당하는 Excel

상당히 오래된 문자열이 있는 셀이 있습니다. (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 #value1 1 0 0 0if(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))))

관련 정보