! 제품 버전을 정확하게 입력해 주세요.
제품 버전이 정확하게 기재되어 있지 않은 경우,
최신 버전을 기준으로 안내 드리므로
더욱 빠르고 명확한 안내를 위해
제품 버전을 정확하게 입력해 주세요!

.NET 스프레드시트 팁과 요령: LAMBDA 함수 > 블로그 & Tips

본문 바로가기

Spread.NET

블로그 & Tips

.NET 스프레드시트 팁과 요령: LAMBDA 함수

페이지 정보

작성자 GrapeCity 작성일 2022-01-25 15:15 조회 1,870회 댓글 0건

본문

첨부파일

lambda

그림 1 LAMBDA 함수 구문


Spread.NET v15의 LAMBDA 함수는 수식 구문을 사용하여 식별 이름으로 재사용 가능한 사용자 정의 함수를 생성하는 데 사용됩니다. 그런 다음 네이티브 함수와 같은 워크시트의 셀 수식에서 해당 함수를 호출합니다.


LAMBDA 함수는 간단한 복사 및 붙여넣기를 사용하여 통합 문서 간에 이식 가능하며 사용자 정의 함수 또는 시각적 함수와 같이 함수를 구현하기 위해 C# 또는 VB로 백엔드 코드를 작성하기 위한 프로그래밍이 필요하지 않습니다.


LAMBDA 함수는 통합 문서 범위의 사용자 정의 이름을 사용하여 정의해야 하며, 해당 이름은 함수의 이름이 됩니다. 참고: 마침표는 이름의 일부로 사용할 수 없습니다. Spread.NET v15는 고급 LAMBDA 함수를 생성하는 데 유용한 7 New LAMBDA 도우미 함수도 지원합니다.


이 문서에서 다룬 LAMBDA 함수의 예는 이 Excel 통합 문서에서 확인할 수 있습니다.


LAMBDA 함수는 Microsoft Excel 365 Office 참가자 베타 빌드에서만 지원되므로, 이 LAMBDA 함수의 예시 XLSX 통합 문서를 아직 LAMBDA 함수를 지원하지 않는 Excel 버전으로 로드하면 #NAME? 오류가 표시됩니다. Spread.NET v15의 30일 무료 평가판을 다운로드 하여 (Windows Forms 컨트롤과 함께 설치되는) Spread Designer 도구를 사용해 이 통합 문서를 로드할 수 있습니다. 설치 후에는 다음과 같이 GrapeCity의 시작 메뉴에서 Spread Designer 도구를 사용할 수 있습니다.


spread


이 블로그는 아래와 같이 3개의 주요 섹션과 12개의 하위 섹션으로 나뉘어져 있습니다.

  1. LAMBDA 함수의 기본 사항

    1. LAMBDA 함수 만들기

    2. LAMBDA 함수 예시

  2. LAMBDA 도우미 함수

    1. BYCOL

    2. BYROW

    3. ISOMITTED

    4. MAKEARRAY

    5. MAP

    6. REDUCE

    7. SCAN

  3. 고급 LAMBDA 함수

    1. REPLACECHARS(재귀)

    2. REVERSE(재귀)

    3. CALENDAR


LAMBDA 함수의 기본 사항


LAMBDA 함수는 LET 함수와 구문상 매우 유사합니다(블로그 참조). LAMBDA 함수를 사용하는 경우 계산에 사용되는 로컬 이름 값이 함수를 호출할 때 지정되기 때문에 해당 값을 지정할 필요가 없다는 차이점이 있습니다.


=LAMBDA([parameter1, parameter2, ...,] calculation)



Lambda 구문


parameter1, parameter2, ...(선택 사항): LAMBDA 함수에 대한 인수. LAMBDA는 인수를 최대 253개까지 가질 수 있지만 계산에 필요 없는 경우에는 인수가 없어도 됩니다.


calculation(필수): parameter1, parameter2 등을 사용하여 계산하는 식입니다.


LAMBDA와 LET 간의 주요 차이점이 몇 가지 더 있는데, 해당 내용은 고급 LAMBDA 함수 섹션에서 자세히 다룹니다.


테스트를 위해 LAMBDA 함수는 셀 수식으로 정의할 수 있습니다. LAMBDA 함수는 매개 변수 목록을 둘러싸는 괄호 '(' 및 ')'를 사용하여 셀 수식에서 직접 호출해야 합니다. 그렇지 않으면 #CALC! 오류가 반환됩니다.


=LAMBDA(temp,(5/9)*(temp-32))(104)


셀에 위의 수식을 입력하면 temp 인수에 대해 값 104를 사용하여 LAMBDA를 계산합니다.



LAMBDA 함수 만들기


다음 단계에 따라 새 LAMBDA 함수를 만듭니다.


  1. 수식 테스트 셀에서 먼저 테스트하여 계산을 위한 수식이 제대로 작동하는지 확인합니다. 계산이 보다 복잡한 경우에는 셀에서 함수에 대한 인수를 나타내는 셀의 직접적인 셀 참조와 함께 다른 셀을 입력값으로 사용하여 원하는 결과를 계산하는 보다 간단한 식을 만들면 도움이 될 수 있습니다. 이러한 접근 방식을 사용하면 Excel에서 모든 수식 디버그 도구를 사용하여 수식이 올바르게 작동하도록 할 수 있습니다.

  2. 셀에서 LAMBDA 함수 만들기 계산에 대해 작동하는 수식이 있으면 적절한 인수 이름으로 입력 셀 참조를 바꿔 수식을 LAMBDA 함수로 변환한 다음 셀에서 새 LAMBDA 함수를 테스트하여 수식에서 인수를 직접 전달합니다. 새 LAMBDA 함수가 제대로 작동하는지 확인하기 위해 몇 가지 아이디어를 시도해 볼 수 있습니다.

  3. 이름 관리자에 LAMBDA 함수 추가 LAMBDA 함수 수식을 복사한 다음 이름 관리자를 열고 LAMBDA 함수에 대해 의미 있는 이름을 입력하고 필요한 경우 사용자가 수식을 입력할 때 표시할 설명을 간단하게 입력한 후 LAMBDA 함수의 수식을 붙여 넣습니다. LAMBDA 함수 이름의 범위를 워크시트로 설정할 수 있지만 그러면 이름을 워크시트의 셀에만 사용할 수 있습니다. 일반적으로 통합 문서 범위를 사용하는 것이 좋습니다.



LAMBDA 함수 예시


이 블로그에서는 위의 연결된 통합 문서에 나오는 LAMBDA 함수 예시 중 몇 가지만 다룹니다. 첫 번째 예시는 화씨 온도를 섭씨로 변환합니다.


lambda

그림 2 LAMBDA 함수 ToCelsius의 예


ToCelsius의 예에서는 한 가지 인수 temp만 필요하고 화씨를 섭씨로 변환하는 간단한 식을 사용합니다.


LAMBDA 함수 ToCelsius의 예


=LAMBDA(temp, (5/9)*(temp-32))


간단한 대수를 사용하는, 화씨에서 섭씨를 계산하는 이 함수를 화씨로 풀어 역함수 ToFahrenheit를 계산할 수 있습니다.


lambda

그림 3 LAMBDA 함수 ToFahrenheit의 예


LAMBDA 함수 ToFahrenheit의 예


=LAMBDA(temp, (9/5)*temp+32)



LAMBDA 도우미 함수


다양한 고급 LAMBDA 함수를 쉽게 만들 수 있도록 Spread.NET에서는 7가지 새로운 도우미 함수에 대한 지원을 추가했습니다. 이러한 새 함수에서는 고급 LAMBDA 함수를 구현하기 위한 필수 지원을 제공합니다.


(MAKEARRAY를 제외하고) 이러한 함수 대부분은 논리적 루프가 필요한 LAMBDA 함수를 구현하는 데 필수적입니다. 함수 수식 구문을 사용하여 논리적 루프를 구현할 방법은 없습니다. 이러한 함수는 다음과 같습니다.


1. BYCOL

bycol

그림 4 BYCOL 함수의 예


=BYCOL(array, lambda(column))array(필수): 열로 구분되는 배열 또는 범위.lambda(column)(필수): 1개의 인수 column을 사용하는 LAMBDA로, 배열의 각 값 열에 대해 한 번 호출됩니다.


BYCOL은 array의 각 열에 LAMBDA를 적용하고 결과의 COLUMNS(array) 열 배열을 기준으로 1행을 반환합니다. 이 함수는 배열의 열을 반복하고 LAMBDA가 계산한 각 열에 대한 값을 반환해야 하는 논리를 구현하는 데 유용합니다.


첫 번째 예에서는 B22:D23의 데이터 값 {1, 2, 3; 4, 5, 6}을 참조하여 각 열의 최댓값 행 배열({4, 5, 6})을 반환합니다.



BYCOL 함수의 예 1


=BYCOL(B22:D23, LAMBDA(array, MAX(array)))


두 번째 예에서는 B29:D30의 데이터 값 {1, 2, 3; 4, 5, 6}을 참조하여 각 열의 제곱 값 합계의 행 배열({17, 29, 45})을 반환합니다.



BYCOL 함수의 예 2


=BYCOL(B29:D30,LAMBDA(array,SUMSQ(array)))



2. BYROW

byrow

그림 5 BYROW 함수의 예


=BYROW(array, lambda(row))array(필수): 행으로 구분되는 배열 또는 범위lambda(row)(필수): 1개의 인수 row를 사용하는 LAMBDA로, 배열의 각 값 행에 대해 한 번 호출됩니다.


BYROW는 array의 각 행에 LAMBDA를 적용하고 결과의 1개 열 배열로 ROWS(array) 행을 반환합니다. 이 함수는 배열의 행을 반복하고 LAMBDA가 계산한 각 행에 대한 값을 반환해야 하는 논리를 구현하는 데 유용합니다.


첫 번째 예에서는 B22:D23의 데이터 값 {1, 2, 3; 4, 5, 6}을 참조하여 각 행의 최댓값 행 배열({3; 6})을 반환합니다.



BYROW 함수의 예 1


=BYROW(B22:D23, LAMBDA(array, MAX(array)))


두 번째 예에서는 B30:D31의 데이터 값 {1, 2, 3; 4, 5, 6}을 참조하여 각 행의 제곱 값 합계의 행 배열({14; 77})을 반환합니다.



BYROW 함수의 예 2


=BYROW(B30:D31, LAMBDA(array, SUMSQ(array)))



3. ISOMITTED

isomitted

그림 6 ISOMITTED 함수의 예


=ISOMITTED(argument)argument(필수): 생략 여부를 확인하는 LAMBDA 인수


LAMBDA argument가 생략되면 ISOMITTED가 True를 반환합니다. 이 함수는 REDUCE 및 SCAN에 필요한 initial value 인수와 같은 선택적 인수를 수락하는 LAMBDA를 구현하는 데 유용합니다.


이 예에서는 필요한 인수가 누락된 경우 익숙한 오류 문자열을 반환하는 방법을 보여 줍니다.



ISOMITTED 함수의 예


=LAMBDA(x, y, IF(ISOMITTED(y), "Missing second argument", x+y))(1,)


LAMBDA는 셀에서 직접 사용되므로 정의된 직후 인라인으로 호출해야 합니다. 그렇지 않으면 #CALC! 오류가 반환됩니다.



4. MAKEARRAY(rows, columns, lambda(row, column))

makearray

그림 7 MAKEARRAY 함수의 예


=MAKEARRAY(rows, columns, lambda(row, column))rows(필수): 배열의 행 수.columns(필수): 배열의 열 수.lambda(row, column)(필수): 2개의 인수 rowcolumn을 사용하는 LAMBDA로, 배열 셀의 행 및 열 인덱스를 지정합니다.


MAKEARRAY는 LAMBDA를 적용하여 지정된 크기의 계산된 배열을 반환합니다. 이 함수는 지정된 크기의 새로운 배열을 생성하고 행 및 열 인덱스가 포함된 LAMBDA를 사용하여 값을 계산하는 데 유용합니다.


이 예에서는 rowscolumns에 대해 각각 C48 및 E48의 값(10 및 5)을 참조하여 문자열 "Red", "Blue" 및 "Green"에서 임의의 값 배열을 생성합니다(이 값은 각 계산 주기를 무작위로 바꿈).


MAKEARRAY 함수의 예


=MAKEARRAY(C48, E48, LAMBDA(row, col, CHOOSE(RANDBETWEEN(1,3), "Red", "Blue", "Green")))


5. MAP 함수

map

그림 8 MAP 함수의 예


=MAP(array1, lambda_or_array<#>, ...)array1(필수): 매핑할 값의 배열.lambda_or_array<#>(필수): 매핑할 값의 다음 배열 또는 각 배열에 대해 한 개의 인수를 사용하는 LAMBDA.


MAP는 한 개의 인수를 사용하는 LAMBDA를 지정된 각 배열에 적용해 지정된 배열의 각 값을 새 값으로 매핑하여 배열을 반환합니다. 명확하게 설명하면 이 함수는 array1에서 한 개 이상의 배열을 지정해야 합니다.


또한 이 함수는 한 개 이상의 후속 배열 인수를 지정할 수 있는데, 이때 마지막 인수는 정의된 배열 수와 동일한 수의 인수를 사용하는 LAMBDA를 지정합니다.


LAMBDA는 array1의 각 요소에 대해 호출되고 array1의 요소 값과 각각의 다른 배열에서 해당하는 요소의 각 값을 전달합니다. 이 함수는 LAMBDA를 적용하여 array1과 크기가 같은 새 배열로 한 개 이상의 배열 요소를 매핑합니다.


이 예에서는 B19:D20의 데이터 값 {1, 2, 3; 4, 5, 6}을 참조하여 4보다 큰 원래 배열의 각 값이 거듭 제곱된 값의 배열을 반환합니다({1, 2, 3; 4; 25; 36}).


MAP 함수의 예

=MAP(B19:D20, LAMBDA(a, IF(a>4, aa, a1)

"a1"을 포함하면 값을 정수 유형으로 강제하고 #CALC! 오류를 방지합니다.



6. REDUCE 함수

reduce

그림 9 REDUCE 함수의 예


=REDUCE([initial value], array, lambda(accumulator, value))initial value(선택 사항): 누적기의 초기 값.array(필수): 단일 값으로 줄일 배열.lambda(accumulator, value)(필수): 2개의 인수 accumulatorvalue를 사용하는 LAMBDA로, array의 각 요소에 대해 한 번 호출됩니다.


REDUCE 함수는 각 값에 LAMBDA를 적용하고 accumulator에 합계 값을 반환하여 array를 누적된 값으로 줄입니다. 이 함수는 배열 요소를 반복하고 array의 각 요소에 LAMBDA를 적용해야 하는 LAMBDA를 구현하는 데 유용합니다.


지정된 경우(또는 값이 0인 경우) LAMBDA의 accumulator 인수는 initial value로 초기화됩니다. LAMBDA가 곱셈 연산(예: accumulator = accumulator * value)을 수행하는 경우 initial value로 1을 지정해야 합니다.


LAMBDA는 array의 각 값에 대해 왼쪽에서 오른쪽으로, 위에서 아래로 이동하며 호출되고 이전 LAMBDA 호출의 accumulator 값이 LAMBDA에 대한 성공적인 각 호출로 전달됩니다. accumulator의 최종 결과가 REDUCE에서 반환됩니다.


이 예에서는 B23:D24의 데이터 값 {1, 2, 3; 4, 5, 6}을 참조하여 제곱 값의 합계(91)를 반환합니다.


REDUCE 함수의 예


=REDUCE(, B23:D24, LAMBDA(a, b, a+b^2))



7. SCAN 함수

scan

그림 10 SCAN 함수의 예


=SCAN([initial value], array, lambda(accumulator, value))initial value(선택 사항): Initial value for accumulator array(필수): 스캔할 배열.lambda(accumulator, value)(필수): 2개의 인수 accumulatorvalue를 사용하는 LAMBDA로, array의 각 요소에 대해 한 번 호출됩니다.


SCAN 함수는 REDUCE와 유사하게 작동하지만 accumulator에서 최종값만 반환하는 대신 SCAN은 REDUCE가 계산한 중간 값의 배열을 반환한다는 점이 다릅니다.


반환된 배열의 각 요소는 array의 배열 요소에 대해 accumulator에서 LAMBDA가 반환한 중간 값입니다. SCAN은 array와 크기가 같은 단일 배열에 각 LAMBDA 호출에서 REDUCE가 계산한 모든 값을 반환합니다.


첫 번째 예에서는 B22:D23의 데이터 값 {1, 2, 3; 4, 5, 6}을 참조하여 계승값 목록({1, 2, 6; 24, 120, 720}<)을 반환합니다.



SCAN의 예 1


=SCAN(1, B22:D23, LAMBDA(a, b, a*b))


두 번째 예에서는 B30:D31의 데이터 값 {"a", "b", "c"; "d", "e", "f"}을 참조하여 이전 값과 연결된 값({"a", "ab", "abc"; "abcd", "abcde", "abcdef"})을 반환합니다.



SCAN의 예 2


=SCAN("", B30:D31, LAMBDA(a, b, a&b))



고급 LAMBDA 함수


LAMBDA 함수는 반환할 값을 계산하기 위해 도우미 함수 및/또는 재귀를 사용하여 구현됩니다. LAMBDA 함수는 무한 루프가 되지 않는 한 계산의 일부로 이름 관리자에서 함수에 할당한 이름을 사용하여 자신을 재귀적으로 호출할 수 있습니다.


LAMBDA 함수는 계산의 일부로 다른 LAMBDA 함수를 호출할 수 있고 호출한 함수 중 일부는 재귀를 사용하여 구현할 수 있습니다. 또한 위에서 설명한 도우미 함수처럼 LAMBDA 함수 인수가 필요한 LAMBDA 함수를 정의할 수 있습니다.



LET 함수와 LAMBDA


재귀 LAMBDA를 사용하여 이름을 지정하는 LET 함수는 로컬 이름 정의를 지원하지 않습니다. 따라서 이 함수를 LAMBDA를 구현하는 데 사용하면 안 됩니다.



ReplaceChars 함수

chars

그림 11 REPLACECHARS 함수의 예



REPLACECHARS 함수

=LAMBDA(str, chars, sub
IF(chars="",
  str,
  ReplaceChars(
    SUBSTITUTE(str, LEFT(chars), sub),
    MID(chars,2,LEN(chars) - 1),
    sub
  )
)
)


REPLACECHARS 함수는 세 개의 인수 str(대체되는 문자가 포함된 문자열), chars(대체되는 문자), sub(문자를 대체할 문자열)를 사용하는 재귀 LAMBDA 함수입니다.


재귀의 종료 조건은 chars가 비어 있는 경우인데, 이때 대체할 것이 더 이상 없기 때문에 str이 반환됩니다.


그렇지 않으면 이 함수는 chars의 첫 번째 문자의 모든 발생을 sub로 대체하는 SUBSTITUTE의 반환 값이 되는 strchars에서 첫 번째 문자를 제거하고 각 재귀 수준 전체에 sub를 전달하는 MID의 반환 값인 chars를 사용하여 자신을 재귀적으로 호출합니다.



Reverse 함수

reverse

그림 12 REVERSE 함수의 예


REVERSE 함수는 HEAD 및 TAIL이라는 도우미 함수 두 개를 사용하는 또 다른 재귀 LAMBDA 함수입니다.



HEAD 함수

=LAMBDA(str,
IF(str="",
  "",
  LEFT(str, 1)
)
)


HEAD 함수는 단일 인수 str을 사용하여 str이 비어 있는 경우에는 빈 문자열 ""을 반환하고 비어 있지 않은 경우에는 str의 맨 왼쪽 문자를 반환합니다.



TAIL 함수

=LAMBDA(str,
IF(str="",
  "",
  RIGHT(str, LEN(str) - 1)
)
)

TAIL 함수는 단일 인수 str을 사용하여 str이 비어 있는 경우에는 빈 문자열 ""을 반환하고 비어 있지 않은 경우에는 RIGHT 및 LEN을 사용하여 str의 첫 번째 문자를 제거합니다. RIGHT 및 LEN의 사용은 기능적으로 위 REPLACECHARS 함수의 예에서 MID 및 LEN을 사용한 것과 같습니다.



REVERSE 함수

=LAMBDA(str,
IF(LEN(str)<2,
  str,
  REVERSE(TAIL(str)) & HEAD(str)
)
)


REVERSE 함수는 단일 인수 str을 사용하여 길이가 2 미만인지 확인하고 2 미만인 경우에는 순서를 뒤집을 것이 없기 때문에(종료 조건) str을 반환합니다.


그러지 않으면 이 함수는 str을 사용하여 재귀적으로 자신을 호출하여 TAIL(str)(첫 번째 문자 제거)이 되고 그런 다음 HEAD(str)(str의 첫 번째 문자)와 연결됩니다.



Calendar 함수

calendar

그림 13 CALENDAR 함수의 예


CALENDAR 함수는 첫 번째 배열을 두 번째 배열 위에 쌓아 배열 두 개를 세로 배열 하나로 연결하는 도우미 LAMBDA 함수 VCAT를 사용하여 구현됩니다.



VCAT 함수

=LAMBDA(top, bot,
LET(width, MIN(COLUMNS(top), COLUMNS(bot)),
  topH, ROWS(top),
  MAKEARRAY(ROWS(bot)+topH, width,
    LAMBDA(i, j,
      IF(i < topH,
        INDEX(top, i, j),
        INDEX(bot, i-topH, j)
      )
    )
  )
)
)


이 도우미 LAMBDA 함수는 재귀를 사용하지 않으므로 LET 함수 사용이 문제가 되지 않습니다. 덕분에 이 함수는 상대적으로 쉽게 이해할 수 있습니다. topbot 인수는 연결할 배열 두 개를 지정하고 widthtopbot의 열 수 중 더 작은 값으로 설정됩니다.


Tophtop에 대한 행 수로 설정됩니다. MAKEARRAYtopbot의 행 개수 합과 같은 rowswidth와 같은 columns를 사용하여 새 배열을 생성하는 데 사용됩니다.


top에서 가져온 첫 번째 topH 행의 값과 bot에서 가져온 나머지 행의 값. 매번 INDEX를 사용하여 적절한 배열의 값을 반환합니다.


또한 CALENDAR 함수 역시 월과 요일의 이름을 사용하여 달력을 생성하기 위한 월과 요일 이름을 조회합니다.


Months

={"Jan"; "Feb"; "Mar"; "Apr"; "May"; "Jun"; "Jul"; "Aug"; "Sep"; "Oct"; "Nov"; "Dec"}


Days

={"Mon"; "Tue"; "Wed"; "Thu"; "Fri"; "Sat"; "Sun"}

어떠한 재귀도 사용하지 않기 때문에 CALENDAR 함수는 VCAT를 사용하고 LET 함수도 사용합니다.



CALENDAR 함수

=LAMBDA(serial, mark,
LET(daysInMonth, EOMONTH(serial, 0)-EOMONTH(serial, -1),
  foMonth, DATE(YEAR(serial), MONTH(serial), 1),
  dayPadding, WEEKDAY(foMonth, 2)-1,
  calendarRows, ROUNDUP((dayPadding+daysInMonth)/7, 0),
  body, MAKEARRAY(calendarRows, 7,
    LAMBDA(i, j,
      LET(seqNum, ((i-1)*7+j)-dayPadding,
        IFS(seqNum<=0, "",
          seqNum=DAY(serial), IF(mark, "X", seqNum),
          seqNum<=daysInMonth, seqNum,
          TRUE, ""
        )
      )
    )
  ),
  vcat(
    MAKEARRAY(1, 7,
      LAMBDA(i, j,
        IF(j=1,
          INDEX(months, MONTH(serial)),
          IF(j=2,
            YEAR(serial),
            ""
          )
        )
      )
    ),
    MAKEARRAY(calendarRows+1, 7,
      LAMBDA(i, j,
        IF(i=1,
          INDEX(days, j, 1),
          INDEX(body, i-1, j)
        )
      )
    )
  )
)
)


CALENDAR 함수는 생성할 월의 달력에 사용할 일련의 날짜를 지정하고, 날짜에 "X" 표시를 할지(mark = true) "X" 표시를 하지 않을지(이 경우 다른 날과 마찬가지로 날짜가 표시됨) 여부를 나타내기 위한 부울 플래그를 지정하는 serialmark라는 두 인수를 사용합니다.


달력을 생성하려면 먼저 daysInMonth(해당 월의 날짜 수), foMonth(해당 월의 첫날), dayPaddding(이전 월의 첫 번째 행에 포함할 패딩 일 수) 및 calendarRows(해당 월을 표시하는 데 필요한 행 수)에 필요한 로컬 변수를 정의 및 계산합니다.


body는 달력 본문의 날짜 값 배열을 생성(또는 mark가 true인 경우 serial의 셀에 "X"를 배치)하기 위해 MAKEARRAY 및 다른 LET 함수를 사용하여 정의 및 계산됩니다.

마지막으로 VCAT는 생성된 배열 두 개를 결합하는 데 사용됩니다. 첫 번째 배열은 처음 두 셀에 해당 월 및 연도를 표시하는 달력의 머리글을 구성하고, 두 번째 배열은 달력 머리글 행 아래 첫 행에는 요일 이름을, 해당 행 아래에는 본문의 각 행을 표시하는 달력 본문을 구성합니다.





지금 바로 Spread.NET을 다운로드하여 직접 테스트해보세요!

 
  • 페이스북으로 공유
  • 트위터로  공유
  • 링크 복사
  • 카카오톡으로 보내기

댓글목록

등록된 댓글이 없습니다.

메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기

태그1

인기글

더보기
  • 인기 게시물이 없습니다.
메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기
이메일 : sales-kor@mescius.com | 전화 : 1670-0583 | 경기도 과천시 과천대로 7길 33, 디테크타워 B동 1107호 메시어스(주) 대표자 : 허경명 | 사업자등록번호 : 123-84-00981 | 통신판매업신고번호 : 2013-경기안양-00331 ⓒ 2024 MESCIUS inc. All rights reserved.