Excel formula 如何使用;查找“;在“中添加条件”;sumproduction“;在Excel forrmual中

Excel formula 如何使用;查找“;在“中添加条件”;sumproduction“;在Excel forrmual中,excel-formula,Excel Formula,我有两个列,一个“楼层”,楼层可以写为整数或字符串“4-5”表示4F和5F之间的两个楼层,然后另一个是价格,我需要“SUMPRODUCT”所有楼层的所有价格。 我不想使用隐藏列来帮助计算,在totleprice单元格中只有一个公式 已为此尝试了find,search,match,vlookup,但得到错误#值 这是我在“find”中编写的公式 我最终放弃了编写一个简单的智能公式的尝试。因为块的行数是固定的,所以我将公式划分为一个长而相似的公式 =(IF(AND(NOT(ISERROR(FIND

我有两个
,一个“
楼层
”,楼层可以写为整数或字符串“4-5”表示4F和5F之间的两个楼层,然后另一个是价格,我需要“
SUMPRODUCT
”所有楼层的所有价格。 我不想使用隐藏列来帮助计算,在totleprice单元格中只有一个公式

已为此尝试了
find
search
match
vlookup
,但得到错误
#值

这是我在“
find
”中编写的公式


我最终放弃了编写一个简单的智能公式的尝试。因为块的行数是固定的,所以我将公式划分为一个长而相似的公式

=(IF(AND(NOT(ISERROR(FIND("-",H45))),NOT(ISERROR(INT(MID(H45,1,FIND("-",H45)-1)))),NOT(ISERROR(INT(MID(H45,FIND("-",H45)+1,LEN(H45)))))),(INT(MID(H45,FIND("-",H45)+1,LEN(H45)))-INT(MID(H45,1,FIND("-",H45)-1))+1)*K45,K45))+(IF(AND(NOT(ISERROR(FIND("-",H46))),NOT(ISERROR(INT(MID(H46,1,FIND("-",H46)-1)))),NOT(ISERROR(INT(MID(H46,FIND("-",H46)+1,LEN(H46)))))),(INT(MID(H46,FIND("-",H46)+1,LEN(H46)))-INT(MID(H46,1,FIND("-",H46)-1))+1)*K46,K46))+(IF(AND(NOT(ISERROR(FIND("-",H47))),NOT(ISERROR(INT(MID(H47,1,FIND("-",H47)-1)))),NOT(ISERROR(INT(MID(H47,FIND("-",H47)+1,LEN(H47)))))),(INT(MID(H47,FIND("-",H47)+1,LEN(H47)))-INT(MID(H47,1,FIND("-",H47)-1))+1)*K47,K47))+(IF(AND(NOT(ISERROR(FIND("-",H48))),NOT(ISERROR(INT(MID(H48,1,FIND("-",H48)-1)))),NOT(ISERROR(INT(MID(H48,FIND("-",H48)+1,LEN(H48)))))),(INT(MID(H48,FIND("-",H48)+1,LEN(H48)))-INT(MID(H48,1,FIND("-",H48)-1))+1)*K48,K48))+(IF(AND(NOT(ISERROR(FIND("-",H49))),NOT(ISERROR(INT(MID(H49,1,FIND("-",H49)-1)))),NOT(ISERROR(INT(MID(H49,FIND("-",H49)+1,LEN(H49)))))),(INT(MID(H49,FIND("-",H49)+1,LEN(H49)))-INT(MID(H49,1,FIND("-",H49)-1))+1)*K49,K49))+(IF(AND(NOT(ISERROR(FIND("-",H50))),NOT(ISERROR(INT(MID(H50,1,FIND("-",H50)-1)))),NOT(ISERROR(INT(MID(H50,FIND("-",H50)+1,LEN(H50)))))),(INT(MID(H50,FIND("-",H50)+1,LEN(H50)))-INT(MID(H50,1,FIND("-",H50)-1))+1)*K50,K50))+(IF(AND(NOT(ISERROR(FIND("-",H51))),NOT(ISERROR(INT(MID(H51,1,FIND("-",H51)-1)))),NOT(ISERROR(INT(MID(H51,FIND("-",H51)+1,LEN(H51)))))),(INT(MID(H51,FIND("-",H51)+1,LEN(H51)))-INT(MID(H51,1,FIND("-",H51)-1))+1)*K51,K51))+(IF(AND(NOT(ISERROR(FIND("-",H52))),NOT(ISERROR(INT(MID(H52,1,FIND("-",H52)-1)))),NOT(ISERROR(INT(MID(H52,FIND("-",H52)+1,LEN(H52)))))),(INT(MID(H52,FIND("-",H52)+1,LEN(H52)))-INT(MID(H52,1,FIND("-",H52)-1))+1)*K52,K52))+(IF(AND(NOT(ISERROR(FIND("-",H53))),NOT(ISERROR(INT(MID(H53,1,FIND("-",H53)-1)))),NOT(ISERROR(INT(MID(H53,FIND("-",H53)+1,LEN(H53)))))),(INT(MID(H53,FIND("-",H53)+1,LEN(H53)))-INT(MID(H53,1,FIND("-",H53)-1))+1)*K53,K53))+(IF(AND(NOT(ISERROR(FIND("-",H54))),NOT(ISERROR(INT(MID(H54,1,FIND("-",H54)-1)))),NOT(ISERROR(INT(MID(H54,FIND("-",H54)+1,LEN(H54)))))),(INT(MID(H54,FIND("-",H54)+1,LEN(H54)))-INT(MID(H54,1,FIND("-",H54)-1))+1)*K54,K54))+(IF(AND(NOT(ISERROR(FIND("-",H55))),NOT(ISERROR(INT(MID(H55,1,FIND("-",H55)-1)))),NOT(ISERROR(INT(MID(H55,FIND("-",H55)+1,LEN(H55)))))),(INT(MID(H55,FIND("-",H55)+1,LEN(H55)))-INT(MID(H55,1,FIND("-",H55)-1))+1)*K55,K55))+(IF(AND(NOT(ISERROR(FIND("-",H56))),NOT(ISERROR(INT(MID(H56,1,FIND("-",H56)-1)))),NOT(ISERROR(INT(MID(H56,FIND("-",H56)+1,LEN(H56)))))),(INT(MID(H56,FIND("-",H56)+1,LEN(H56)))-INT(MID(H56,1,FIND("-",H56)-1))+1)*K56,K56))+(IF(AND(NOT(ISERROR(FIND("-",H57))),NOT(ISERROR(INT(MID(H57,1,FIND("-",H57)-1)))),NOT(ISERROR(INT(MID(H57,FIND("-",H57)+1,LEN(H57)))))),(INT(MID(H57,FIND("-",H57)+1,LEN(H57)))-INT(MID(H57,1,FIND("-",H57)-1))+1)*K57,K57))+(IF(AND(NOT(ISERROR(FIND("-",H58))),NOT(ISERROR(INT(MID(H58,1,FIND("-",H58)-1)))),NOT(ISERROR(INT(MID(H58,FIND("-",H58)+1,LEN(H58)))))),(INT(MID(H58,FIND("-",H58)+1,LEN(H58)))-INT(MID(H58,1,FIND("-",H58)-1))+1)*K58,K58))+(IF(AND(NOT(ISERROR(FIND("-",H59))),NOT(ISERROR(INT(MID(H59,1,FIND("-",H59)-1)))),NOT(ISERROR(INT(MID(H59,FIND("-",H59)+1,LEN(H59)))))),(INT(MID(H59,FIND("-",H59)+1,LEN(H59)))-INT(MID(H59,1,FIND("-",H59)-1))+1)*K59,K59))

您可以为此使用
SUMPRODUCT

=SUMPRODUCT(
  IF(ISNUMBER(H$45:H$59),
     1,
     MID(H$45:H$59,FIND("-",H$45:H$59)+1,10)-MID(H$45:H$59,1,FIND("-",H$45:H$59)-1)+1
  ),
  I$45:I$59
)
将其作为数组公式输入:Ctrl+Shift+Enter

输出

对不起,我的公式有点错误,我现在正在更正。公式完全错误,“查找”不能使用单元格范围作为参数。如果您希望我们帮助您使用一个长得离谱的公式,您需要给我们提供更多背景信息-您的公式试图做什么?向我们展示您如何设置工作表。仅供参考,难怪你在努力让它发挥作用;创建这么长的公式时,很难找到错误所在。我正在尝试制作一个动态工作表,可以通过VBA添加/删除行块,当添加行块时,单元格中的公式将由excel natural自动刷新,这是公式之一。
MID(H$45:H$59,find(“-”,H$45:H$59)+1,10)
最后10个为什么是固定的?10是一个任意数字,它确保捕获字符串的剩余部分。对于您的示例数据,数字2就足够了。有些人可能会检查绳子的长度,以便只抓取需要的东西,但这是不必要的,实际上可能会更慢。
=SUMPRODUCT(
  IF(ISNUMBER(H$45:H$59),
     1,
     MID(H$45:H$59,FIND("-",H$45:H$59)+1,10)-MID(H$45:H$59,1,FIND("-",H$45:H$59)-1)+1
  ),
  I$45:I$59
)