配列数式は、数式バーの数式をコピーするのではなく、セルをコピーする限り、コピーして貼り付け、その配列を保持する必要があります。セルを下または横にドラッグ/塗りつぶすと、正常にコピーされます。ドラッグ時に B2:B100 の範囲を維持したい場合は、 $B$2:$B$100 を使用して増分を停止します。
F4 は、ここで役立つ便利なショートカットです。カーソルを B2:B100 の上に置き、F4 を押します。
特定のセルに常に数式配列を保持させたい場合は、汚い回避策を考えることができますが、ポジティブよりもネガティブの方が多いと思います。
ネガ:
-VBA を含む
-元に戻すスタック/クリップボードをクリアします
-潜在的により混乱する可能性があります
回避策
結果に影響を与えない項を含む配列数式でなければならない数式にタグを付けます。例(0*0)+
。その後、この用語をチェックして、コードを使用して常に配列数式にすることができます。
したがって、上記の式は次のようになります{=(0*0)+MATCH(TRUE,(B2:B100}>0,0)}
次に、THISWORKBOOK で
このコードを入力してください
Option Explicit
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim cell As Range
For Each cell In Target
If Target.Cells.Count = 1 Then
If InStr(1, Target.Formula, "(0*0)+", vbTextCompare) And _
Target.HasArray = False Then
Target.FormulaArray = Target.Formula
End If
End If
Next cell
End Sub
セルが変更されるたびに、コードは用語 (0*0)+ をチェックし、まだ配列数式でない場合は配列数式として割り当てます。