【问题标题】:How to save CSE Excel formula in plain CSV format?如何以纯 CSV 格式保存 CSE Excel 公式?
【发布时间】:2012-07-30 00:59:57
【问题描述】:

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

这个公式对单元格数组进行不同的计数...

【问题讨论】:

    标签: excel csv formula


    【解决方案1】:

    尝试通过使用将您的数组公式转换为普通公式:

    =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+` [反引号] 来显示公式,这是 Excel 选项 > 高级 > 在单元格中显示公式而不是计算结果的快捷方式。

    以上设置以CSV格式保存如下。

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

    您可以通过将文本文件的内容复制到新工作表中的单元格 A1 并选择 数据 > 文本到列 > 定界 > 定界符:分号来检查这一点。。

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

    【讨论】:

    • 我添加了一个在我的设置上运行良好的示例。请注意,在 csv 文件中,公式用引号引起来(这是默认的文本限定符),因为单元格和公式参数使用相同的分隔符。
    【解决方案2】:

    如果您想保留括号本身,则可以运行以下宏,然后将文件另存为 CSV。除了 lori_m 提到的 [Ctrl + `] 方法之外,您还可以执行此操作。

    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
    

    【讨论】:

      猜你喜欢
      • 2022-08-23
      • 1970-01-01
      • 2012-11-24
      • 1970-01-01
      • 1970-01-01
      • 2019-04-15
      • 1970-01-01
      • 2012-03-18
      • 1970-01-01
      相关资源
      最近更新 更多