我有一组看起来像这样的源数据:
Project Series Paper
Unit 1 1806 1
Unit 1 1806 2
Unit 1 1806 3
Unit 2 1903 1
Unit 2 1903 2
Unit 2 2003 1
Unit 2 2003 2
Unit 2 2103 1
Unit 2 2103 2
Unit 3 1806 1
Unit 3 1906 1
这些数据通常存在于数据库中并且非常庞大。大约五十万行。
我们还有用户会输入Project,Series和Paper的组合,然后他们会点击提交。
在提交数据之前,我希望从源数据验证数据,并告诉用户他们输入的组合是否有效。
这样的事情:
Project Series Paper Valid?
Unit 1 1806 1 No
Unit 2 1906 2 Yes
我能想到的最简单的解决方案是concatenate
数据并对每个数据进行查找。但是,这将在数据库上产生不必要的重负荷,其中必须使用50万行数据创建新列...
我想知道VBA中是否有一个循环函数可以从源数据中检查组合并让用户知道它是否有效?
我非常感谢您的意见。
答案 0 :(得分:1)
理想情况下,这应该在SQL更新中完成并检查主键冲突,但是,要在Excel中执行此操作,您可以使用CountIfs
函数并检查数据集中是否有任何匹配项。< / p>
因此,假设您的数据库表在范围内,比如A1:C500000
并且您在单元格F2:H2
中有输入检查值,则可以在单元格中使用以下公式Valid?
I2
:
I2: =IF(COUNTIFS(A1:A500000,F2,B1:B500000,G2,C1:C500000,H2)=0,"Yes", "No")
这应该可以解决问题。