0

SQL から配列に次の式を生成し、ワークシートの範囲に設定するクエリがありますが、読みにくいです。

=SUMIF(INDIRECT(ADDRESS(ROW()-1,5)&":"&ADDRESS(ROW()-6,5)),"+",INDIRECT(ADDRESS(ROW()-1,COLUMN())&":"&ADDRESS(ROW()-6,COLUMN())))-SUMIF(INDIRECT(ADDRESS(ROW()-1,5)&":"&ADDRESS(ROW()-6,5)),"-",INDIRECT(ADDRESS(ROW()-1,COLUMN())&":"&ADDRESS(ROW()-6,COLUMN())))

それで、追跡しやすいようにアドレス部分だけを変更する方法がエクセルに含まれていますINDIRECT(ADDRESS(ROW()-1,5)&":"&ADDRESS(ROW()-6,5))E10:E5

数式は、ワークシートに設定する前に動的に生成する必要があるため (つまり、動的な列と行)、配列をセルに設定した後に単純化する必要があります。

Evaluateどのメソッドでも、Excel の関数と同様のことを実行できますがINDIRECTADDRESSユーザーが次のような単純な式を読み取ることができるのは適用のみです。=SUMIF(E10:E5,"+",J10:J5)-SUMIF(E10:E5,"-",J10:J5)

4

1 に答える 1

1

R1C1数式を簡略化するために、参照スタイルを に変更するか、または を使用して、RC 表記で入力できます.FormulaR1C1。RC 表記の利点は、式のテキストが列全体で一貫していることです。上記の式では、次のいずれかを入力できます。

=SUMIF(R[-6]C5:R[-1]C5,"+",R[-6]C:R[-1]C)-SUMIF(R[-6]C5:R[-1]C5,"-",R[-6]C:R[-1]C)

また=SUM(SUMIF(R[-6]C5:R[-1]C5,{"+","-"},R[-6]C:R[-1]C)*{1,-1})

また、数式はA1表記法で読みやすくする必要があります。

于 2012-08-14T08:18:50.653 に答える