내 데이터의 예는 다음과 같습니다.
Name: Office: Years:
John Smith Canada 1
Bob Smith Canada 1
Jake Smith Canada 1
Sarah Smith Canada 1
다른 시트에서는 사무실과 연도를 기준으로 임의의 이름을 출력하고 싶습니다. 수식을 아래로 끌 때마다 매번 다른 이름을 지정하고 싶습니다(여기서 문제가 발생합니다). 나는 여러 공식을 시도했는데 이것이 가장 가깝습니다.
=INDEX($B$2:$B$436,MATCH(SMALL(IF($D$2:$D$436&$F$2:$F$436=$H$3&$I$3,$G$2:$G$436),1),$G$2:$G$436,0))
B 열 = 이름 열 D=사무실 열 F=연도, H3 및 I3은 조회 값입니다.
열 G는 난수 집합입니다 = rand()
답변1
저는 공식 자체에 무작위화를 넣을 것입니다. 원한다면 언제든지 이 항목을 다른 열에 넣을 수 있습니다.
A열은 이름,
B열은 사무실,
C열은 연도입니다.
Cell G2는 관심 있는 사무실입니다.
Cell G3는 관심 있는 연도입니다.
=INDIRECT("A"&LARGE(IF($B$2:$B$7=G2,IF($C$2:$C$7=G3,ROW($A$2:$A$7),0),0), RANDBETWEEN(1,COUNTIFS(B:B,G2,C:C,G3))))
이는 배열 수식이므로 Ctrl+ Shift+ 를 사용하여 입력해야 합니다 Enter.
행 번호(기준이 일치하는 경우) 또는 일치하지 않는 경우 0이 있는 배열을 생성하여 작동합니다. 그런 다음N두 번째로 큰 값, 여기서N1과 기준과 일치하는 행 수 사이의 임의의 숫자입니다.
답변2
A2 아래(A1은 헤더 또는 공백임)에 이름을 반환한다고 가정하고 A2에서 이 배열 수식을 사용합니다.
=INDEX($B$2:$B$436,SMALL(IF(($D$2:$D$436=$H$3)*($F$2:$F$436=$I$3)*(COUNTIF(A$1:A1,$B$2:$B$436)=0),ROW($B$2:$B$436)-ROW($B$2)+1),RANDBETWEEN(1,SUM(($D$2:$D$436=$H$3)*($F$2:$F$436=$I$3)*(COUNTIF(A$1:A1,$B$2:$B$436)=0)))))
CTRL+ SHIFT+ 로 확인 CTRL하고 아래로 복사하세요. 함수 A$1:A1
의 범위를 COUNTIF
시작 셀 위의 셀과 일치하도록 변경하세요.
참고: - 이 방법에는 난수 열이 필요하지 않습니다.