個人的には、VLookup を使用する Tim William のソリューションを使用します。これが最も簡単な方法だからです。または、VBA を使用している場合は、個別の列を 2 次元配列にロードし、配列をループするときに条件ステートメントを設定して「ラベル」を取得します。
あなたの質問に答えようとして、セル(または範囲)に「名前」を付けることができます。これが文字通り「名前付き範囲」と呼ばれている理由です。
理論的には、セルに -29 の値を指定し、その値に基づいて範囲の名前を取得できます。名前付き範囲では、文字、数字 (数字で始まらないこと)、アンダースコアのみが許可されるため、「AA_PLUS」や「AA_MINUS」などの名前を使用する必要があることに注意してください。ワークブックのシート (1) のセル (1,1) に「AA」という名前を追加し、名前付き範囲を取得するとします。
dim sName as string
sName = thisworkbook.sheets(1).cells(1,1).name.name
debug.print sName
値を並べ替えた後でも、名前は正しく取得され、必要に応じて配列に読み込むことができます。追加の列を追加するためにシート スペースを予約する必要がなく、柔軟性が向上するという利点がありますが (名前はセルに固定されるため、名前付き範囲はどこにでも配置できます)、この方法はお勧めしません。膨大な量のデータを扱う。
一般的に、これらは今説明した方法とは逆の方向に使用されています。最初に範囲の名前を定義し、その値を取得します (ただし、それを禁止するルールはなく、コードは利用可能です)。名前付き範囲は柔軟性を提供し、多くの場合、ツールを動的にするために必須です。これは、VBA が値を正しく取得している間に範囲を移動できるという意味で意味します。
まあ、別の「ラベルタイプの解決策」は、各セルにコメントを追加することです(その内容はプログラムで設定および取得できます)が、私はこのアプローチを使用したことがなく、長いデータ構造にはお勧めしません。
sName = thisworkbook.sheets(1).cells(1,1).comment.text