2017-11-20 16 views
0

배열 수식은 Ctrl + Shift + Enter를 사용하여 Excel에 입력 한 수식입니다.배열 수식 입력 방법

Excel API를 사용하면 배열 수식 (Range.formulas 속성)을 읽을 때 [["{=SUM(IF(A1:A10>50,1))}"]]과 같은 결과가 표시됩니다.

이 수식을 다시 워크 시트에 쓰려고하면 괄호로 인해 상수 문자열이 입력됩니다. 대괄호를 삭제하고 수식을 입력하면 배열이 아닌 일반 수식으로 입력됩니다.

배열 수식을 어떻게 입력합니까?


VBA에서 배열 수식을 읽을 때 대괄호가없는 수식이 반환됩니다. 배열 수식을 입력하려면 range.FormulaArray = =SUM(IF(A1:A10>50,1)) (괄호없이)을 씁니다.

plataform (JS 및 VBA)을 일관되게 유지하고 Range.FormulaArray, Range.HasArrayRange.CurrentArray과 같은 속성을 제공하는 것이 좋습니다.

+0

'= countif (a1 : a10, "> 50")' – Jeeped

+0

와 같이 작성 해주셔서 감사합니다.하지만이 공식은 예제로만 사용되었습니다. 진짜 질문은 Excel JavaScript API를 사용하여 배열 수식을 입력하는 방법입니다. –

답변

1

Range.formulas 속성은 범위 내의 개별 셀에 대한 수식을 읽거나 설정하는 데 사용할 수 있습니다. 다음 코드 조각은 C3:D5 값을 (2 차원 값 배열을 지정하여) 채우고 Range.formulas 속성을 설정하여 (2 차원 배열 수식 지정) 셀 D5의 수식 (즉, 셀이 위치한 셀 지정된 범위의 3 행 2 열)은 =SUM(D3,D4)입니다.

Excel.run(function (ctx) { 
    var sheetName = "Sheet1"; 
    var rangeAddress = "C3:D5"; 
    var values = [["First Number", 1000], ["Second Number", 200], ["Difference", null]]; 
    var formulas = [[null, null], [null, null], [null, "=SUM(D3,D4)"]]; 
    var range = ctx.workbook.worksheets.getItem(sheetName).getRange(rangeAddress); 
    range.values = values; 
    range.formulas = formulas; 
    range.load('text'); 

    return ctx.sync().then(function() { 
     console.log(range.text); 
     console.log(range.formulas); 
    }); 
}).catch(errorHandlerFunction); 

다시 당신이 Office Developer Platform UserVoice이 제안을 추가 할 경우, 언급 한 추가 속성에 대한 지원을 추가, 다른 사용자는 감각을 얻을 수있는 오피스 PM 팀을 가능하게, 거기에 대한 투표를하실 수 있습니다 API에 대한 향후 개선 계획을 세우면서 전반적인 우선 순위/요구 사항을 제시합니다. 현재 지원되지 않습니다 (당신이 Ctrl 키 + UI에를 입력 + Shift 키를 사용하는 것처럼)을 배열 수식을 설정 엑셀 자바 스크립트 API를 사용하여 UPDATE


. Office 개발자 플랫폼 UserVoice는 this feature request을 추적 할 수있는 올바른 위치입니다.

+0

감사합니다 Kim,하지만 배열 수식은 워크 시트 배열에 쓰여진 수식이 아니며 배열 수식은 'Ctrl + Shift + Enter'로 입력 된 수식입니다. 이 기능에 대한 제안 링크는 https://officespdev.uservoice.com/forums/224641-feature-requests-and-feedback/suggestions/19008853-add-array-formula-support-to-the-excel-office- 추가하고 난 그냥 upvoted. –

+0

설명해 주셔서 감사 드리며 펠리페 (Felipe)와 UserVoice의 기능 요청을 upvoting 해 주셔서 감사합니다. 나는 의견에 여기에서 그것을 보지 못할 수도있는 누군가를 위해서이 정보를 답에 추가했습니다. 다시 한번 감사드립니다. –

+0

감사! 업데이트 텍스트를 (...)으로 수정해야한다고 생각합니다. 현재 지원되지 않습니다. (...) –