数式のワークシート名としてセル値を使用する(Microsoft Excel)
Royには、別のブックのセルを参照する数式があります。たとえば、= ‘[http://www.formville.com/C4_free-timesheets.html [Timesheet] s.xlsm] Week01’!L6です。
彼は、数式がより汎用的になるように、数式に別のセルからワークシート(Week01)の名前を取得させたいと考えています。 Royは、セルB9にあるワークシート名を使用できるように、数式をどのように変更する必要があるのか疑問に思います。
これを処理する最も簡単な方法は、INDIRECTワークシート関数を使用することです。基本的に、セルアドレスを取得して「ポインタ」として使用し、そのセルから値を取得します。たとえば、次を使用できます。
=INDIRECT(L6)
これにより、セルL6の値がフェッチされ、本当に必要なものへのポインタとして使用されます。したがって、セルL6に「A7」が含まれている場合、関数はセルA7にあるものすべての値を返します。興味深いことに、この方法で関数を呼び出すと、異なる結果が得られます。
=INDIRECT("L6")
結果は、セルL6の内容をポインターとして使用する代わりに、セルL6の内容になります。
この情報を使用すると、INDIRECT関数で適切に機能するアドレスを簡単にまとめることができます。
=INDIRECT("'[Timesheets.xlsm]" & K2 & "'!L6")
この数式は、目的のワークシートの名前がセルK2に格納されていることを前提としています。有効なワークシート名がそのセルにない場合、数式は#REFエラーを返します。
このアプローチの重要な「落とし穴」の1つは、ブック(Timesheets.xlsm)が開いていることを確認する必要があることです。 INDIRECTは、開いていないブックには到達しません。開いていない場合は、目的の値ではなく#REFエラーが発生します。
数式をさらに汎用的にしたい場合は、次のように、ワークシート名、ワークシート名、およびセル参照をすべてワークシート内のセルから取得できます。
=INDIRECT("'[" & K1 & "]" & K2 & "'!" & K3)
この場合、K1にはワークブック名(Timesheets.xlsm)が含まれ、K2にはワークシート名( “Week01″)が含まれ、K3には目的のセル( “L6″)が含まれます。
_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。
このヒント(6069)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice365のExcelに適用されます。