-1

카드 목록에서 임의의 카드를 선택하는 무작위 생성기를 만들고 싶습니다. 카드의 특정 하위 집합을 걸러 내기 위해 몇 가지 매개 변수를 입력하십시오. 모든 카드에는 두 유형의 하위 집합 인 <Rarity><Colour>이 있습니다. 각각의 세부 사항 카드를 가장 왼쪽에있는 세 개의 열에서인접한 열의 특정 값을 가진 행을 제외하고 행 목록에서 무작위로 선택하는 방법

 A   B   C   D    E   F   G 
1 Card <Rarity> <Colour> <Filter Rarity> Card <Rarity> <Colour> 
=============================================================================== 
2 Blah1 Common  Blue   X    <Generator formulas> 
3 Blah2 Common  Red   X    <Generator formulas> 
4 Blah3 Uncommon White   X    <Generator formulas> 
5 Blah4 Legendary Green   X    <Generator formulas> 

됩니다

은 지금까지 나는 다음과 같이 Google Sheets에 공식으로 작업 할 내 발전기를 설정합니다. D 열은 A, B, C 열에서 무작위로 선택할 때 내 수식을 무시하고 싶은 모든 <Rarity> 값을 입력하려고 시도한 열입니다.

내가 이전에했던 다른 수식에서 함께 공식을 재현
E 
=INDEX($A$2:$A$537,LARGE(MATCH(ROW($A$2:$A$537),ROW($A$2:$A$537))*NOT(COUNTIF($E$1:E1,$A$2:$A$537)),RANDBETWEEN(1,ROWS($A$2:$A$537)-ROW(A1)+1))) 

F and G just vlookups to return the values in columns B and C. 
=vlookup(E2,$A$2:$C$760,2,FALSE) 

그래서 난 다시 가서 방법을 알아 내려고 시도했다 : 다음과 같이

전자의 코드는, F, G 열은 A에있는 카드 중 하나라도 B에있는 카드 중 하나가 D에 나열된 카드와 일치하면 카드를 가져 가면 안됩니다. 그러나 나는 그것을 넣는 것이 가장 좋은지 또는 어떻게해야할지 잘 모르겠습니다.

답변

1

한 가지 방법 : 이것은, 임의의 숫자의 열을 추가 열 D에 나타나지 않는 사람을 필터링

=QUERY(FILTER({A2:C537,RANDBETWEEN(SIGN(ROW(A2:A537)),1E+308)},ISNA(MATCH(B2:B537,D2:D,0))),"select Col1, Col2, Col3 where Col1 != '' order by Col4 limit 10",0)

은 임의의 숫자의 열을 기반으로 최초의 3 열 정렬 "제한 10"을 사용하면 무작위로 선택한 카드 수를 지정할 수 있습니다.

+0

우선 시간 내 주셔서 감사합니다. Google 시트가 Google API 언어를 querry에 통합 할 수 있다는 것을 알지 못했습니다! 그것은 배울 수있는 훌륭하게 다재다능한 것 같이 보인다! C 열의 변수도 D 열에 기록하면 필터링에 통합 할 수 있습니까? 나가 여과하고 싶은 columnd D에있는 두 색깔 그리고 희소성을 쓰는 경우에? – Fiztban

+0

아, 나는 그것을 완성했다. 필터 조건에 다른 ISNA (MATCH (C2 : C537, D2 : D, 0))를 추가했다. 그것은 놀라 울 정도로 똑바로 진행되었습니다. 당신의 지식에 대해 너무나 감사드립니다! – Fiztban

+0

이 솔루션은 작동하지만 예외가 너무 많은 변수를 사용하면 쿼리가 반환하는 목록이 손상되어 제한보다 열등한 항목 수가 반환됩니다. 예를 들어, 1을 제외한 모든 색상을 필터링 할 수 없으며 수백 개의 항목을 사용할 수 있음에도 불구하고 19 개 이상의 항목을 반환합니다. 한 번만 목록을 순환하고 너무 적게 선택하는 것일까 요? – Fiztban