使用 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)})
我需要使用查询生成报告。
数据如下:
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)})