【问题标题】:how to calculate specific cells in excel如何计算excel中的特定单元格
【发布时间】:2016-05-24 06:55:06
【问题描述】:

我有一个 Excel 表格,其中的单元格同时包含字符串和数值。我在计算数值时遇到问题。我需要一个函数来检查给定范围内的单元格并计算(总和)数值。结果必须是:8+4+10+12+12+5=51

要从 8/4b 和 8b/4 中获取 8 和 4 值,我使用这个函数:

=IF(LEN(L27)=4,IF(ISNUMBER(SEARCH("b",LEFT(L27,2))),RIGHT(L27,1),LEFT(L27,1)),L27) 

这个功能很好用,但是
1) 它返回 8 和 4 个值作为字符,而不是数字。所以 SUM 函数会出错。
2)如何执行功能来检查范围内的单元格并在这些条件下对它们求和(上面我的函数中的条件)

提前致谢

【问题讨论】:

    标签: excel excel-formula


    【解决方案1】:

    我假设您问题中显示的数据是从H27Q27
    使用以下公式来完成您正在寻找的内容:

    =SUM(IFERROR(VALUE(IF(LEN(H27:Q27)=4,IF(ISNUMBER(SEARCH("b",LEFT(H27:Q27,2))),RIGHT(H27:Q27,1),LEFT(H27:Q27,1)),H27:Q27)),0))
    

    这是一个数组公式,所以通过 Ctrl+Shift+Enter 提交公式。

    只是让您知道,要将字符转换为数字,您可以使用 VALUE 函数作为:

    =VALUE(IF(LEN(L27)=4,IF(ISNUMBER(SEARCH("b",LEFT(L27,2))),RIGHT(L27,1),LEFT(L27,1)),L27))
    

    【讨论】:

    • 嗨,Mrig 感谢您的工作。并感谢所有帮助过我的朋友。拜托,你能帮我这个函数的VBA代码吗?我需要在 VBA 中创建函数
    • @MamedAliyev - 如果您希望通过函数执行此操作,您会将哪些参数传递给函数?
    • 我希望我们的新 VBA 函数能够像您帮助的 excel 函数一样运行
    • @MamedAliyev - 您的范围是常量还是您希望此公式适用于不同的范围。如果您的范围不是恒定的,您将传递给函数的输入是什么,例如您将为函数提供范围或其他内容。
    • 范围会有所不同
    【解决方案2】:

    这个怎么样:

    =IF(LEN(L27)=4,IF(ISNUMBER(SEARCH("b",LEFT(L27,2))),VALUE(RIGHT(L27,1)),VALUE(LEFT(L27,1))),L27)

    编辑:

    为了把这一切都放在一个公式中,我只能想出这个怪物:

    {=SUMPRODUCT(--(LEN(I27:N27)=4),--(ISNUMBER(SEARCH("b",LEFT(I27:N27,2)))),IF(ISNUMBER(VALUE(RIGHT(I27:N27,1))),VALUE(RIGHT(I27:N27,1)),0))+SUMPRODUCT(--(LEN(I27:N27)=4),--(ISNUMBER(SEARCH("b",RIGHT(I27:N27,2)))),IF(ISNUMBER(VALUE(LEFT(I27:N27,1))),VALUE(LEFT(I27:N27,1)),0))+SUM(I27:N27)}
    

    这是一个数组公式,所以需要用Ctrl+Shift+Enter来输入。然后这些括号{} 将自动出现。请勿手动输入。

    至于范围,将I27:N27更改为您的范围。

    【讨论】:

    • 谢谢孙。它可以很好地转换为数字。如果我添加 SUM 函数和范围怎么样?例如: =_SUM_(IFERROR(--IF(LEN(C27:J27)=4,IF(ISNUMBER(SEARCH("b",LEFT(C27:J27 ,2))),‌​R.....
    【解决方案3】:

    试试这个...

    =IFERROR(--IF(LEN(L27)=4,IF(ISNUMBER(SEARCH("b",LEFT(L27,2))),RIGHT(L27,1),LEFT(L27,1)),L27),0)
    

    【讨论】:

    • 谢谢兄弟。它运作良好。如何添加 SUM 函数和范围?例如:=**SUM**(IFERROR(--IF(LEN(C27:J27)=4,IF(ISNUMBER(SEARCH("b",LEFT(C27:J27) ,2))),R
    • =SUM(C4:J4,IFERROR(--IF(LEN(L27)=4,IF(ISNUMBER(SEARCH("b",LEFT(L27,2)))),RIGHT(L27 ,1),LEFT(L27,1)),L27),0))
    • 将 C4:J4 替换为您想要的范围 :)
    • @Sixthsense 关于你的 sum 函数,我认为这并没有找到 len() = 4 的所有单元格。
    • @MamedAliyev 它必须在一个公式中吗?您的工作表结构是否允许使用帮助行?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-16
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多