匹配并合并两列数据与第三个单元格相对应的

时间:2019-07-03 05:42:28

标签: excel excel-formula

首先,对标题感到抱歉,因为它可能无法准确解决我所面临的问题,但与之相关。它相当复杂。
我有一个像这样的Excel工作表

Date       | Time   | Table | Bill Number | Unique ID | Status <br>
2019/01/01  0:20:00     A1       0            ABCDEF    Checkin
2019/01/01  0:25:00     A1       112          ABCDEF    First Order
2019/01/01  0:26:00     A1       112          ABCDEF    Default
2019/01/01  0:27:00     A1       112          ABCDEF    Checkout


在这里,我试图将Table A1的总持续时间从checkincheckout
Checkin时间为0:20:00,checkout时间为0:27:00,表示7分钟。
但是问题是签入不显示账单号,仅当有First Order时显示账单号,112A1的账单号。
我想要的是将unique IDTable链接并合并Bill Number,以便可以从Bill Number计算持续时间。
或者,以A1作为账单号获取112的持续时间的最佳解决方案是从登机到结账。 ?

由于唯一ID是唯一的,并且在客户checkin一经链接,则它也与firstorder之后发出的同一客户,同一表和同一帐单号链接

1 个答案:

答案 0 :(得分:0)

这是一个学习如何在Excel中建立逻辑解决方案的好问题。

在数据右侧创建许多新列。不必担心使用过多的逻辑,只需要正确的逻辑即可。我将假设您的数据在A-F列中,而我们正在处理第3行。

G列应为CheckoutID:= IF(F3 =“ Checkout”,E3,“”)

如果使用类似的方法,则会在新列中隔离所有Checkout行。这样,每个UniqueID就会有一个值。

据我所知,您需要的唯一不在该行上的信息就是登记时间。

所以在Columm H中,我们做了棘手的部分:

= IF(G3 =“”,“”,MAXIFS(B:B,E:E,G3,F:F,“ Checkin”))

这表示如果我们在G3中有一个值,那么这是一个Checkout行,然后查找所有检查时间(B:B)中的最大值,其中我们的G3值与原始唯一ID列中的值(E :E)。然后确保我们只在消息列(F:F)中查找“签到”。

它应该将值带回到签入时间的结果列中,但只能在签出行中。它可能看起来像一个数字,但是如果您将该列设置为时间格式,它将看起来像您的“时间”列。时间只是一天的一小部分。

如果然后在该行上求出该值与B列之间的差,则将得到它们在那里的天数。您希望分钟数乘以一天中的分钟数1440。

第一列:

= IF(G3 =“”,“”,(B3-H3)* 60 * 24)

过滤掉空白行,应该这样做。