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

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

这个公式使单元格数组不同…

尝试使用转换您的数组公式转换为正常的公式:

 =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并select“ 数据”>“文本到列”>“分隔符”>“分隔符:分号”来检查此问题

我假设十进制分隔符:千位分隔符. (在Excel选项>高级 )。

如果你想自己保留括号,那么你可以运行下面的macros,然后把文件保存为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