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
有没有办法在Excel中的单元格上放置下拉列表,以选择要在公式中使用的值?_Excel_Vba_Excel Formula - Fatal编程技术网

有没有办法在Excel中的单元格上放置下拉列表,以选择要在公式中使用的值?

有没有办法在Excel中的单元格上放置下拉列表,以选择要在公式中使用的值?,excel,vba,excel-formula,Excel,Vba,Excel Formula,我正在制作一个Excel宏,用于从一张工作表中获取数据,然后将其放在另一张工作表上,以便能够查看和计算。到目前为止,我能够获取数据,并将其记录在新的工作表上。我有两列需要通过公式使用这些数据进行计算。但是,该公式中的一个值因项目而异(更改的值为百分比)。我想做的是在每个项目上都有一个类似于下拉菜单的东西,在这里我可以输入/选择与该项目对应的两个值/百分比,然后这两个值将在公式中用于计算2列中的相应值。下面是一张更好地说明我的意思的图片: 例如,假设我的折扣是50%。项目A(单元格G2)的价格公

我正在制作一个Excel宏,用于从一张工作表中获取数据,然后将其放在另一张工作表上,以便能够查看和计算。到目前为止,我能够获取数据,并将其记录在新的工作表上。我有两列需要通过公式使用这些数据进行计算。但是,该公式中的一个值因项目而异(更改的值为百分比)。我想做的是在每个项目上都有一个类似于下拉菜单的东西,在这里我可以输入/选择与该项目对应的两个值/百分比,然后这两个值将在公式中用于计算2列中的相应值。下面是一张更好地说明我的意思的图片:

例如,假设我的折扣是50%。项目A(单元格G2)的价格公式为=总和(E2-(E2*50%)

另外,假设客户对商品A的折扣是40%。项目A(单元格I2)的客户价格公式为=总和(E2-(E2*40%)

两列使用相同的公式,但值可能因项目而异。每个项目对我和客户都有不同的百分比

基本上,我希望在G列和I列中的所有单元格或a列中的每个项目上都有一个下拉列表,我可以在其中键入或选择要在该公式中使用的两个百分比,然后在选择/键入这些百分比后,将为该项目计算G列和I列中的相应值。

在宏的VBA代码中,我最终只想将下拉列表放置在所需的单元格上,然后我可以手动遍历每个项目并设置值。这样,在宏完成后,我就可以浏览我的项目并选择要使用的两个百分比,然后在公式中使用这两个百分比填充我的价格和客户价格的值


首先,我想知道这样的事情在一般情况下是否可行,无论是在VBA代码中,还是在Excel中手动执行。感谢您的帮助

♣ 解决了的♣

如果我理解正确,您希望下拉列表能够在两种“状态”下运行,一种是它的普通“功能”,即显示下拉列表;但是,第二种状态(这是请求变得有点复杂的地方),根据选择的下拉值,将显示您以前/最近选择的输出/结果

是的,这是可能的,但很可能需要一些定制的VB代码和开发人员界面(比如运行宏或类似性质的下拉列表)。我确实尝试过“动态”下拉列表的概念,它会将基于先前选择的结果附加到下拉列表选择范围本身。试想一下,一个人如何能够做出不同的/秒选择——他们将选择包含上一次选择结果的单元格,然后能够像普通下拉列表一样与之交互

为什么不在第二列中选择一个下拉值,然后在相邻的单元格中查看结果显示,而不是构建一个“2合1”的单个单元格,该单元格同时具有“选择列表”和“结果/输出”的原因,这会带来额外的麻烦和复杂性元素合并成单个单元

请参阅google sheets,了解这种切实可行/节约的解决方案

下面的屏幕截图描述了以下内容:


这还提供了一个示例,说明您的“产品级别”折扣如何也可以输入到这样的设置中。

为什么不为每个百分比使用一列?-不需要VBA如果折扣是基于项目的,那么您可以有一个辅助表项目-折扣,并且您的公式如下:=SUM(E2-(E2*VLOOKUP(A2,YOURMATRIZ,2,0))。而客户看起来是=SUM(E2-(E2*(VLOOKUP(A2,YOURMATRIZ,2,0)-0,1))如果两个价格之间的比例始终为10%,或者您甚至可以创建两列来输入项目中每种情况的折扣。在这之后,所有的表都可以解决,也不需要使用VBAThank you!我为一个奇怪的问题道歉,我尽了最大的努力解释和展示我正在尝试做的事情,尽管这很难让人理解xt.我已经意识到,像你在这里展示的那样做会更容易,并且有两个额外的列,我可以在其中输入折扣百分比,然后让我两列中的公式引用那些我可以在需要时输入/更改的值