2012-04-29 5 views
8

私は現在、私のExcelファイルに2つのワークシートを持っています。最後のシートを常に参照するように式を取得するにはどうすればよいですか?

第1のシートは、第2のシートの要約結果を表示する「要約」ページとして知られています。

2番目のシートは生データとして知られています。たとえば、Fruitsという名前の列があります。第一シートにおいて

Apple 
Apple 
Apple 
Banana 
Banana 
Pear 

、Iは、それぞれの果実が表示され、結果が異なるセルに表示される時間の数をカウントする式を有するであろう。

=COUNTIF(Fruits!A2:A7,"Apple") 
=COUNTIF(Fruits!A2:A7,"Banana") 

私は何をしたいことは、あるそれは私が式をプログラムすることは可能であるように、私は生データの新しいシート(3枚目)を追加するたび、最初のシート上の統計情報への参照することが可能であること情報を入手する最新のシート。

(データおよびすべての位置決めは第二のシートと同じであると仮定。)

私がこれまでに行っていることは常にの名前を取得することができます機能GETLASTWSNAME()で出てくることです最後のワークシートcountif式自体の中に関数を入れ子にすることは、まったく不可能に思えます。

=COUNTIF((GETLASTWSNAME())!A2:A7,"Apple) 

上記の式は、私は私の式が仕事をしたいかですが、悲しいことにExcelは、私はそれを行うことはできません。

コメントをいただければ幸いです。ありがとう!

+0

あなたは「実際の」最後のシートに名前を付け、あなたが新しい実際のシートを作成するときに「4月」に名前を変更することができますか? – Aprillion

+1

申し訳ありません。私はあなたが本当に意味するものは得られないのですか? – Thomas

+0

nevermind、シートの名前を変更すると自動的に自動的に新しい名前が使用されることを忘れています。 – Aprillion

答えて

6

=COUNTIF(INDIRECT(GETLASTWSNAME() & "!A2:A7"),"Apple")

10

あなたは

  1. を好む場合は、シート名の配列を保持するために、wshNamesを範囲名を定義するVBAをこのためXLM /レンジ名の回避策を使用してすることはできません
    =RIGHT(GET.WORKBOOK(1),LEN(GET.WORKBOOK(1))-FIND("]",GET.WORKBOOK(1)))
    Uses David Hager's technique
  2. シート名
    01の配列から最後のシート名を抽出するために、このExcelの数式を使用します

この式は、すべてのシートを見て、最後に(COUNTAを使用して)返します。 RAND()*0)部分は変更が発生したときに、あなたがあなたのGETLASTWSNAME機能は揮発性であることを確認する必要がありますすなわちそれが更新さをVBAを使用しない場合はExcelが

をしたときに式は揮発性であり、アップデートすることを保証します。

enter image description here

+3

+1情報提供中! –

関連する問題