如何以纯CSV格式保存CSE Excel公式?

时间:2012-08-01 06:55:30

标签: excel csv formula

我想在我的程序中形成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)))}

此公式对单元格数组进行了明确计算......

2 个答案:

答案 0 :(得分: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选项&gt;的快捷方式。高级&gt;在单元格中显示公式而不是计算结果。

enter image description here

上面的设置以CSV格式保存,如下所示。

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

您可以通过将文本文件的内容复制到新工作表中的单元格A1并选择数据&gt;来进行检查。文字到列&gt;定界&gt;分隔符:分号

我假设十进制分隔符:,千位分隔符:.(在 Excel选项&gt;高级中)。

答案 1 :(得分:0)

如果要保留括号本身,则可以运行以下宏,然后将文件另存为CSV。除了[Ctrl +`]方法lori_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