エクセルの質問。

各シートが同一フォーマットになっており、セルA1の最大値を以下のように検索しました。「max('先頭シート名:最終シート名'!A1)」
これで全シートでの最大値が分かったのはいいんですが、これがどのシートからの値なのかが不明です。返ってきた値がどのシートなのかを返す関数を考えてください。サイトの紹介一切不要です。

回答の条件
  • 1人2回まで
  • 登録:2007/02/17 01:15:01
  • 終了:2007/02/21 01:01:13

回答(3件)

id:SALINGER No.1

SALINGER回答回数3454ベストアンサー獲得回数9692007/02/17 01:33:01

関数を自作すれば簡単です。

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
id:SALINGER No.2

SALINGER回答回数3454ベストアンサー獲得回数9692007/02/17 01:46:43

ポイント75pt

↑間違ってました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
id:keronimo

これはすごい。使わせてもらいます。

2007/02/21 01:00:40
id:drill256 No.3

かえる回答回数175ベストアンサー獲得回数72007/02/17 12:44:09

ポイント5pt

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

こんな式を入れてはいかがでしょうか?

id:keronimo

100枚シートがあったら??

2007/02/21 01:00:42

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません