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)))))}