Поиск листа для нескольких совпадений в одной строке - PullRequest
1 голос
/ 06 июля 2019

Я хотел бы изменить следующую QUERY или некоторую вариацию формулы, которая приводит к тому же результату, чтобы она вводилась только один раз в верхней части столбца и заполняла ячейки ниже, используя ARRAYFORMULA

=IFERROR(QUERY(Items!$A$2:$T,"SELECT E,F,G,H,I,J,K,L,M,N,O,P,Q,R where A = '"&Estimate!A2&"' and B = '"&Estimate!B2&"' and C = '"&Estimate!C2&"' "&if(Estimate!D2<>"", "and D = '"&Estimate!D2&"'",)&" AND A is not null LIMIT 1", 0),"")

Моя формула в смете! G2 моя таблица .

Ответы [ 2 ]

2 голосов
/ 06 июля 2019

этот ответ в значительной степени правильный, хотя точная формула будет:

=ARRAYFORMULA(IF(LEN(A2:A), VLOOKUP(A2:A&B2:B&C2:C&IF(LEN(D2:D), D2:D, "*"), 
 {Items!A2:A&Items!B2:B&Items!C2:C&Items!D2:D,Items!A2:T}, 
 {6,7,8,9,10,11,12,13,14,15,16,17,18,19}, 0), ))

0

2 голосов
/ 06 июля 2019

Я думаю, вам придется использовать Vlookup, который не так удобен, как Query.Это то, что я имею до сих пор, но может потребоваться немного больше работы, чтобы получить точно такие же результаты, что и запрос во всех случаях (из-за оператора ORDER в запросе):

=ArrayFormula(if(A2:A="","",vlookup(A2:A&B2:B&C2:C&if(D2:D="","*",D2:D),{Items!A2:A&Items!B2:B&Items!C2:C&Items!D2:D,Items!A2:T},{2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21},false)))

enter image description here

...