Soo meiner Meinung nach funktioniert es, es kommen jedenfalls die gleichen Werte wie mit der MITTELWERT()-Funktion von Excel raus

Sag einfach Bescheid!
Edit: Die Änderungen sind eigentlich, dass nun nicht das erste Feld der Spalte, sondern das Feld mit dem Index $startspalte geprüft wird, sowie die Anweisung array_values nach der Summation, um unabhängig von den Spaltenindizes die Summen einfacher durchlaufen zu können.
PHP-Code:
<?php
// CSV-Datei öffnen
$fh = fopen('bsp3.csv', 'r');
$lines = array();
// Zeilenweise einlesen (fgetcsv für gleichzeitiges Lesen und "Splitten")
while(($line = fgetcsv($fh, 0, ';')) !== false) {
$lines[] = $line;
}
// Datei schließen
fclose($fh);
/*
* 2-Dimensionales Array ablaufen und Zeiten aufsummieren
* ACHTUNG: i-Schleife beginnt mit 1 um die Kopfzeile der CSV-Datei zu überspringen
*/
$sums = array();
$count = 0;
for($i=1; $i<count($lines); $i++) {
// Festlegen, welches die Start- und Ende-Spalten sind, dabei hat die erste Spalte den Index 0
$startspalte = 3;
$endespalte = 7;
if(!empty($lines[$i][$startspalte])) {
$count++;
for($j=$startspalte; $j<$endespalte; $j++) {
// Falls es der erste Durchlauf ist, wird die Summe mit 0 vorbelegt
if(!isset($sums[$j]))
$sums[$j] = 0;
// Wert nach Minuten und Sekunden auftrennen und als Sekundenwert ablegen
$time = preg_split('/:/', $lines[$i][$j]);
$seconds = $time[0] * 60 + $time[1];
$sums[$j] += $seconds;
}
}
}
// Durch array_values werden die Indizes des Arrays umgewandelt, um den Durchschnitt einfacher
// berechnen zu können (siehe http://php.net/manual/de/function.array-values.php)
$sums = array_values($sums);
/*
/*
* Durchschnitt der einzelnen Spalten bilden
*/
$averages = array();
for($i=0; $i<count($sums); $i++) {
// Summe aus dem Array holen und durch Anzahl der Zeilen (in $count ermittelt) teilen
// --> ergibt den Durchschnittswert in Sekunden
$seconds = $sums[$i] / $count;
// Volle Minuten bestimmen, eventuell mit führender 0
$avg_minutes = str_pad(floor($seconds / 60), 2, '0', STR_PAD_LEFT);
$avg_seconds = str_pad(($seconds % 60), 2, '0', STR_PAD_LEFT);
$averages[] = $avg_minutes . ':' . $avg_seconds;
}
// Testweise ausgeben lassen :)
print_r($averages);