Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.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
Vba 如何切换总和中包含的信息?_Vba_Excel - Fatal编程技术网

Vba 如何切换总和中包含的信息?

Vba 如何切换总和中包含的信息?,vba,excel,Vba,Excel,我在一列中有大约一百行数据。我想在每行旁边放置某种用户界面设备(单选按钮?复选框?)。然后我只想对所选的行求和 我真的不知道从哪里开始 非常感谢您的帮助 谢谢 你不需要VBA,一个简单的公式就可以了。假设要求和的数据在A列中,从A2:A100运行,而控制列是从B2:B100运行的B列。我们还将假设您希望结果所在的单元格是A101 将B列字体设置为Marlett 在B列中要包含在总和中的任何单元格中输入和“a”。必须是小写。你会得到一个复选标记 将A101中的公式设置为=SUMIF(B1:B100

我在一列中有大约一百行数据。我想在每行旁边放置某种用户界面设备(
单选按钮
复选框
?)。然后我只想对所选的行求和

我真的不知道从哪里开始

非常感谢您的帮助


谢谢

你不需要VBA,一个简单的公式就可以了。假设要求和的数据在A列中,从A2:A100运行,而控制列是从B2:B100运行的B列。我们还将假设您希望结果所在的单元格是A101

将B列字体设置为Marlett

在B列中要包含在总和中的任何单元格中输入和“a”。必须是小写。你会得到一个复选标记


将A101中的公式设置为=SUMIF(B1:B100,“a”,A1:A100)

您不需要VBA,简单的公式就可以了。假设要求和的数据在A列中,从A2:A100运行,而控制列是从B2:B100运行的B列。我们还将假设您希望结果所在的单元格是A101

将B列字体设置为Marlett

在B列中要包含在总和中的任何单元格中输入和“a”。必须是小写。你会得到一个复选标记


将A101中的公式设置为=SUMIF(B1:B100,“a”,A1:A100)

因为您希望远离过滤器,所以最简单的方法是构造一个用作指示器的辅助列(1=包含在总和中,0=从总和中排除)

一旦设置了指示符列,就可以使用SUMPRODUCT函数轻松地对每列进行求和=SUMPRODUCT($indicator列、summated列)

对于用户界面,如果复选框/单选按钮是您唯一的选项,那么事情会稍微复杂一些,我将编辑答案

最简单/最快速的方法是设置一列,该列使用数据验证来设置“是/否”下拉列表

然后将指示符列设置为如下内容:=IF(A1=“Yes”,1,0) (假设A1是“是/否”列)

现在,您的用户应该能够轻松地在每一行上选择是/否,这将自动传播到0/1,并从那里更新列的总和(真正的sumproducts)

为了让事情看起来更好,您可以隐藏指示符列-无需向用户显示它


由于您希望远离过滤器,因此最简单的方法是构造一个作为指示器的辅助列(1=包含在总和中,0=从总和中排除)

一旦设置了指示符列,就可以使用SUMPRODUCT函数轻松地对每列进行求和=SUMPRODUCT($indicator列、summated列)

对于用户界面,如果复选框/单选按钮是您唯一的选项,那么事情会稍微复杂一些,我将编辑答案

最简单/最快速的方法是设置一列,该列使用数据验证来设置“是/否”下拉列表

然后将指示符列设置为如下内容:=IF(A1=“Yes”,1,0) (假设A1是“是/否”列)

现在,您的用户应该能够轻松地在每一行上选择是/否,这将自动传播到0/1,并从那里更新列的总和(真正的sumproducts)

为了让事情看起来更好,您可以隐藏指示符列-无需向用户显示它



第一个问题-是否要使用过滤器?或者,不管选择了哪一行,都要看到所有的一百行吗?不能使用过滤器,否则我只会使用小计函数。所有行都必须可见。这是用于快速“假设”场景计算您要让用户单击或取消单击100个单选按钮/复选框吗?听起来不像是一个用户友好的GUI。默认情况下,所有框都会被选中。用户可以根据需要取消选中/重新检查。第一个问题-是否要使用过滤器?或者,不管选择了哪一行,都要看到所有的一百行吗?不能使用过滤器,否则我只会使用小计函数。所有行都必须可见。这是用于快速“假设”场景计算您要让用户单击或取消单击100个单选按钮/复选框吗?听起来不像是一个用户友好的GUI。默认情况下,所有框都会被选中。用户可以在他们认为合适的时候取消选中/重新检查。这是一个很好的方法。我认为它对我的目的不起作用,因为这本工作簿最终将被分发,我不想指示人们键入“a”而不是单击复选框。哇,这是一个很酷的技巧!我喜欢这个复选标记。。您可以很容易地将其与数据验证列表结合起来,并以“检查”或“空白”下拉列表结束。这是一个很好的方法。我认为它对我的目的不起作用,因为这本工作簿最终将被分发,我不想指示人们键入“a”而不是单击复选框。哇,这是一个很酷的技巧!我喜欢这个复选标记。。您可以很容易地将其与数据验证列表结合起来,并以“检查”或“空白”下拉列表结束。我可以在其中输入默认的“否”开始吗?可以。只需设置一个带有数据验证的单元格,然后键入“否”。只要把那个细胞复制下来,他们都会以“不”开头。祝你好运!我进步很快,但现在我被卡住了。当我到达下面代码的“rng3.value…”行时,我得到一个1004错误:您不需要使用任何范围。。除非我遗漏了什么?此解决方案中没有代码。我可以在其中输入默认的“否”来开始吗?可以。只需设置一个带有数据验证的单元格,然后键入“否”。只要把那个细胞复制下来,他们都会以“不”开头。祝你好运!我进步很快,但现在我被卡住了。当我到达下面代码的“rng3.value…”行时,我得到一个1004错误:您不需要使用任何范围。。除非我遗漏了什么?此解决方案中没有涉及任何代码。