0

初めてのポスター。比較のために年初来のカウントを維持するために、以前の日付のワークシートからセルを合計しようとしています。ワークブックの現在のセットアップ方法では、各ワークシートに 1 年分のデータがあり、使用されるデータは月次レポートです。月次レポートは、私の「テンプレート」ワークシートに貼り付けられます。これらのデータは、別のワークシートで時系列に編成されます。各ワークシートの名前は、データが対応する年です。1 年を通して新しいデータを追加する場合、同様の時間枠を比較するために、前年からの年初来の合計を取得したいと考えていました。これが現在の私の式です。

=SUM(INDIRECT("'"&LEFT($A13,4)&"'!C17:OFFSET(C$16,MONTH(RIGHT(Template!C$3,10)))"))

LEFT($A13,4)現在のワークシートに挿入する年を参照しMONTH(RIGHT(Template!C$3,10))、現在のレポートの月数を識別します。したがって、2015 年 5 月の場合、Left($A13, 4)が返さ"2014"MONTH(RIGHT(Template!C$3,10))、 の値が返されます5

明らかなように、昨年のワークシートにある年次系列の最初から集計を開始し、今年のOFFSET現在の報告月で終わる月のみを使用して集計を開始しようとしています。年初来の変更を行います。#REF!これを行おうとすると、これが Excel に返されます。第一印象は、関数としてINDIRECT認識しておらず、テキストとして扱っているようです。OFFSETこれを回避する方法はありますか?

同様のものが以前に投稿されましたが、私の状況に翻訳できませんでした。どんな助けでも大歓迎です。

4

2 に答える 2

0

私の質問への回答を投稿するために時間を割いていただきありがとうございます。以前に想像していたよりもはるかに実行可能な解決策を見つけたと思います。ちょうど 1 年分のデータを含む年次ワークシートのみを作成する代わりに、新しいワークシートの最後にレポートを追加して、時系列全体を「Raw Data」というタイトルのシートの列「A」に含めています。月末日を含む新しいワークシート。これは、「Raw Data」シートに新しいレポートを追加するための私の式です。

=IF(AND(YEAR($A2)=YEAR(Template!$F$4), MONTH('Raw Data'!$A2)=MONTH(Template!$F$4)),Template!C$35," ")

Template!$F$4レポートに記載されている日付を参照します。

私の年次ワークシートは、関数を使用する必要をなくすために「Raw Data」シートを参照していINDIRECTます。「生データ」の列「C」にあるデータの年初来の合計を維持するために、ここに私の式があります。

=SUM(INDEX('Raw Data'!C:C,(MATCH(EOMONTH($A17,-12),'Raw Data'!$A:$A,0))):OFFSET(INDEX('Raw Data'!C:C,(MATCH(EOMONTH($A17,-13),'Raw Data'!$A:$A,0))),MONTH(RIGHT(Template!$F$4,10)),0))

EOMONTH($A17, -12)常に前年の 1 月を参照するように設定されています。これは、によって参照され、合計OFFSETされたレポートで見つかった月の数によって計算されます。MONTH(RIGHT(Template!$F$4,10))

于 2015-06-19T18:10:06.767 に答える
0

データなしで複製するのは難しいので、これは価値があると考えてください...

数式を分解すると (1 行に 1 つの個別の引数)、次のようになります。

=SUM(
  INDIRECT(
    "'"
    &
    LEFT($A13,4)
    &
    "'!C17:OFFSET(C$16,MONTH(RIGHT(Template!C$3,10)))"
  )
)

つまり、行頭"'!C17:OFFSET(...は引用符で囲まれているため、Excel によってテキストとして扱われている可能性があります。あなたはおそらくしたいです

=SUM(
  INDIRECT(
    "'"
    &
    LEFT($A13,4)
    &
    "'!"
    &
    C17
    &
    ":"
    &
    OFFSET(C$16,MONTH(RIGHT(Template!C$3,10)))
  )
)

すべての構文 ( '!:など) をINDIRECT文字列としてフィードし、すべてのセル値を数式の結果としてフィードするため。

于 2015-06-19T02:08:16.373 に答える