Numbers Zähler

DieMathematik

Aktives Mitglied
Thread Starter
Dabei seit
23.01.2014
Beiträge
204
Reaktionspunkte
8
Kia Ora Freunde des MacUserForums,
ich habe eine Tabelle mit zwei Spalten, wovon die linke Spalte Datumsangaben und die rechte eine Liste mit Städten (getrennt durch Kommata) enthält.

Nun würde ich gerne wissen, Numbers hat ja immer sehr fesche Funktionen und Formeln zum Sortieren, Zählen und sonstigen Sachen.
Gibt es eine Funktion bzw. wenn nicht ist es möglich eine Formel zu bauen, die die Tabelle auswertet und einfach die am meisten vorkommenden Städte absteigend auflistet?

Hier ein Beispiel:
1.Feb Berlin, Hamburg, Darmstadt
2.Feb Karlsruhe, Berlin
3.Feb Berlin, Bremen, Hamburg
4.Feb Rostock

-> Auswertung in dieser Form:
Berlin 3
Hamburg 2
Darmstadt 1
Karlsruhe 1
Bremen 1
Rostock 1

Klingt sehr obskur aber ich habe immer die Hoffnung das sowas irgendwann mal eingebaut wurde und ich es nur nicht finde.

Schöne Grüße und Danke an alle die das Theme lesen oder gar eine Idee haben.
 
Ausgehend von:
Zelle A1:A9 ist Datum und ist nicht relevant
Zelle B1:B9 sind deine Städte, durch Kommata getrennt
Spalte C in Zelle C1, dann C2, dann C3 usw.

Zelle C1: =ZÄHLENWENN(B1:B9;"*Bremen*")
Zelle C2: =ZÄHLENWENN(B1:B9;"*München*")

Geht bestimmt auch noch eleganter;)

Edit: Hier noch als Bild
Zählewenn.png
 
Vielen dank (sehr spät!) für Deine Antwort. Das ist doch schon mal was, eine sehr gute Möglichkeit. Wenn es jetzt noch eine Möglichkeit gebe das pauschal für alle vorkommenden Strings (also Ortsnamen getrennt durch Komma) zu machen und zu sortieren wäre ich glücklich. Aber das ist schon mal eine sehr gute Funktion, danke Dir!
 
Funktionen kannst du ja "verschachteln". Ich schüttle das jetzt leider auch nicht aus dem Ärmel, sonst würde ich dir gerne gleich eine Lösung präsentieren.
Müssen die Städtenamen denn unbedingt innerhalb einer Zelle mit Kommata getrennt erscheinen und wenn ja, warum?
Ich würde die Namen der Städte eher in unterschiedliche Zellen schreiben und dann weiter machen.
 
Funktionen kannst du ja "verschachteln". Ich schüttle das jetzt leider auch nicht aus dem Ärmel, sonst würde ich dir gerne gleich eine Lösung präsentieren.
Müssen die Städtenamen denn unbedingt innerhalb einer Zelle mit Kommata getrennt erscheinen und wenn ja, warum?
Ich würde die Namen der Städte eher in unterschiedliche Zellen schreiben und dann weiter machen.
Hallöle, ne relevant ist es nicht mit dem Komma. Sie können auch hintereinander in Zellen einer Zeile stehen. :)
 
Ich habe dir jetzt noch mal mein erstes Beispiel bearbeitet.
Wenn ich dich richtig verstanden habe war das die Frage aus #1 und zum Teil der Hinweis aus #3.
Einzig die gewünschte Sortierungsfunktion verstehe ich nicht. EDIT: Gemeint ist, dass du das doch mit der vorhandenen Formel bauen kannst.

Die Formel zählt dir immer alle in das grün unterlegte Eingabefeld eingebenen Städte, getrennt nach Kommata. Zu beachten ist allerdings, die Städtenamen im Eingabefeld zwischen Sternchen zu setzen also z.B. *München*.

EDIT: Sehe gerade, dass die Formel die Überschrift (Städtenamen) mit einbezieht. Sauberer wäre es, die Funktion "Zählewenn" in Zelle B2 beginnen zu lassen.
 

Anhänge

  • IMG_0669.PNG
    IMG_0669.PNG
    87,7 KB · Aufrufe: 99
Reicht das so? Das Formelfeld kannst du ja ausblenden. Das ist wie gesagt eine sehr einfache Möglichkeit;)

IMG_0670.PNG
 
Kia Ora KOJOTE,
erst einmal herzlichsten Dank, dass Du Dir die Mühe gemacht hast mir dabei zu helfen.
Das klappt so wie Du das gebaut hast hervorragend, danke schön.

Was ich mit der Sortierfunktion gemeint habe ist folgendes:
Ich möchte nicht alle Städte einzeln eintippen die zu zählen sind, sondern dass das Programm alle Strings (Städte) sieht und sie dann alle automatisch zählt und dann absteigend sortiert. Also das Programm sieht beispielsweise dass Berlin in der Liste steht und zählt es. Dann sieht es Hamburg und zählt es. Dann sieht es Bremen, zählt es und packt es vor Hamburg da es öfter vorkommt usw.

Aber diese Vorstellung geht wohl nicht mit normalen Formeln, da sollte ich mir eher ein eigenes Programm schreiben, numbers ist ja nun kein ultimatives Universalprogramm. ;)
 
Doch, das geht schon mit Numbers:D

Wenn ich Zeit hätte, dann würde ich dich herausfordern, wer zuerst fertig ist.
Du mit einer Numbers Formel oder ich mit einem Swift oder Java Programm. Aber hab ich leider nicht. Werde es mal auf meine Liste schreiben, mal wieder ein wenig Programmierpraxis tut sicherlich gut.

Aber wenn du eine Formel parat hast bin ich trotzdem erfreut ;)
 
Ne, hab ich leider nicht. Ich bin da eher interessierter Hobbybastler;)
Ich denke schon dass man das hinbekommen könnte. Wenn ich das aber angehe, wird das ein totales Durcheinander. Ich würde vermutlich mit (S)Verweisen und Zählen Wenn und was auch immer starten, Hilfsspalten usw. anlegen und und...
 
Ne, hab ich leider nicht. Ich bin da eher interessierter Hobbybastler;)
Ich denke schon dass man das hinbekommen könnte. Wenn ich das aber angehe, wird das ein totales Durcheinander. Ich würde vermutlich mit (S)Verweisen und Zählen Wenn und was auch immer starten, Hilfsspalten usw. anlegen und und...
Lebt Frank Elstner eigentlich noch? Top die Wette gilt. Habe gerade aus Prokrastination für gescheite Sachen Xcode geöffnet ...
 
en garde, werte @DieMathematik, würde ich jetzt rufen, hätte ich die Zeit :dance:
Mal sehen ob mich die Lust dennoch packt.

Okay, ich hätte nicht gedacht, dass das so schnell geht, hier meine Lösung mit Swift (gibt es denn hier keine Codeeinrückungsfunktion?)
Code:
import Cocoa
extension String {
    var formDate: Date {
        let dateFmt = DateFormatter()
        dateFmt.timeZone = TimeZone.current
        dateFmt.dateFormat = "yyyy-MM-dd"

        if let date = dateFmt.date(from: self) {
            return date
        } else {
            return Date()
        }
    }
}


var dictDates = [Date:[String]]()
var dictCounter = [String:Int]()

dictDates["2017-01-07".formDate] = ["Berlin", "Dresden", "Leipzig"]
dictDates["2017-01-08".formDate] = ["Gera", "Leipzig", "Magdeburg", "Berlin"]
dictDates["2017-01-09".formDate] = ["Potsdam", "Gera", "Berlin", "Magdeburg"]
dictDates["2017-01-10".formDate] = ["Magdeburg", "Berlin"]
dictDates["2017-01-11".formDate] = ["Berlin", "Schwedt"]

for (date, cityArr) in dictDates {
    for city in cityArr {
        if dictCounter[city] != nil {
            dictCounter[city] = dictCounter[city]! + 1
        } else {
            dictCounter[city] = 1
        }
    }
}

var sort = dictCounter.sorted(by: { $0.1 > $1.1 })
print(sort)
Es ging erstaunlicherweise einfacher als gedacht. Ist nur blöd für etwas das ein Tabellenprogramm können konnte in die Konsole zu gehen...

Schöne Grüße
 
Wenn du Code einbauen willst geht das
Code:
blabalaba

Sorry für zeitgleiches Editieren;)
 
Danke danke, hab meinen Beitrag angepasst. Das Feld wurde bei mir nicht angezeigt, aber den BBCode eingeben kann man ja auch so
 
Dateien kann man hier leider nicht anhängen. Das Bildschirmfoto ist doch recht aussagekräftig;)
 
Zurück
Oben Unten