Excel 公式匹配多个条件

Excel 公式匹配多个条件

我需要一个 Excel 公式,该公式将查看位置、部门代码和职位,然后返回全名。我遇到的问题是,位置可以使用相同的部门代码和职位。也可能有多个结果,我需要在多个单元格中显示这些结果。这将用于按位置和部门细分员工。我使用的是 Excel 2016。

例如:我想显示所有符合以下条件的名称。

地点——弗吉尼亚州

部门代码 – 02023、02023C、02023A

职位名称 - 搬运工、搬运/服务、细节、服务搬运工、细节侦察员

这是我针对仅有一个标准的职位使用的公式。{=IFERROR(INDEX(Sheet1!$C$2:$C$800,SMALL(IF(Sheet1!$B$2:$B$800="02021A",ROW(Sheet1!$B$2:$B$800)-ROW(Sheet1!$B$2)+1),ROWS(EMPLOYEE!$B16:$B$16))),"")}

答案1

我认为最简单的方法是使用宏。这个方法可行。用电子表格中的名称替换工作表名称,并将其放在工作表的 VBE 模块中。

确保将此位中的 5 替换为您要打印名称的列。

然后您可以根据该列进行过滤,这样就得到了列表。

让我知道这个是否奏效。

谢谢!

ccccThisWorkbook.Sheets("Sheet1").Cells(intCurrentRow, 5).Value = strCurrName

Sub find()

Dim strLocation As String
Dim strHOmeDept As String
Dim strJobTitle As String
Dim strCurrentLoc As String
Dim strCurrHomeDept As String
Dim strCurrJobTitle As String
Dim strCurrName As String

Dim intCurrRow As Integer
Dim intEndRow As Integer



Dim i As Integer

intCurrentRow = 1
intEndRow = ActiveWorkbook.Worksheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Row


For i = 1 To intEndRow

intCurrentRow = intCurrentRow + 1

strCurrentLoc = ThisWorkbook.Sheets("Sheet1").Cells(intCurrentRow, 1).Value
strCurrHomeDept = ThisWorkbook.Sheets("Sheet1").Cells(intCurrentRow, 2).Value
strCurrJobTitle = ThisWorkbook.Sheets("Sheet1").Cells(intCurrentRow, 4).Value
strCurrName = ThisWorkbook.Sheets("Sheet1").Cells(intCurrentRow, 3).Value

If strCurrentLoc = "VIRGINIA" And _
(strCurrHomeDept = "02023" Or strCurrHomeDept = "02023C" Or strCurrHomeDept = "02023A") _
And (strCurrJobTitle = "DETAILER-RECON" Or strCurrJobTitle = "PORTER" Or strCurrJobTitle = "DETAIL" Or strCurrJobTitle = "SERVICE PORTER" _
     Or strCurrJobTitle = "PORTE/SERV") Then

ThisWorkbook.Sheets("Sheet1").Cells(intCurrentRow, 5).Value = strCurrName



End If

Next


End Sub

答案2

您的问题也可以通过使用高级过滤器来解决:

在此处输入图片描述

怎么运行的:

  • 复制行中的标题F70:I70
  • 进入标准F71, G71:G73 & I71:I74
  • 点击高级筛选数据选项卡、排序和筛选菜单。
  • 按照下面的高级筛选对话框所示填写单元格引用。

在此处输入图片描述

  • 完成好的

注意:

  • 由于所使用的标准不同,结果可能会有所不同。
  • 根据需要调整单元格引用。

相关内容