各シートが同一フォーマットになっており、セルA1の最大値を以下のように検索しました。「max('先頭シート名:最終シート名'!A1)」
これで全シートでの最大値が分かったのはいいんですが、これがどのシートからの値なのかが不明です。返ってきた値がどのシートなのかを返す関数を考えてください。サイトの紹介一切不要です。
関数を自作すれば簡単です。
Function Macro1() As String Dim max As Long Dim strname As String For Each mySheet In Worksheets If mySheet.Range("A1").Value > i Then max = mySheet.Range("A1").Value strname = mySheet.name End If Next mySheet Macro1 = strname End Function
↑間違ってましたw
Function Macro1() As String Dim max As Long Dim strname As String Application.Volatile For Each mySheet In Worksheets If mySheet.Range("A1").Value > max Then max = mySheet.Range("A1").Value strname = mySheet.name End If Next mySheet Macro1 = strname End Function
Sheet1:Sheet3!a1というのは3-D参照形式と言います。
これは、max,sum,averageなど、限られた関数でしか使えず、match()関数などでは使えません。
なので、Sheet1!a1からSheet3!a1にデータが入っていて、Sheet4!a1に最大値を入れたとすると、Sheet4!b1に
=if(Sheet1!a1=a1,"Sheet1",if(Sheet2!a1=a1,"Sheet2","Sheet3"))
こんな式を入れてはいかがでしょうか?
100枚シートがあったら??
これはすごい。使わせてもらいます。