Google E-Tablolar'da ARRAYFORMULA'yı QUERY ile kullanma


11

Bir listedeki her satır için çalıştırılması gereken bir sorgu var. Tek bir satır için yazıldığında güzel çalışır:

QUERY(MaraRankData,
  "select J,I,H,G,F,E where 
    A='"&E3&"' and 
    B='"&B3&"' and 
    C="&C3&" and 
    D="&D3&"",
  0
)

Bu, istendiği gibi bir veri satırı çıktısı verir. Ama ARRAYFORMULA içine sarın, hala birçok yerine sadece bir satır çıktı:

=ARRAYFORMULA(
  QUERY(MaraRankData,
    "select J,I,H,G,F,E where 
      A='"&E3:E&"' and 
      B='"&B3:B&"' and 
      C="&C3:C&" and 
      D="&D3:D&"",
    0)
)

Google E-Tablolar herhangi bir hata atmıyor, bu yüzden ne yaptığımı bilmiyorum. ARRAYFORMULA'nın QUERY'imle çalışmasını nasıl sağlayabilirim, böylece her satırda formülü tekrarlamak zorunda kalmam?


Bir Sorgu () formülünü Arrayformula ile sarma hakkındaki kırmızı kırmızı şarapla yorumu desteklemek. Bir dizi türü sonucu döndüren / üreten herhangi bir formülü sarmak gereksizdir. Arrayformula'yı "Filtre", Benzersiz, "" Devrik ", vb. İçin uygulamaz
Xzila

1
Ayrıca çoğu zaman bir Sorgu kullanabilirsiniz, Filtre formülü çalışır. Eminim sorununuzu bu şekilde daha kolay çözebilirsiniz.
Xzila

@ Xzila Bunu yapmak için bir yolunuz varsa filter, lütfen bir cevap gönderin: Böyle bir çözümle ilgilenirim.

2
=FILTER({E:E,F:F,G:G,H:H,I:I,J:J},A3:A=E3:E)İlk bölüm, kıvırcık parantez içindeki sütunları yeniden sıralamaktır. İkincisi, A'dan E'ye, B'nin kendisine baktığı, C'nin kendisine baktığı, vb. Gibi tek sütun gibi görünmesidir. Belki de anlamıyorum.
Xzila

Yanıtlar:


10

arrayformula(query(...))Kombinasyon desteklenmez; querybir dizi diziyi işleme veya bir dizi sorgu dizesi yürütme kavramı yoktur .

İki seçeneğiniz vardır: (a) queryher satırda tekrarlayın ; (b) vlookupaşağıda açıklandığı gibi veri sütunlarını almak için kullanın . Örneğin:

=arrayformula(vlookup(E3:E, {A3:A, J3:J}, 2, false))

E3: E'nin bir elemanını bir seferde alır, bu elemanı A sütununda bulur ve J sütununun karşılık gelen elemanını alır. Bu yaklaşımla J, I, H, G, F sütunlarını almak için altı ayrı vlookup'a ihtiyacınız olacaktır. E, ancak her satır için ayrı bir komuta ihtiyacınız olmayacak.

Bir komplikasyon, vlookupyalnızca bir arama anahtarını kabul etmesidir ve 4 parametreye göre arama yapmak,

A='"&E3&"' and 
B='"&B3&"' and 
C="&C3&" and 
D="&D3&

Bu, bunları tek bir arama anahtarında birleştirerek çözülebilir: Z gibi bir sütununuz olabilir,

=arrayformula(E3:E & "|" & B3:B & "|" & C3:C & "|" & D3:D)

bu, dört arama parametresini bir boru ile sınırlandırılmış arama anahtarına birleştirir. Aranacak tablonun aynısını yapın ve ardından bu tuşları kullanarak karşılaştırın vlookup.


3
İlk ifade ile ilgili olarak, arrayformula içindeki sorgulama ilk argüman için çalışır. Bkz. Webapps.stackexchange.com/a/97658/88163
Rubén
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.