
다음과 같은 두 개의 배열이 있습니다.
{a,b,c}
{d,e,f}
이 배열을 어떻게 구하나요?
{a*d,b*e,c*f}
예를 들어 한 배열은 {0,1,1}이고 다른 배열은 {255,122,0}입니다. 이 배열이 필요합니다.
{0,122,0}
정말 간단합니다.
이는 이 스레드와 관련이 있습니다.Excel: 필터링된 범위에서 0이 아니고 비어 있지 않은 마지막 셀 조회
이 공식 SUBTOTAL(2,OFFSET(R5,ROW(R5:R200)-ROW(R5),0))은 필터링된 데이터(표시)에 대해 1을 제공하고 필터링된 데이터(보이지 않음)에 대해 0을 제공한다는 것을 발견했습니다. 따라서 이것은 0 또는 1의 196개 요소로 구성된 배열입니다.
또 다른 배열인 OFFSET(R5,ROW(R5:R200)-ROW(R5),0)은 기본적으로 R5:R200입니다.
한 배열의 각 요소를 다른 배열의 해당 요소와 다중화하고 새 배열을 얻을 수 있는 경우 다음 LOOKUP은 필터링된 데이터에서 0이 아닌 마지막 숫자를 제공합니다.
=LOOKUP(2,1/NEW-ARRAY,R5:R200)
이는 SUBTOTAL 배열이 필터링된(표시되는) 각 셀에 대해 1을 제공하고 여기에 셀 내용을 곱할 때 내용이 0인 표시되는 셀이 새 배열에서 0이 되기 때문입니다({0,1,1의 두 번째 1) } 곱하기 0({255,122,0})). 따라서 마지막 0이 아닌 셀은 LOOKUP에 의해 선택됩니다.
답변1
@Jeeped가 언급한 대로 INDEX를 사용하세요.
INDEX({0,1,1}*{255,122,0},0)
그러면 배열 {0,122,0}이 다른 수식으로 반환됩니다.
보시다시피 숫자를 합하면 다음과 같습니다.
=SUM(INDEX({0,1,1}*{255,122,0},0))
122를 반환합니다.
답변2
답변3
A1, B1, C1 셀에 각각 1, 2, 3이 있다고 가정해 보겠습니다. 그리고 셀 A2, B3, C2에는 각각 4, 5, 6이 있습니다.
A3 셀에 다음 수식을 입력할 수 있습니다.
= A1:C1 * A2:C2
그리고 각각 A3, B3 및 C3으로 유출되는 {4,10,18} 배열을 생성합니다.