Applies ToExcel for Microsoft 365 Excel for Microsoft 365 for Mac Excel for the web Excel 2024 Excel 2021 Excel 2019 Excel 2016

共通部分演算子は、Excel の数式言語で行なわれた、動的配列をサポートするための大幅なアップグレードの一環として導入されました。 動的配列により、新しく重要な計算能力と機能が Excel に導入されます。

アップグレードされた数式言語

アップグレードされた Excel の数式言語は、古い言語とほぼ同じです。ただし、古い言語では暗黙的に発生した共通部分について、その可能性がある場所を @ 演算子を使用して示す点が異なります。 この結果、一定の数式を動的配列 Excel で開くと、そこに @ が表示されるようになります。 数式は、これまでと同じ方法で計算処理が行なわれるという点には、充分注意してください。  

共通部分とは?

共通部分ロジックでは、複数の値を 1 つの値に圧縮します。 Excel では、セルに含めることができる値は 1 つのみであるため、これを行って数式が 1 つの値を返すように強制しています。 1 つの値を返す数式の場合には、共通部分は何も表示していませんでした (技術的には、この処理はバックグラウンドで行われていました)。 このロジックは次のように機能します。

  • 値が単一の項目の場合は、その項目を返します。

  • 値が範囲の場合は、数式と同じ行または列のセルから値を返します。

  • 値が配列の場合は、左上の値を採用します。

動的配列の導入により、Excel では数式から単一の値を返すという制限がなくなったため、暗黙的な共通部分の処理は不要となりました。 古い数式において、表示されずに共通部分がトリガーされていた場所は、動的配列に対応している Excel では、@ を使用してその発生場所を示します。  

@ 記号を使用する理由 

@ 記号は、テーブル参照で共通部分を示すために、既に使用されています。 table =[@Column1] の数式について考えてみましょう。 ここで @ は、数式が共通部分を使用して、 [Column1] にある同じ行から値を取得しているだろう、ということを示しています。  

@ は削除できますか? 

多くの場合、可能です。 これは、@ の右側にある数式の部分が返す内容によって異なります。 

  • 単一の値を返す (最も一般的なケースの) 場合、@ を削除しても何も変化はありません。

  • 範囲または配列を返す場合、@ を削除すると、隣接するセルに対するスピルが発生します。

自動的に追加された @ を削除した上で、そのブックを古いバージョンの Excel で開くと、その部分は従来の配列数式として表示されます (中かっこ {} で囲まれています)。これは、古いバージョンで共通部分をトリガーしないようにするために行われています。

どのようなときに @ を古い数式に追加しますか? 

一般に、複数セルの範囲または配列を返す関数が、以前のバージョンの Excel で作成されている場合には、プレフィックスとして @ が付きます。 数式の動作には変更がないことに充分注意してください。以前は非表示だった共通部分を、今後は確認が可能だということです。 複数セル範囲を返すことができる一般的な関数としては、INDEX、OFFSET、およびユーザー定義関数 (UDF) などがあります。  一般的に、これらが配列または範囲 (SUM() や AVERAGE() など) を受け入れる関数でラップされている場合は例外です。 

詳細については、「範囲または配列 を返す Excel 関数」を参照してください。

元の数式

動的配列 Excel での表示 

説明

=SUM(A1:A10) 

=SUM(A1:A10) 

変わりなし - SUM 関数は範囲または配列を前置しているため、共通部分は発生しません。 

=A1+A2 

=A1+A2 

変わりなし - 共通部分は発生しません。 

=A1:A10 

=@A1:A10 

共通部分が発生し、Excel は、数式が含まれている行に関連付けられている値を返します。

=INDEX(A1:A10,B1) 

=@INDEX(A1:A10,B1) 

共通部分が発生する可能性があります。 INDEX 関数は、2 番目または 3 番目の引数が 0 の場合に、配列または範囲を返すことができます。  

=OFFSET(A1:A2,1,1) 

=@OFFSET(A1:A2,1,1) 

共通部分が発生する可能性があります。 OFFSET 関数は、複数セルの範囲を返すことができます。 その場合、共通部分がトリガーされます。 

=MYUDF() 

=@MYUDF() 

共通部分が発生する可能性があります。 ユーザー定義関数 は配列を返すことができます。 その場合、元の数式が共通部分をトリガーします。 

新しい数式での @ 演算子の使用

@ 演算子を含む動的配列 Excel で数式を作成または編集した場合に、動的配列以前の Excel での、_xlfn.SINGLE() として表示されることがあります。

これは、混合した数式をコミットするときに発生します。 混合した数式とは、配列計算と共通部分の両方に依存している数式です。これは、動的配列以前の Excel ではサポートされていませんでした。 動的以前の配列では、i ) 全体を通して共通部分を処理するか、ii ) 全体を通して配列の計算を処理する数式のみがサポートされています。

動的配列に対応する Excel が、"混合した数式" の作成を検出すると、全体の数式のバリエーションとして共通部分を提案します。 たとえば、=A1:A10+@A1:A10 と入力 すると、 次のダイアログが表示されます。

代わりに =@A1:A10 + @A1:A10 の式を使用するかどうかをたずねるダイアログ。

ダイアログで提案された数式を拒否することを選択すると、混合した数式 =A1:A10+@A1:A10 がコミットされます。 後で動的配列以前の Excel でこの数式を開くと、混合した数式での @ が_xlfn.SINGLE() に変わり、 =A1:A10+_xlfn.SINGLE(A1:A10) として表示されます。 この数式が動的配列以前の Excel によって評価された場合は、#NAME! が返されます。 エラー値。 

補足説明

Excel Tech Communityで、いつでも専門家に質問できます。また、コミュニティでは、サポートを受けられます。

関連項目

FILTER 関数

RANDARRAY 関数

SEQUENCE 関数

SORT 関数

SORTBY 関数

UNIQUE 関数

Excel での #SPILL! エラー

動的配列とスピル配列の動作

ヘルプを表示

その他のオプションが必要ですか?

サブスクリプションの特典の参照、トレーニング コースの閲覧、デバイスのセキュリティ保護方法などについて説明します。

コミュニティは、質問をしたり質問の答えを得たり、フィードバックを提供したり、豊富な知識を持つ専門家の意見を聞いたりするのに役立ちます。