如何在excel中更快地制定公式

时间:2019-02-20 10:16:36

标签: excel excel-formula

我在采购积压文件中有一个新公式,用于比较货运代理提供的日期和系统中的日期。但是,有时容器名称不同或有错误,因此我还需要检查vlookup中的字符(大多数情况下是“空格”或“-”)。我想知道使此公式更快运行的方法,例如用户定义的函数,甚至是宏(每周更新3-4次,并且已经有一个宏来更新整个工作簿) 非常感谢!

说明:基本上,我们正在使用“ abcd1234”容器,并使用转发器excel文件对其进行了检查,并比较了两个文件中的日期。之所以这么长,是因为有时会出现错误文件创建容器,例如“ abc 1234”或“ abc1234-”等。

公式的屏幕截图为here

  

= IF(AK2 =“”;“未上船”“; IF(ISNUMBER(LEFT(AK2; 1)* 1);”没有容器“; IF(ISERROR(VLOOKUP(IF(ISNUMBER(SEARCH( ”   “; AK2)); LEFT(AK2; FIND(”   “; AK2)-1); IF(ISNUMBER(SEARCH(”-“; AK2)); LEFT(AK2; FIND(”-“; AK2)-1); AK2))); dates_in_DHL; 9; 0)); IF(ISBLANK(AX2);“ pas   dans planning“;”请输入收据交易日期   verify“); IF(ISBLANK(AX2); IF(VLOOKUP(IF(ISNUMBER(SEARCH(”   “; AK2)); LEFT(AK2; FIND(”   “; AK2)-1); IF(ISNUMBER(SEARCH(”-“; AK2)); LEFT(AK2; FIND(”-“; AK2)-1); AK2))); planned_dates; 10; 0)= BZ2 ;“   计划列“&”中的日期正确。 DHL的日期是   “&DAY(VLOOKUP(IF(ISNUMBER(SEARCH(” ;; AK2)); LEFT(AK2; FIND(“   “; AK2)-1); IF(ISNUMBER(SEARCH(”-“; AK2)); LEFT(AK2; FIND(”-“; AK2)-1); AK2))); planned_dates; 10; 0))& “-”&MONTH(VLOOKUP(IF(ISNUMBER(SEARCH(“   “; AK2)); LEFT(AK2; FIND(”   “; AK2)-1); IF(ISNUMBER(SEARCH(”-“; AK2)); LEFT(AK2; FIND(”-“; AK2)-1); AK2))); planned_dates; 10; 0))& “-”&YEAR(VLOOKUP(IF(ISNUMBER(SEARCH(“   “; AK2)); LEFT(AK2; FIND(”   “; AK2)-1); IF(ISNUMBER(SEARCH(”-“; AK2)); LEFT(AK2; FIND(”-“; AK2)-1); AK2))); planned_dates; 10; 0)); IF(VLOOKUP(IF(ISNUMBER(SEARCH(“   “; AK2)); LEFT(AK2; FIND(”   “; AK2)-1); IF(ISNUMBER(SEARCH(”-“; AK2)); LEFT(AK2; FIND(”-“; AK2)-1); AK2)));计划日期; 10; 0)> 0 ; VLOOKUP(IF(ISNUMBER(SEARCH(“   “; AK2)); LEFT(AK2; FIND(”   “; AK2)-1); IF(ISNUMBER(SEARCH(”-“; AK2)); LEFT(AK2; FIND(”-“; AK2)-1); AK2))); planned_dates; 10; 0); IF (VLOOKUP(IF(ISNUMBER(SEARCH(“   “; AK2)); LEFT(AK2; FIND(”   “; AK2)-1); IF(ISNUMBER(SEARCH(”-“; AK2)); LEFT(AK2; FIND(”-“; AK2)-1); AK2))); dates_in_DHL; 9; 0)> BZ2 ; VLOOKUP(IF(ISNUMBER(SEARCH(“   “; AK2)); LEFT(AK2; FIND(”   “; AK2)-1); IF(ISNUMBER(SEARCH(”-“; AK2)); LEFT(AK2; FIND(”-“; AK2)-1); AK2))); dates_in_DHL; 9; 0);”的   DHL中的日期早于/与积压中的日期“&”相同。 DHL的日期   是“&DAY(VLOOKUP(IF(ISNUMBER(SEARCH(”“; AK2)); LEFT(AK2; FIND(”   “; AK2)-1); IF(ISNUMBER(SEARCH(”-“; AK2)); LEFT(AK2; FIND(”-“; AK2)-1); AK2))); dates_in_DHL; 9; 0))& “-”&MONTH(VLOOKUP(IF(ISNUMBER(SEARCH(“   “; AK2)); LEFT(AK2; FIND(”   “; AK2)-1); IF(ISNUMBER(SEARCH(”-“; AK2)); LEFT(AK2; FIND(”-“; AK2)-1); AK2))); dates_in_DHL; 9; 0))& “-”&YEAR(VLOOKUP(IF(ISNUMBER(SEARCH(“   “; AK2)); LEFT(AK2; FIND(”   “; AK2)-1); IF(ISNUMBER(SEARCH(”-“; AK2)); LEFT(AK2; FIND(”-“; AK2)-1); AK2)); dates_in_DHL; 9; 0))) ));“那里   是收据交易日期,请验证“))))

0 个答案:

没有答案