【发布时间】:2014-05-20 14:30:33
【问题描述】:
我有两个需要匹配的数据文件:
- 第一个有姓名、日期和工作时间。上面的名字最后格式化,第一个(昵称)。例如,
Smith, John (John)。 - 第二个只有名称和日期,如果列出的话,需要从第一个开始填写小时数。这个名称格式为第一个,可能是中间名首字母,加上最后一个,作为一个字符串。例如,
JSMITH或JDSMITH。
我知道,如果多个人的姓氏相同,可能会有问题,但有没有办法用公式比较和提取这些时间,或者这必须是手动过程吗?
其中一些超过 1500 行。如果可能的话,我想通过公式来做到这一点,因为办公室里没有其他人知道任何 VBA。如果 VBA 是唯一的方法,我会尝试找出一种使其用户友好的方法。
【问题讨论】:
-
是的,vba 可以帮助你。查看以下有关“用户定义函数”的文章:cpearson.com/excel/writingfunctionsinvba.aspx
-
您也应该能够使用 Excel 公式(无 VBA)来执行此操作。
VLOOKUP、LEFT、FIND和MID应该可以满足您的需求。查看 Excel 帮助或在 Google 上搜索一些提示! -
我最初是这么想的,但是有两个问题我无法通过这种方法解决。首先,如果我使用 LEFT 或 RIGHT 公式,我必须指定要查找的字符数。假设我可以使这个动态化,但我不知道该怎么做,我仍然需要告诉它在第二个文件上停止的位置,该文件可能有也可能没有中间首字母。
-
VBA 非常有能力进行这些比较。我认为您确实应该像 @Seb 建议的那样从制作 UDF 开始,然后带着您拥有的一些代码回到这里,以便我们进一步帮助您。
标签: vba excel excel-formula