Excel如何从2电子表格中获取文本

时间:2016-09-26 12:50:37

标签: excel excel-vba vba

我需要在spreadsheet1上搜索没有值,并在电子表格2的第一个冒号中返回我的名字。

如下图所示。

谢谢

Spreadsheet1



 A         B         C          D
 Name      Surname   Address    Exist
 Jhon       Doe       Dummy      Yes
 Pamela     Summer    Dummy      No
 Sam        Doe        Dummy      Yes
 Jacob      Summer     Dummy      No



Spreadsheet 2

   A
1 Search if in Spreadsheet1 D there are No text then return me "Pamela" value from first column
2 Search if in Spreadsheet1 D there are No text then return me "Jacob" value from first column
3 ecc..
4

3 个答案:

答案 0 :(得分:0)

在电子表格2中输入以下公式

   A
1 =IF(Sheet1!D2="No";Sheet1!A2;"")
2 =IF(Sheet1!D3="No";Sheet1!A3;"")
3 =IF(Sheet1!D4="No";Sheet1!A4;"")
4 =IF(Sheet1!D5="No";Sheet1!A5;"")
5 ...

答案 1 :(得分:0)

如果您能够运行宏,请使用:

Option Compare Text

Sub findNo()
Dim rng As Range
Dim lastrow As Long
Dim indx As Integer

indx = 1
lastrow = Sheet1.Cells(Sheet1.Rows.Count, "D").End(xlUp).Row
Set rng = Sheet1.Range("D1:D" & lastrow)

For Each cell In rng
     If cell.Text = "no" Then
        Sheet2.Cells(indx, 1) = Sheet1.Cells(cell.Row, 1)
        indx = indx + 1
    End If
Next cell
End Sub

但是,如果工作表公式用法是唯一可用的方式,那么您可以使用aPhilRa提出的解决方案,但这会留下大量您无法轻易删除的空行。退回""使单元格看起来像空,但你不能使用ctrl + G - > special - >空白来选择它们,因为它们不再是真正的空白。

替代方法是使用返回其他内容的公式的更改版本而不是"",如公式错误:

=IF(Sheet1!D2="No";Sheet1!A2;na()) =IF(Sheet1!D3="No";Sheet1!A3;na()) =IF(Sheet1!D4="No";Sheet1!A4;na()) =IF(Sheet1!D5="No";Sheet1!A5;na())

如果文本不是" no"这将导致#N / A.在sheet1上使用,您可以通过ctrl + G - > special - >公式错误轻松选择所有这些单元格,以便在需要时以单一操作删除它们。

答案 2 :(得分:0)

AGGREGATE function可以通过将不匹配的任何内容转换为错误并忽略错误,将正确的行号传递给INDEX function

使用Sheet2!A1中图像的F7中的公式并填写。

index_aggregate_second

包裹IFERROR function默认公式返回 ecc .. ,但没有找到进一步的匹配,虽然我不清楚重要的是什么。