如何根据一个列中列出的值用值填充范围内的行

时间:2018-12-28 08:22:11

标签: excel vba

我正在自学VBA,绝对是新手。我在高等教育行业工作,正在尝试熟悉VBA。

问题背景: 我正在监督文学课程,该课程根据学生的学习水平为他们分配不同类型的书籍。尽管我要处理数百种数据,但为简化起见,我有五本不同的书(A,B,C,D,E)和三种不同的学习水平(一,二,三)。

任务1
我需要根据他们的学习水平,根据以下条件为学生分配他们的书:

(学习水平〜阅读书籍)
一个〜A和B
两个〜A,C和E
三个〜A,B和D

任务2
我需要知道每本书要订购多少单位,因为我需要设定预算并保持预算不变。因此,我已经根据以下图片排列了我的excel:Books assigned and to order

尽管图像仅列出了十个学生,但实际上我正在处理数百个学生总数和总共十九本书。我被教导要做的是首先按“类别”过滤,然后根据分配的书使用填充复印功能。我发现这种方法需要手动操作,容易出现人为错误。

这样,我正在研究是否有可能使用任何内置的Excel函数或VBA代码来帮助实现此过程的自动化,从而减少错误。我已经研究了假设条件函数,但是它不能应用于单元格范围(在本例中为D2:H10)。本质上,我希望根据A:A中的值填充D2:H10范围内的行。

预先感谢您的耐心阅读,并指导我寻求解决方案。对我而言,最重要的是学习过程,而不是解决方案本身。因此,如果有人不愿提供完整的代码,我希望您能至少帮助我指出正确的方向。非常感谢您的帮助。

最好, 卡斯

1 个答案:

答案 0 :(得分:0)

Excel IF和<>

您将以下公式放入D,E,F,G和H列的第二行:

=IF($B2="","",1)
=IF(AND($B2<>"One",$B2<>"Three"),"",1)
=IF($B2<>"Two","",1)
=IF($B2<>"Three","",1)
=IF($B2<>"Two","",1)

并将其粘贴下来。研究此内容将帮助您完成整个任务。祝你好运。