首页 > 解决方案 > SAS ODS 是否支持 Excel 数组公式 (CSE-Formulas)?

问题描述

SAS ODS 是否支持 Excel ArrayFormulas (CSE-Formulas)?如果是这样,正确的语法是什么?

有没有办法在 ODS 中编写 Excel ArrayFormulas?要创建旧版 ArrayFormulas(2018 之前),您需要在 Excel 中按 Ctrl+Shift+Enter。但是,我需要在 SAS ODS 中执行此操作以进行自动报告。我正在使用 SAS Data Integration Studio 4.8 和 Microsoft Office 2010。

到目前为止我所拥有的:

[tagattr= "formula: =COUNT(1/FREQUENCY(IF((SUBTOTAL(3,OFFSET(R[+4]C[-15],ROW(R[+4]C[-15]:R[+&anzahlZeilen.]C[-15])-ROW(R[+4]C[-15]),0))=1) * (R[+4]C[-15]:R[+&anzahlZeilen.]C[-15]<>""""), MATCH(R[+4]C[-15]:R[+&anzahlZeilen.]C[-15],R[+4]C[-15]:R[+&anzahlZeilen.]C[-15],0)), ROW(INDIRECT(""1:""&COUNTA(R[+4]C[-15]:R[+&anzahlZeilen.]C[-15])))))

这导致以下 Excel 公式(公式的复杂性无关紧要): 

=COUNT(1/FREQUENCY(IF((SUBTOTAL(3;OFFSET(C10;ROW(C10:C4293)-ROW(C10);0))=1) * (C10:C4293<>""); MATCH(C10:C4293;C10:C4293;0)); ROW(INDIRECT("1:"&COUNTA(C10:C4293)))))

结果是我正在寻找的结果(与上面相同,但用 {} 封装):

{=ANZAHL(1/HÄUFIGKEIT(WENN((TEILERGEBNIS(3;BEREICH.VERSCHIEBEN(C10;ZEILE(C10:C4293)-ZEILE(C10);0))=1) * (C10:C4293<>""); VERGLEICH(C10:C4293;C10:C4293;0)); ZEILE(INDIREKT("1:"&ANZAHL2(C10:C4293)))))}

标签: excelexcel-formulasasexcel-2010ods

解决方案


推荐阅读