web-dev-qa-db-ja.com

Ctrl-Shift-EnterなしでExcelの数式を配列数式に変換しますか?

質問:Excelで、ホットキーを使用せずに数式を 配列数式 に変換するにはどうすればよいですか?

通常の式

Normal Formula (and result)

配列数式

Array Formula (and result)

3

Excelには、配列を作成/利用できるようにする多数のネイティブ式があります。

SUMPRODUCT()
INDEX()
OFFSET()    
SUMIFS()
COUNTIFS()
AVERAGEIFS()

これらのネイティブ数式をよく知っていると、ほとんどの場合、CSE配列数式を回避できます(それが目的の場合)

たとえば、番号付きの範囲でこれを試してください。

=LEN(MAX(INDEX(C2:C14,,1)))

さらに、以下の説明の結果として、この式はすべての番号付きおよび番号なし/混合範囲で機能します。

=MAX(INDEX(LEN(C2:C14),,1))
5
CallumDA

この制限の回避策の1つは、小さなVBA Subを作成し、それを選択したキーボードショートカットに割り当てることです。

これにより、選択した範囲が配列数式に変換されます。

Sub ConvertToArrayFormula()
    Dim rng As Range
    Dim arr As Range
    Set rng = Selection
    For Each arr In rng.Areas
        arr.FormulaArray = arr.Cells(1, 1).Formula
    Next
End Sub
1
chris neilsen

1つの答えは、範囲と数式の両方に名前を使用してソリューションを開発することです。

したがって、= C2:C14を参照するように「v」を定義することにより、数式の外観を改善できます。数式= MAX(LEN(v))は引き続き配列を入力する必要がありますが、= LEN(v)を参照するように「n」を定義すると、名前付き数式のデフォルトの動作として配列計算が実行されます。したがって、= MAX(n)はCSEエントリを使用せずに機能します。

0
Peter Bart