Ayrık hücrelerde koşullu ortalama hesaplayın


1

Libreoffice calc'in ayrık hücrelerde koşullu bir ortalama hesaplamak için işlevselliğe sahip olup olmadığını bilmek isterim. Bir örnek şöyle olabilir: Row2'de x yoksa, Row1'deki her ikinci hücre için ortalamayı hesaplayın.

     | C1 | C2 | C3 | C4 | C5 | C6 | C7 | C8 | C9
--------------------------------------------------
Row1 |  1 |  2 |  3 |  4 |  5 |  6 |  7 |  8 |  9
Row2 |  x |  x |    |    |    |  x |  x |    |    

C1'den başlayarak sonuç şöyle olmalıdır: ortalama (3, 5, 9) = 5.666666 C2'den başlayarak sonuç şöyle olmalıdır: mean (4, 8) = 6

Her hücre için IF ifadeleri kullanan bir çözüm olmasına rağmen, bunu yapmanın daha rahat bir yolu olup olmadığını bilmek istiyorum. LOOKUP veya COUNTIF gibi bir çözümü aradım ancak tüm bu işlevlerin veri ve koşul için girdi olarak ardışık bir aralığa ihtiyacı var.

Umarım birileri yardım edebilir.

[DÜZENLE]: Cevap

Sonunda tek başıma bir çözüm buldum. Cevap kullanmaktır. SUMPRODUCT başka bir satıra veya MOD fonksiyon:

=SUMPRODUCT(MOD(COLUMN(C1:C9), 2)=0, C1Row2:C9Row2<>"x", C1Row1:C9Row1)/SUMPRODUCT(MOD(COLUMN(C1:C9), 2)=0, C1Row2:C9Row2<>"x")


Excel, koşulların yerine getirilmesi durumunda ortalamayı koşullu olarak hesaplayabilen 'AVERAGEIF' adlı bir işleve sahiptir. Calc aynı şey olup olmadığından emin değilim.
Brad Patton

DAVERAGE işlevini buldum ancak düzgün çalışmasını sağlayamıyorum ve ayrık hücrelerle ilgili sorun devam ediyor ...
pwagner

DAVERAGE muhtemelen istediğin şey değil. Sanırım ya bir makro yazmaya, verilerinizi bir arada olacak şekilde yeniden düzenlemeye ya da formülleri elle yazmaya ihtiyacınız var (yani (C3 + C5 + C9) / 3).
Brad Patton

Yanıtlar:


2

Sonunda tek başıma bir çözüm buldum. Cevap, SUMPRODUCT işlevini başka bir satıra veya MOD işlevine ek olarak kullanmaktır:

=SUMPRODUCT(MOD(COLUMN(C1:C9), 2)=0, C1Row2:C9Row2<>"x", C1Row1:C9Row1)/SUMPRODUCT(MOD(COLUMN(C1:C9), 2)=0, C1Row2:C9Row2<>"x")

0

LibreOffice Calc'a hemen erişim hakkım yok. Bunu kullanarak Microsoft Excel’de yapabilirsiniz. AVERAGEIFS işlevi ve bir "yardımcı satır". Satır 42'yi seçtim. Hücrede A42, girmek =MOD(COLUMN(), 2), ardından sürükleyin / doldurun I42 (diğer bir deyişle, tüm verilerinize karşılık gelecek kadar; örnekte dokuz sütun gösterdiniz). Bu size alternatif bir dizi vermelidir 1, 0, 1, 0,… Öyleyse istediğin cevap

=AVERAGEIFS(A1:I1, A2:I2, "<>x", A42:I42, 1)

yani, içindeki değerlerin ortalaması A1:I1 Satır 2'deki değer “x” değil ve Satır 42'deki değer 1'dir.

“Eğer Row2 bir x içermiyorsa” dedin. Bunu, "eğer karşılık gelen değer ise Satır 2'de değil x ”. "Satır 2'deki karşılık gelen değer yapmazsa" içermek bir x ” (“excel” ve “fox” gibi kelimeler de 1. satırdaki ilgili değeri geçersiz kılar), Muhtemelen bununla başa çıkmak için ikinci bir “yardımcı sıraya” ihtiyacınız olacaktır.

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.