Excel – 错误列在一个单元格中的多个错误

我正在创build一个PowerShell脚本来通过标准的Excel电子表格将数据上传到SQL服务器。 我想在Excel电子表格中添加一些错误检查,这样如果链接不正确,我可以把它全部放回填写电子表格的用户。

作为一个例子,这里是Excel电子表格公司部分的一部分:

在这里输入图像说明

此错误是指pipe理员上载表中不存在的pipe理员针列(D2):

在这里输入图像说明

以上是使用以下公式:

=IF(COUNTIF('Manager'!$A$2:$A$1048576, [@[Manager Pin]])>0, "", "Manager Pin Does Not Exist") 

我想要的是有多个错误返回基于字段与每个之间的换行符分隔符,所以在图像一,如果经理的PIN和公司的PIN不存在,那么错误(A2)的结果是:

在这里输入图像描述

这样,我可以排除任何导入错误部分在SQL的一面不是空的东西。

———按位错误集:

以3个可能的错误为例,设置一个按位错误:

 0 - No errors 1 - Manager pin not valid 2 - Company pin not valid 3 - Manager pin not valid Company pin not valid 4 - Company name is null - required field 5 - Manager pin not valid Company name is null - required field 6 - Company pin not valid Company name is null - required field 7 - Manager pin not valid Company pin not valid Company name is null - required field 

因此,上述错误将在电子表格的单独表格中创build。 然后,我可以在电子表格中创build一个隐藏的列来计算错误代码。 之后,我所要做的就是根据隐藏列中的错误代码引用ERRORS列中的错误代码。

如果您有权访问TEXTJOIN函数 (Excel 2016+),则可以通过换行符join它们:

 = TEXTJOIN( CHAR(10), TRUE, IF(...), IF(...) ) 

您可以连接两个单独的类似检查的结果。 假设您有一个Company表具有相似的Manager布局布局:

 =IF(COUNTIF(Manager!$A$2:$A$1048576, [@[Manager Pin]])>0, "", "Manager Pin Does Not Exist") & IF(COUNTIF(Company!$A$2:$A$1048576, [@[Company Pin]])>0, "", CHAR(10)&"Company Pin Does Not Exist") 

顺便说一下,为什么使用$A$2:$A$1048576而不是简单的A:A ? 如果你在serched表中有一个标题行不会匹配,所以让我们简化它。

 =IF(COUNTIF(Manager!A:A, [@[Manager Pin]])>0, "", "Manager Pin Does Not Exist") & IF(COUNTIF(Company!A:A, [@[Company Pin]])>0, "", CHAR(10)&"Company Pin Does Not Exist") 

PS MATCH替代scheme:

 =IF(ISNUMBER(MATCH([@[Manager Pin]], Manager!A:A,0)), "", "Manager Pin Does Not Exist") & IF(ISNUMBER(MATCH([@[Company Pin]], Company!A:A,0)), "", CHAR(10)&"Company Pin Does Not Exist")