Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
EXCEL:从sumif公式获取条件_Excel_Excel Formula_Sumifs_Vba - Fatal编程技术网

EXCEL:从sumif公式获取条件

EXCEL:从sumif公式获取条件,excel,excel-formula,sumifs,vba,Excel,Excel Formula,Sumifs,Vba,我一直在试图找到一种方法,从一个看起来像这样的sumif公式中得到标准 =SUMIFS(N:N,G:G,"1670",H:H,"2016") 每个sumif都已硬编码。。。。所以我想把criteria1(1670)和criteria2(2016)分别放在一个牢房里。excel解决方案或vba都可以使用适当版本的excel,您可以使用FORMULATEXT函数获取包含公式的字符串 要从中获得标准,您必须对公式的格式进行某些假设-如果您知道逗号仅出现在参数之间,则很容易将文本拆分为逗号并提取;但是

我一直在试图找到一种方法,从一个看起来像这样的sumif公式中得到标准

=SUMIFS(N:N,G:G,"1670",H:H,"2016")

每个sumif都已硬编码。。。。所以我想把criteria1(1670)和criteria2(2016)分别放在一个牢房里。excel解决方案或vba都可以

使用适当版本的excel,您可以使用
FORMULATEXT
函数获取包含公式的字符串

要从中获得标准,您必须对公式的格式进行某些假设-如果您知道逗号仅出现在参数之间,则很容易将文本拆分为逗号并提取;但是在不同的地方,你可能会发现分号是用来表示逗号的;可能范围中有逗号;等等


您需要解决方案的健壮性如何?

使用适当版本的excel,您可以使用
FORMULATEXT
函数获取包含公式的字符串

要从中获得标准,您必须对公式的格式进行某些假设-如果您知道逗号仅出现在参数之间,则很容易将文本拆分为逗号并提取;但是在不同的地方,你可能会发现分号是用来表示逗号的;可能范围中有逗号;等等


您需要解决方案具有多大的鲁棒性?

扩展@Floris的答案,下面的一组公式为您提供了公式中的标准范围和标准。下面的公式用于删除“=SUMIF(&)”

FIND
函数查找公式中逗号的位置。最后一个
LEN
功能是获取最后一个标准所必需的

MID
命令用于获取两个逗号之间的文本。
MID
函数中的“+1”和“-1”用于从输出中删除逗号。无法生成google工作表,因为未识别
FORMULATEXT
函数


扩展@Floris的答案,下面的一组公式为您提供了公式中的标准范围和标准。下面的公式用于删除“=SUMIF(&)”

FIND
函数查找公式中逗号的位置。最后一个
LEN
功能是获取最后一个标准所必需的

MID
命令用于获取两个逗号之间的文本。
MID
函数中的“+1”和“-1”用于从输出中删除逗号。无法生成google工作表,因为未识别
FORMULATEXT
函数


如果
I1
=1670,
m1
=2016,那么
=SUMIFS(N:N,G:G,I1,H:H,m1)
。如果
I1
=1670,
m1
=2016,那么
=SUMIFS(N:N,G:G,ixl1,H:H,m1)
.property=XL 2013和更高版本感谢您为awnser提供了2010年的解决方案,所以我选择了功能范围(Myced); FT=迈塞尔公式;End Functionappropriate=XL 2013及更高感谢您的awnser不幸的是,我需要为xl2010提供一个解决方案,因此我选择使用函数FT(mycell作为范围);FT=迈塞尔公式;结束功能感谢您的支持,为确保完整性,您可能需要添加excel 2010版本。我选择函数FT(mycell作为范围);FT=迈塞尔公式;末端功能;但您可能有一个更好的解决方案。谢谢您的帮助,为了完整性,您可能需要添加一个excel 2010版本。我选择函数FT(mycell作为范围);FT=迈塞尔公式;末端功能;但你可能有更好的解决办法。
=SUBSTITUTE(SUBSTITUTE(FORMULATEXT(SUMIF_FORMULA),"=SUMIFS(",""),")","")