我想在我的程序中形成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)))}
此公式对单元格数组进行了明确计算......
答案 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;在单元格中显示公式而不是计算结果。
上面的设置以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