如何根据多个ID值在Excel表中找出匹配的结果

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何根据多个ID值在Excel表中找出匹配的结果相关的知识,希望对你有一定的参考价值。

有ID1,ID2,ID3.....ID100(ID不连续),现在需要在一张新的表中找出这100个ID的信息行,请问怎么做到?

vlookup函数:vlookup(lookup_value,table_array,col_index_num,[range_lookup])

第一个参数:lookup_value表示你想要根据哪个值来查找到你想要的数据,比如:可以根据值a可以找到b,那么lookup_value就填写成"a"; 

第二个参数:table_value表示你想要在哪个表区域中进行数据查找;

第三个参数:[range_lookup],表示是精确查找还是模糊匹配;如果为false或0
,则返回精确匹配,如果找不到,则返回错误值 #N/A;如果 range_lookup 为TRUE或1,函数 VLOOKUP
将查找近似匹配值,也就是说,如果找不到精确匹配值,则返回小于 lookup_value 的最大数值。默认为模糊匹配。

下边举例说明:

1.现要将表1中的学生的总分进行填充,笨的方法是一个个根据表1中的学生姓名到表2中找到对应的名字的总分,这样效率太低,可利用vlookup函数轻松完成。

2.切换到“表一”页签,在单元格B2输入:=vlookup(A2,

3.接着切换到“表二”页签,选中要查找数据的区域,这时表一”页签单元格B2的值自动变为:=vlookup(A2,表二!A2:B17。

说明:表二!A2:B17的意思是:系统将在表二”页签的A2:B17形成的表格区域中进行数据查找。

4.再切换回“表一”页签,将单元格B2的值“=vlookup(A2,表二!A2:B17”修改为"=vlookup(A2,表二!$A$2:$B$17",有童鞋就会问为什么要将表二!A2:B17改为表二!$A$2:$B$17,在这里解释下$表示绝对的意思,$A$2:$B$17表示在下拉填充其他单元格时行列不变,这一点很重要。

5.然后在单元格B2中接着输入:=vlookup(A2,表二!$A$2:$B$17,2,false),并回车

说明:第三个参数“2”代表的是意思是指在“表二!A2:B17”形成的表格的中第2列中返回值,第四个参数"false"表示是按精确。

6.下拉单元格B2将B列的其他单元格进行vlookup公式复制自动填充并计算,结果如图中所示。

参考技术A 用vlookup函数追问

能具体点吗?

追答

如果两张表的ID所在列均为A列,在新表B列插入新的列,输入=vlookup(A1,旧表!A:A,1,0)
这里的 旧表!A:A 是指 有ID1,ID2,ID3.....ID100(ID不连续) 这列

追问

我只有一张表,就是被要查找的表
vlookup的第几个参数输入我这100个ID?

追答

vlookup第二个参数输入被查找值,可以新建一列放这100个ID,这样选区域也方便一些。如果输入的话,若ID是字符串还得用"",有点麻烦,参考lookup:

如何找出同一张表中特定状态的多个计数

【中文标题】如何找出同一张表中特定状态的多个计数【英文标题】:how to find out the multiple counts of specific status in the same table 【发布时间】:2021-01-18 03:20:17 【问题描述】:

我有 Orders 和 OrderSubscription 表。表之间的关系是一对多的。我想找出其中一个 OrderSubscription 状态必须为“Active”和“Cancelled”并且应该有多个“Pending”状态的订单。

所以最终结果应该是 order id =2 记录。

编写了以下查询及其工作正常。或者还有其他更好的方法来过滤记录吗?

select o.id,
       o.order_number,
       o.order_status
  from Orders o
 
 where o.order_status = 'Active' AND
   1=(select count(*) from OrderSubscription where order_id = o.id and subs_status='Active')
    AND
   1=( select count(*) from OrderSubscription where  order_id = o.id and subs_status='Cancelled')
   AND
   1 < (select count(*) from OrderSubscription where  order_id = o.id and subs_status='Pending')
 group by o.id,
          o.order_number,
          o.order_status
 order by o.id;
 
 
 
 

Create Table Orders(id number(5),order_number number(12),order_status varchar2(20));

insert into Orders Values (1,12345,'Active');
insert into Orders Values (2,5757575,'Active');
insert into Orders Values (3,979797979,'Active');
insert into Orders Values (4,3131313133,'Active');

Create Table OrderSubscription(id number(5),order_id number(5),subs_name varchar2(20),subs_status varchar2(20));

insert into OrderSubscription Values(1,1,'360 fhf','Pending');
insert into OrderSubscription Values (2,1,'720 cef','Active');
insert into OrderSubscription Values (3,1,'540 abc','Cancelled');


insert into OrderSubscription Values (1,2,'360 fhf','Active');
insert into OrderSubscription Values (2,2,'720 cef','Pending');
insert into OrderSubscription Values (3,2,'540 abc','Pending');
insert into OrderSubscription Values (4,2,'adada abc','Cancelled');


insert into OrderSubscription Values (1,3,'720 cef','Pending');
insert into OrderSubscription Values (2,3,'60 ert','Active');
insert into OrderSubscription Values (3,3,'60 ert','Cancelled');

insert into OrderSubscription Values (1,4,'360 fhf','Pending');
insert into OrderSubscription Values (2,4,'560 fhf','Pending');
insert into OrderSubscription Values (3,4,'560 fhf','Active');

【问题讨论】:

这好像是Oracle,为什么还要加SQL Server标签? 我在 oracle 中写过,但实际上这也应该在 sql server 中工作。 【参考方案1】:

您似乎想使用条件聚合方法。一种正确的方法是按订单号聚合,然后断言各种状态计数。

SELECT o.order_number
FROM Orders o
INNER JOIN OrderSubscription os
    ON os.order_id = o.id
WHERE
    o.order_status = 'Active'
GROUP BY
    o.order_number
HAVING
    COUNT(CASE WHEN os.subs_status = 'Active'    THEN 1 END) > 0 AND
    COUNT(CASE WHEN os.subs_status = 'Cancelled' THEN 1 END) > 0 AND
    COUNT(CASE WHEN os.subs_status = 'Pending'   THEN 1 END) > 1;

【讨论】:

以上是关于如何根据多个ID值在Excel表中找出匹配的结果的主要内容,如果未能解决你的问题,请参考以下文章

如何找出同一张表中特定状态的多个计数

如何删除EXCEL表中的大量数据行,要删除的行数大概8万

excel中,如何将一个表的数据根据不同的关键字分成多个表,如下图 在线等=============

excel表中,怎样筛选出多个条件的数据

EXCEL中如何多条件筛选数据?

如何在两个excel表中查找相同数据