Multiple AverageIf in Excel

Ho una scheda di dati di Excel con un sacco di righe che sembra qualcosa di simile

C1 C2 Value --- --- ----- AC 0.228 BD 0.234 AD 0.359 AC 0.125 ... 

Voglio trovare la media del Value where C1 = A e C2 = D , qual è il modo migliore per andare a fare questo? So che sono le AVERAGEIF e COUNTIF e SUMIF , ma non sembrano funzionare con più condizioni …

  • Concatenare una gamma con valori tra
  • è ansible avere due assi Y e due assi X sulla stessa tabella
  • Ricerca targeting delle celle unite - solo il valore restituito per la prima row
  • Come posso get una cella in Excel per regolare automaticamente la sua altezza per adattarsi al contenuto di text avvolto?
  • Selezionare l'intera colonna tranne le prime celle X (header) in Excel
  • Come trasformare centinaia di URL di text in Excel in collegamenti ipertestuali cliccabili?
  • In excel, non riesco a capire perché il colore di background per una cella non cambierà?
  • Intestazioni a più righe e Excel 2007 sorting / filtraggio
  • 2 Solutions collect form web for “Multiple AverageIf in Excel”

    In Excel 2007 e successivi è ansible utilizzare la function AVERAGEIFS, come:

     =AVERAGEIFS(C2:C5, A2:A5, "A", B2:B5, "D") 

    È sempre ansible utilizzare il linguaggio VBA incorporato. Ho appena provato questo e funziona – YMMV.

    Vai a Strumenti | Macro | Visual Basic Editor.

    Verrà aperta una nuova window.

    Vai a Strumenti | Riferimenti. Fare clic sulla casella di controllo accanto a Seleziona libreria Microsoft ActiveX Data Objects 2.5. Fai clic su Ok.

    Fare doppio clic su Sheet1 dall'elenco a sinistra. (Project Explorer) – il foglio potrebbe essere denominato in modo diverso.

    Copiare e incollare il codice riportto di seguito nella window di codice (la window con i due listini a discesa in alto)

    Vedere la row evidenziata di seguito – modificarla per assicurarvi di definire il path completo della cartella di lavoro di Excel. vale a dire:

     sXLSFile = "s:\brad\book1.xls" 

    Fai clic sul menu Esegui, quindi fai clic sull'opzione Run Sub / Userform (F5).

    Tutte le cose sono uguali (!), Dovresti aprire una window di messaggio con la media delle righe selezionate – vedi la seconda linea evidenziata sotto la quale effettua la query.

     .Open "**select avg(value) from [sheet1$] where c1='A' and c2='D'**" 

    Basta cambiare la row sopra per cambiare la query – per esempio se volete la media where C1 = "B" e C2 = "A"

     Sub Main() Dim sXLSFile As String Dim cn As ADODB.Connection Dim rs As ADODB.Recordset ' set the location of the Excel worksheet **sXLSFile = "s:\brad\book1.xls"** Set cn = New ADODB.Connection With cn .Provider = "Microsoft.Jet.OLEDB.4.0" .ConnectionString = "Data Source=" & sXLSFile & ";Extended Properties=Excel 8.0;" .Open End With If Not cn Is Nothing Then Set rs = New ADODB.Recordset With rs Set .ActiveConnection = cn .Open "**select avg(value) from [sheet1$] where c1='A' and c2='D'**" MsgBox "The average is: " & rs(0) End With End If If Not rs Is Nothing Then If rs.State = adStateOpen Then rs.Close End If End If Set rs = Nothing If Not cn Is Nothing Then If cn.State = adStateOpen Then cn.Close End If End If Set cn = Nothing End Sub 

    Spero possa aiutare!

    Riferimento: http://support.microsoft.com/kb/257819

    Siamo il genio del computer e della rete.