Excel

MakeArray 함수로 구구단 만들기

별동산 2024. 1. 14. 09:09
반응형

1. MakeArray 함수

가. 구문

=MAKEARRAY(rows, cols, lambda(행, 열))

 

지정된 행과 열의 크기로 Lambda함수를 이용해 행과 열 값이 입력된 계산 값을 반환합니다.

 

나. 예시

o 행과 열을 곱한 값 반환하기

=MAKEARRAY(3,3,LAMBDA(row,col,row*col))

 

 

3*3의 배열을 만드는데

행이 고정된 상태에서 열의 크기가 변합니다.

 

For~Next 반복문과 매우 유사합니다.

 

 

o For ~ Next 반복문과 비교

위와 같은 결과를 아래와 같이 매크로를 만들어서 얻을 수 있습니다.

Sub maparr()
    Dim row As Integer, col As Integer
    For row = 1 To 3
        For col = 1 To 3
            Cells(row + 4, col) = row * col
        Next
    Next
End Sub

 

 

차이점이라면 MakeArray 함수로 만들면 배열로 반환되고, For ~ Next 반복문으로 만들면 일정한 범위 내에 값이 반환된다는 것입니다.

 

위 매크로 문에서 row를 그대로 쓰면 MakeArray 함수의 결과와 위치가 같기 때문에 row+4로 4칸 아래 쓰도록 했습니다.

 

2. 구구단 만들기

구구단은 2단부터 시작하지만 rows와 cols는 1부터 시작하기 때문에 1단부터 만들어집니다.

 

가. 1단계 : 계산 값만 표시하기

수식을 만들면

=MAKEARRAY(9,9,LAMBDA(r,c,c*r))입니다.

 

행과 열의 크기를 9로 하고,

Lambda 식을 만드는데,

rows는 r로 받고, cols는 c로 받은 다음 반복을 하는데,

마찬가지로 행이 고정된 상태에서 열이 변합니다.

곱하기이므로 r*c나 c*r이나 결괏값은 같습니다.

 

나.  2단계 : 수식과 계산 값 모두 표시하기

=MAKEARRAY(9,9,LAMBDA(r,c,c&" * "&r&" = "&c*r))

 

값은 c*r인데 수식을 c*r=c*r로 표현해야 하므로

&(결합 연산자)를 이용해 값과 문자를 결합해야 합니다.

 

위 수식에서 c, r은 변하는 수이고, *와 =은 문자입니다.

 

따라서, c&" * "&r&" = "&c*r이 되는 것입니다.

보기 좋도록 문자 좌우에 공백 한 칸씩을 넣었습니다.

 

수식에서 r과 c의 위치를 바꾸면 아래와 같이 구구단이 세로가 아닌 가로로 만들어집니다.

makearray 함수를 이용한 구구단 만들기.xlsm
0.02MB

반응형