1

プログラムで CSV Excel ファイルを作成したいと思います。一部のセルには、CSE (Ctrl+Shift+Enter) 数式 (配列数式) が含まれています。

これは動作しません:

=SUM(IF(COUNTIF(B4:B1000;B4:B1000)=0; ""; 1/COUNTIF(B4:B1000;B4:B1000)))

これも機能しません:

{=SUM(IF(COUNTIF(B4:B1000;B4:B1000)=0; ""; 1/COUNTIF(B4:B1000;B4:B1000)))}

この数式は、セル配列を個別にカウントします...

4

2 に答える 2

2

代わりに次を使用して、配列数式を通常の数式に変換してみてください。

=SUMPRODUCT((B4:B1000<>"")/COUNTIF(B4:B1000;B4:B1000&""))

これを行う一般的な手法は、関数を配列引数でラップすることですMMULT(...;1)

=SUM(IF(MMULT(COUNTIF(B4:B1000;B4:B1000);1)=0; ""; 1/MMULT(COUNTIF(B4:B1000;B4:B1000);1)))

CSVファイルを保存するときは、計算結果ではなく、Ctrl + `[back-quote]を押して数式を表示してください。これは、Excelの[オプション]>[詳細設定]>[数式をセルに表示]のショートカットです。

ここに画像の説明を入力してください

上記の設定では、以下のようにCSV形式で保存されます。

Sheet1;
;"=SUMPRODUCT((B4:B1000<>"""")/COUNTIF(B4:B1000;B4:B1000&""""))"
;Values
;1
;2
;
;3
;1
;a
;a

これを確認するには、テキストファイルの内容を新しいシートのセルA1にコピーし、[データ]>[列へのテキスト]>[区切り]>[区切り文字:セミコロン]を選択します。

小数点記号:,千単位の区切り文字: .( Excelの[オプション]>[詳細設定])を想定しています。

于 2012-08-01T08:19:50.873 に答える
0

括弧自体を保持したい場合は、次のマクロを実行して、ファイルを CSV として保存できます。[Ctrl + `] メソッド loli_m に加えて、これを行うことができます。

Option Explicit


Sub AddBrackets()

Dim cell As Range

With Sheet1
    For Each cell In UsedRange
        If cell.HasArray Then
            cell.Value = "{" & cell.FormulaLocal & "}"
        End If
    Next
End With

End Sub
于 2012-08-01T15:33:38.953 に答える