使用 google sheet 中的查询根据某些过滤器获取所需的结果

Using query in google sheet to fetch desired result based on some filters

我需要使用查询生成报告。

数据如下:

Model   SerialNumber    IdentityNumber    Status       EmployeeID
Lenovo  12abc           L-001             Issued        E-50
Apple   13abc           M-001             Issued        E-50
Lenovo  12abc           L-001             InStock       E-50
Lenovo  12abc           L-001             Issued        E-51
Lenovo  12abc           L-001             InStock       E-51
Lenovo  12abc           L-001             Issued        E-50

筛选条件是 employeeid、stockstatus 和 identitynumber。如上文所述,发给员工 E-50 的数据身份编号 L-001 和一段时间后员工 (E-50) returned 此资产,因此员工的流动资产仅为 M-001 第二行。我需要使用 google sheet.

中的查询来获取这些数据

我在创建一个附加列后得到了结果,我用 0 和 1 更新了该列。如果资产有库存,则为 1,否则为 0。但是在这个解决方案中,我还必须更新第一行的附加列在员工 return 资产时带有标志 1。如下所示:

Model   SerialNumber    IdentityNumber    Status       EmployeeID    Flag
Lenovo  12abc           L-001             Issued        E-50         1
Apple   13abc           M-001             Issued        E-50         0
Lenovo  12abc           L-001             InStock       E-50         1

是否有任何解决方案可以在不使用额外列的情况下获得所需的结果?

尝试:

=ARRAYFORMULA(QUERY({A:E, {""; IF(A2:A="",,IF(ISEVEN(IFNA(
 VLOOKUP(A2:A&B2:B&C2:C, SORT({A2:A&B2:B&C2:C, IF(A2:A="",,
 COUNTIFS(A2:A&B2:B&C2:C, A2:A&B2:B&C2:C, 
 ROW(A2:A), "<="&ROW(A2:A)))}, 2, 0), 2, 0))), 1, 0))}}, 
 "select Col1,Col2,Col3,Col4,Col5 
  where Col5 = 'E-50' 
    and Col6 = 0", 1))


修正:

=ARRAYFORMULA({A1:E1; QUERY(ARRAY_CONSTRAIN(SORTN(SORT({A2:F, 
 IF(ISEVEN(VLOOKUP(A2:A&B2:B&C2:C&E2:E, SORTN(SORT({A2:A&B2:B&C2:C&E2:E, IF(A2:A="",, 
 COUNTIFS(A2:A&B2:B&C2:C&E2:E, A2:A&B2:B&C2:C&E2:E,  ROW(A2:A), "<="&ROW(A2:A)))}, 2, 0), 
 99^99, 2, 1, 0), 2, 0)), 1, 0), VLOOKUP(A2:A&B2:B&C2:C&E2:E, 
 SORTN(SORT({A2:A&B2:B&C2:C&E2:E, IF(A2:A="",, 
 COUNTIFS(A2:A&B2:B&C2:C&E2:E, A2:A&B2:B&C2:C&E2:E,  ROW(A2:A), "<="&ROW(A2:A)))}, 2, 0), 
 99^99, 2, 1, 0), {2, 1}, 0), ROW(A2:A)}, 10, 0, 8, 0), 99^99, 2, 9, 0), 99^99, 7), 
 "select Col1,Col2,Col3,Col4,Col5 where Col5 = 'E-50' and Col7 = 0", 0)})