2016-07-10 4 views
1

min/maxを検索すると、結果だけでなくセル名も結果と同様に範囲名になります。Excel - セル名と範囲名を取得する

= MAX(B2:C20)

最大はB6で100あり、B6は、したがって、私たちが取得できる式がしたい週1

と呼ばれる名前付き範囲の一部です:

100 、B6、WEEK 1

私はこれを探して徹夜しています。

多くのありがとうございます。この場合

答えて

1

I名前WEEK1を有すること範囲B5:B7を定義:

enter image description here

この短いUDF()

Public Function FindMax(rIN As Range) As String 
    Dim mx As Variant, rF As Range, N As Name 
    mx = Application.WorksheetFunction.Max(rIN) 
    Set rF = rIN.Find(What:=mx, After:=rIN(1)) 

    For Each N In ThisWorkbook.Names 
     If Not Intersect(rF, Range(N.RefersTo)) Is Nothing Then 
      lab = N.Name 
     End If 
    Next N 

    FindMax = mx & ", " & rF.Address(0, 0) & ", " & lab 
End Function 

戻り値:

enter image description here

あなたは、印刷範囲などを除外するために慎重でなければならない

EDIT#1:

  1. ALT-:

    ユーザー定義関数(UDF)は非常に簡単にインストールして使用していますF11でVBEウィンドウが表示されます

  2. ALT-I ALT-Mが新しいモジュールを開きます
  3. VBEウィンドウを閉じると閉じる

ブックを保存すると、UDFが保存されます。 2003年後半以降のExcelを使用している場合は、 を.xlsmとして保存する必要はありません。UDFを削除するには

をXLSX:

  1. 明確上記のようにしてコード
  2. をVBEウィンドウを起動は、ExcelからUDFを使用するにはVBEウィンドウに

を閉じます。

=FindMax(A1:Z100) 

m一般的にはマクロについて鉱石、以下を参照してください。

http://www.mvps.org/dmcritchie/excel/getstarted.htm

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

とUDFの仕様については、以下を参照してください。

http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx

マクロを有効にする必要がありますこれはうまくいく!

+0

こんにちは、ありがとうございました。私は初心者だから、これをどのように置くか/走らせることができるかを親切に教えてもらえますか?どうもありがとうございます。 – Ramon

+0

@Ramon私の**編集#1を参照してください** –

+0

今すぐ作業!どうもありがとうございます! – Ramon

関連する問題