Excelで数式を入力できることは誰もが知っています。 (結局、数式がないスプレッドシートはどうなるでしょうか?)数式でアドレス参照を使用する場合、セル、行、または列を挿入または削除すると、それらの参照は自動的に更新され、それらの変更はアドレス参照に何らかの影響を及ぼします。たとえば、次の簡単な式を考えてみましょう。

=IF(A7=B7,"YES","NO")

B7の上にセルを挿入すると、数式はExcelによって自動的に調整され、次のように表示されます。

=IF(A7=B8,"YES","NO")

ただし、Excelで数式を調整したくない場合はどうなりますか?アドレスにドル記号を追加しようとするかもしれませんが、これは後でコピーされる数式のアドレスにのみ影響します。数式に影響するセルを挿入または削除しても、数式自体には影響しません。

数式参照を「非調整」にする最良の方法は、数式自体を変更して、さまざまなワークシート関数を使用することです。たとえば、セルC7で次の数式を使用できます。

=IF(INDIRECT("A"&ROW(C7))=INDIRECT("B"&ROW(C7)),"YES","NO")

この数式は、数式が表示されるセルに基づいてアドレスを作成します。ROW関数は、セルの行番号(この場合、C7、したがって戻り値は7)を返し、INDIRECT関数を使用して作成されたアドレスを参照します。 A7やB7など。 A7またはB7の上にセルを挿入(または削除)した場合、セルC7の参照は、まったく新しいアドレスを簡単に作成するため、邪魔されません。

別のアプローチは、OFFSET関数を使用して、同様のタイプの参照を作成することです。

=IF(OFFSET($A$1,ROW()-1,0)=OFFSET($B$1,ROW()-1,0),"YES","NO")

この数式は、単にそれがどこにあるか(列C)を調べ、その左側にあるセルの値を比較します。列Aまたは列Bのいずれかにセルを挿入または削除した場合でも、この数式は同様に影響を受けません。

最後のアプローチ(そしておそらく最も巧妙なアプローチ)は、名前付きの数式を使用することです。これは、ほとんどの人がめったに使用しないExcelの命名機能の機能です。次の手順に従ってください:

。セルC2を選択します。

。リボンの[数式]タブを表示します。

。 [定義済みの名前]グループで、[名前の定義]ツールをクリックします。 Excelに[新しい名前]ダイアログボックスが表示されます。 (図1を参照)

。 [名前]ボックスに、CompareMeという名前を入力します。 (必要に応じて、別の名前を使用できます。)

。 [参照先]ボックスにあるものをすべて消去し、次の式に置き換えます。

。 [OK]をクリックします。

この時点で、名前付き数式を作成しました。これで、次の方法で列Cの任意のセルで使用できます。

=CompareMe

元の数式が設計されたとおりに、左側の2つのセルにあるものを比較します。さらに良いことに、セルを挿入または削除しても数式は自動的に調整されません。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(12348)は、Microsoft Excel 2007、2010、2013、および2016に適用されます。

Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります: