Excel嵌套if子句以查找名称并指定值 筑巢还是不筑巢?

Excel嵌套if子句以查找名称并指定值 筑巢还是不筑巢?,excel,if-statement,excel-formula,Excel,If Statement,Excel Formula,我得到了一份Emp清单。ID和名称在两列中 Emp。身份证名称 多伊·多伊,约翰 根据姓名,我想在另一列中为员工分配班次号。 下面是我设置的if语句,用于搜索名称并分配移位。但我认为一定有更好更有效的方法 =IF(Table4[@Name]="B,Cis",1, IF(Table4[@Name]="Petty, Richard",1, IF(Table4[@Name]="Trump, Donald",1, IF(Table4[@Name

我得到了一份Emp清单。ID和名称在两列中

Emp。身份证名称

多伊·多伊,约翰

根据姓名,我想在另一列中为员工分配班次号。 下面是我设置的if语句,用于搜索名称并分配移位。但我认为一定有更好更有效的方法

=IF(Table4[@Name]="B,Cis",1,
IF(Table4[@Name]="Petty, Richard",1,
IF(Table4[@Name]="Trump, Donald",1,
IF(Table4[@Name]="Johnny, John",1,
IF(Table4[@Name]="Carlos, Mencina",1,
IF(Table4[@Name]="Smith, Smith",1,
IF(Table4[@Name]="Day, Conner",2,
IF(Table4[@Name]="Macho, Man",2,
IF(Table4[@Name]="Doe, John",2,
IF(Table4[@Name]="Sandy, Johnron",2,
IF(Table4[@Name]="Conner, Donaldson",2,
IF(Table4[@Name]="Randy, Jones",2,
IF(Table4[@Name]="Cook, Joseph",3,
IF(Table4[@Name]="Cooper, Johnny",3,
IF(Table4[@Name]="Rodrigo, Cooker",3,
IF(Table4[@Name]="Potter, Copper",3,
IF(Table4[@Name]="Rodrigo, Gonzolez","A",
IF(Table4[@Name]="Ronny, Ponny","A",
IF(Table4[@Name]="Rodrigo, Coolio","A",
IF(Table4[@Name]="Roma, Coma","B",
IF(Table4[@Name]="Star, Como","B","N/A")))))))))))))))))))))
您可以使用
和(…)


就我个人而言,我会用vba来做类似的事情。我想你不会对此持开放态度。

只需在另一张工作表中创建一个表,并使用员工/班次映射更新该表即可。然后使用vlookup公式从员工姓名中获取班次

假设您将另一张表称为“班次”,员工姓名在A列,班次代码在B列

=VLOOKUP(Table4[@Name],Shifts!$A:$B,2,FALSE)

我没有任何VBA的经验,但我愿意学习。如何在VBA中执行此操作?如果有“开发人员”选项卡,请单击它并单击Visual Basic按钮。您可以在那里为此编写一个子例程。如果您没有该选项卡,您可以通过转到文件-->选项-->自定义功能区并检查开发人员来获得它。我有该选项卡,并且知道如何打开VB。我只是不知道要编写什么程序才能得到我需要的东西。好吧,一旦您点击visual basic,请转到“插入-->模块”,您应该可以开始键入代码。如果单元格(i,1)=“某个名称”,那么可以尝试类似于“sub run()”的方法来表示i=1到10,如果。。。如果下一个i end sub,则结束(i表示每个行号和单元格中的第二个数字(…,…)表示列号。可能我遗漏了一些内容,但此公式使您似乎只根据员工姓名确定了固定的工作分配。既然如此,为什么不在表4中手动添加一个Shift列?我没有看到at符号(@)记录在Excel的结构化表格参考资料中,我无法将其作为列参考输入Excel 2007,例如:=Table1[@Name]。我缺少什么?我没有实际测试它,只是从问题中复制了语法。我从未使用Excel表格,所以我不确定它是否正确。
=VLOOKUP(Table4[@Name],Shifts!$A:$B,2,FALSE)