ubuntuusers.de

Brauche Hilfe zu MS Access oder LO Calc

Status: Ungelöst | Ubuntu-Version: Lubuntu 23.04 (Lunar Lobster)
Antworten |

Zeitreise-001A

Anmeldungsdatum:
30. Mai 2023

Beiträge: Zähle...

Hallo liebes Forum!

Für den Aufbau meines neuen YouTube-Kanals benötige ich die Unterstützung des Forums. Der Kanal wird zu nahezu 100 % aus Playlists bestehen. Diese Playlists haben einen medizinischen Nutzen oder „lösen“ Probleme oder machen andere coole Dinge. Nicht alle Playlists haben eine Erfolgsquote von 100 %. Die Playlists bestehen fast ausschlieslich aus Lieder, die in A4=~432Hz "heruntergepicht" wurden.

Dabei wird folgendes Problem auftreten:

Ein Song, das in Playlist "T" erscheint (manche Subscriber werden es täglich hören), kann auch in einer Notfall-Playlist "N" erscheinen (z.B. gegen physische Gewalt/Suizid). DAS ist das Kernproblem meines Kanals: Wiederholung von Liedern. Wenn man ein Song zu oft gehört hat, kann man es nicht mehr "hören" oder schlimmer noch, man ist „immun“ gegen die gewünschten Effekte in der Playlist geworden. Das zweite Problem ist, dass viel zu wenig Musik in A4=~432Hz von anderen Kanälen [von A4=440Hz] "heruntergepitcht" wurden. Somit habe ich eine begrenzte Auswahl.

Da mein Kanal im Moment im Aufbau ist, möchte ich es von Anfang an etwas professionell machen, mit einem Programm, dass mich dabei unterstützt. Ich denke an MS Access oder Libre Office Calc (ich wurde in Access & Excel zwei Jahre unterrichtet). Ziel ist "etwas", dass mir anzeigt, wann ein Lied zu oft verwendet wird (und einige andere Statiken). Welches Programm empfiehlt ihr mir? Ich würde LO Calc bevorzugen, da ich in Excel etwas besser war als in Access. Wenn es eine Alternative gibt, wie zum Beispiel ein kostenloses GUI-Programm (für Lubuntu 23.04)/eine kostenlose Website, lasst es mich bitte wissen.

Vielen Dank im Voraus für die Unterstützung!

Gutes Wochenende!

Doc_Symbiosis

Avatar von Doc_Symbiosis

Anmeldungsdatum:
11. Oktober 2006

Beiträge: 4453

Wohnort: Göttingen

Hm, Du müsstest mal etwas konkreter werden. Wie sehen denn die Daten aus, die Du auswerten möchtest? Und was heisst "zu viel"? Ein bestimmter Prozentsatz? Oder eine Anzahl?

noisefloor Team-Icon

Anmeldungsdatum:
6. Juni 2006

Beiträge: 29567

Hallo,

Kurzfassung: du willst Statistik machen. Warum ist erst Mal ziemlich egal. Lässt sich ohne Angaben zur Datenquelle bzw. einem Beispiel für die Ausgangsdaten nicht wirklich beantworten.

Gruß, noisefloor

Zeitreise-001A

(Themenstarter)

Anmeldungsdatum:
30. Mai 2023

Beiträge: 9

Die Haupfunktion soll eine automatische Anzeigesein, wenn ein Lied zu oft vorkommt. Auch die Definition von "zu viel" ist dynamisch, entsprechend dem Zweck der Playlist. Ich habe die Formeln noch nicht im Kopf, weil Access den Vorteil bietet, dass man dort grafisch gleichzeitig Datenbanken angezeigt bekommt. Ich habe bereits hunderte Playlists in .txt Format. Im Laufe der Jahre werden Tausende Playlists daraus.

Datenquelle:

Manuelle Eingabe in Form einer Tabelle von allen Liedern (kompletter Name wie er in YT erscheint, Genre, URL von YouTube, ...) der Playlist.

Die Datenbank mit allen Liedern, die auf allen meinen PLaylists sind, ist von Anfang an dynamisch und wächst mit der Zeit. Einige Songs werden gelöscht, wenn ich die Qualitätskontrolle durchführe und feststelle, dass ein Song für diese Playlist nicht geeignet ist oder weil das Video von YT entfernt wurde.

DB1: alle Lieder die im Moment auf meinen Kanal in allen Playlists sind. DB2: Meine Zuhörer sind in Gruppen aufteilt (Geschlecht, Alter, ...)

Gewünschte Ausgabe:

Auf einer "Warnseite" oder möglicherweise nachdem das Programm gezwungen wurde, alle Daten zu analysieren:

Es zeigt in abnehmender Zahl an, welches Lied am häufigsten verwendet wird. Wichtig hier: einige Songs, die in der Vergangenheit (Q3+4 2023) sehr oft verwendet wurden, werden für zukünftige (Q1+2 2024) Playlists gesperrt.

Beispiel: Mozart KVW. 525 erscheint 7 Mal und in den Playlists *1A, *2B, *5A, *11A, *11D, *34F und *49Z. („A“=erste Version der Playlist, „D“ vierte Version derselben Playlist (gleicher Zweck, identischer Name ausser den Buchstaben (z.B. "X"), der angibt, um welche Version der Playlist es sich handelt). Dann schaue ich, ob das ein Problem für meine Zuhörer ist. Wenn KVW. 525 in zwei Playlists vorkommt, welche die selbe Gruppe täglich hören sollte (und es auch nur eine „A“-Version von jeder dieser Playlists gibt (Version „B“ dieser Playlist wurde noch nicht erstellt), dann muss ich Mozart aus einen der Playlists entfernen.

Weitere Fragen? Soll ich etwas detallierter beschreiben?

noisefloor Team-Icon

Anmeldungsdatum:
6. Juni 2006

Beiträge: 29567

Hallo,

Weitere Fragen? Soll ich etwas detallierter beschreiben?

Nein. Du sollst das auch nicht in Volltextprosa beschreiben, weil das ziemlich wenig bringt. Du solltest schon einen Ausschnitt der Daten zeigen bzw. meinetwegen auch erfundene Daten, die aber von der Struktur her den tatsächlichen Datensätzen entsprechen. Idealerweise erst mal so 10-20 Datensätze für den Anfang.

einige Songs, die in der Vergangenheit (Q3+4 2023)

Ich weiß ja nicht ganz genau, welcher Zeitrechnung du folgst, aber nach dem im allgemeinem angewendeten gregorianischen Kalender ist per Stand heute, 11.8.2023, Q3 jetzt und Q4 ist in der Zukunft...

Gruß, noisefloor

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17622

Wohnort: Berlin

Also man könnte die Lage so beschreiben: (?)

Da ist eine Songlist, eine Tabelle, mit Song (id, name, Prosainfo...).

Dann eine Playlist, die in Deinem Fall im Namen codiert ist, ein Sternchen für was auch immer, eine id (1, 2, ...) und eine Variantennummer (A, B, C, ...) , wenn ich es richtig verstanden habe, Versionsnummer würde ich es nicht nennen, da bei Software eine neue Version die alte verdrängt. Deine Beschreibung habe ich so verstanden, dass die Playlists A, B, ... nebeneinander existieren können und sollen, so dass jmd. eine gewisse Zeit Stücke aus 1A hört, dann, zur Abwechslung, 1B, evtl. 1C aber dann vielleicht auch wieder 1A.

Relational gedacht brauchen wir eine id die keine Bedeutung trägt, dann eine Indikation (T, N, ...), dann die Songid.

Dann User mit userid, evtl. name, evtl. Indikation, wenn es pro User nur eine Indikation gibt. Gibt es mehrere, müsste man dafür eine weitere Kreuztabelle haben, so dass User 1 evtl. Indikation T, N, X hat, u2 N, Y, u3 T, Y.

Hm. Es gibt nicht pro User eine eigene Playlist, richtig? Ein Song kann ja auch (theoretisch) für mehrere Indikationen geeignet sein. Kommt aber vielleicht in der Praxis nicht vor.

Hast Du überhaupt schon von der Normalform relationaler DB gehört?

Bei vielen Usern, vielen Playlists, Varianten und vielen Songs droht Dir rasch ein Komplexitätsproblem. Könntest Du auch damit arbeiten, dass die Playlists dynamisch für jeden User getrennt erzeugt werden?

Ein Lösungsansatz wäre dann nämlich, dass man noch eine Tabelle pflegt, in der pro User und Indikation die maximale Songid gespeichert wird, die dieser bisher gehört hat, und seine nächste Playlist wird nur Songs mit höherer ID enthalten, außer er kommt ans Limit, wo es wieder mit 1 losgeht.

Womöglich willst Du aber 1x im Monat die Playlistzuordnung kontrollieren/aktualisieren. Indikation (t, n, x, ... (Kleinbuchstaben zur Unterscheidung von Varianten)) ist die Hauptkategorie der Playlist, Variante (A, B, ...) die Unterkategorie, und die User wissen vielleicht selbst, dass sie nach soundsoviel Tagen/Wochen/Monaten zur nächsten Variante springen sollen.

Das Problem ist, dass User 1 das für Indikation a Song I (röm. 1) und für Indikation b Song I hören soll, aber 2x der gleiche soll vermieden werden. Auch soll vermieden werden, dass er 3 Wochen nach Ind. a Song I in Variation A hört, dann in Variation B nicht mehr, aber jetzt der gl. Song für Indikation b in Variante B auftaucht.

Das könnte man versuchen zu vermeiden, in dem man bestimmt, was die Maximalzeit ist, bis ein Song wiederholt werden kann und was die Minimalzeit ist, die man auf einer Variante verharrt.

Angenommen die Mindestzeit ist 4 Wochen, die man die gl. Playlist hört, und dann sollen 16 (4*4) Wochen Pause sein, bis der Song wiederholt werden kann. Dann müsste man dafür sorgen, dass der Song bei jeder Indikation nur in den Varianten A, (nicht B, C, D), E, (nicht F, G, ...), ... auftaucht und die Indikationen pro User immer Variantensynchron sind, d.h. ein Song kann bei tA und tE auftauchen und bei nA und nE, aber nicht bei tA und nB. Dann hätte man aber immer noch das Problem, dass der Song auf tA und nA zugleich ist. Der Song dürfte also bei Indikation a nur in Liste A auftauchen, nicht in E usw., in Indikation b dagegen nicht in A, sondern in E und nur in E, in Indikation c dann in Variante I (groß i).

Dazu müssen aber die Zeitintervalle alle gleich groß sein oder man müsste den größen gemeinsamen Teiler bestimmen und mit einer Rotation durch entsprechend mehr Varianten arbeiten. Mithilfe eines Modulooperators könnte man aus der Songid ableiten, in welche Variante er gehört.

Bleiben wir mal bei 4 Varianten und 16 Wochen Pause. Songid wäre 123. 123 Modulo 4 ist 3, d.h. er käme in den 3. Slot, das ist Variante C. C wäre dann für Indikation a, für Indikation b wäre es C+4=G, für Indikation c wäre es C+8 usw. Dann würde jeder auch bei mehreren Indikationen und daher Playlists immer die Mindestpausen einhalten. Nachteil: Jemand mit nur einer Indikation würde weit länger auf die Wiederholung warten müssen, als für ihn individuell eigentlich nötig und Du musst sehr viele Songs vorhalten, damit auch nach 13 Wochen noch eine Playlist gefunden wird.

Wenn man jetzt aber dazunimmt, dass es pro Indikation unterschiedliche Pausenlängen gibt, oder je User, oder beides, dann explodieren die Möglichkeiten.

Wie viele Indikationen gibt es denn? Wie viele Songs gibt es? Wie viele User? Wie viele Playlists?

Bei wenigen Usern lohnt sich der Aufwand ja gar nicht.

Übrigens kommt mir das ganze ziemlich esoterisch vor.

Zeitreise-001A

(Themenstarter)

Anmeldungsdatum:
30. Mai 2023

Beiträge: 9

user_unknown schrieb:

Wenn man jetzt aber dazunimmt, dass es pro Indikation unterschiedliche Pausenlängen gibt, oder je User, oder beides, dann explodieren die Möglichkeiten.

DANKE! Sehr wichtige Info. Die Pausenvideos sind 2-5 Sekunden Videos mit Stille. Somit kommen diese nicht in der Datenbank vor.

Wie viele Indikationen gibt es denn?

Da bin ich mir noch nicht sicher. Ich denke 5-7.

Wie viele Songs gibt es?

Dynamisch. Sollte Ich meine 400+ Playlists online haben basieren diese auf min. 1200 Songs aus einer Quelle von 4500 Lieder(hier gibt es bereits zuviel Wiedeholungen, was die Wirkung der Playlists schnell mindert. Es fallen auch manchmal Lieder weg, weil YouTube diese blockt oder der Channel es auf "privat" stellt.

Schätzung: Monat 1: 400 Lieder Monat 2: 700 Lieder Monat 3: 900 Lieder Monat 4: 1000 Lieder Monat 5: 1075 Lieder Monat 6: 1100 Lieder (Weihnachten). Jahreswechsel (Halbjahr 2024): ich darf wieder bei NULL (NEUE frische Musik, die man in HJ 2023 nicht (viel) gehört hat) anfangen und neue Versionen von alten Playlists machen und noch weitere nocht nicht zuvor vorhandene Playlists neu schaffen. ALLE Playlists von HJ 2023 werden jetzt nicht mehr bearbeitet, bis auf Ersetzen von Videos die gelöscht wurden.

Wie viele User?

2 Gruppe 1: Nur Erwachsene (auf einen zweiten YouTube-Kanal) Gruppe 2: Jedermann (von Jung bis Alt)

Wie viele Playlists?

Jede einzelne Playlist ist Handarbeit auf YouTube. Monat 1 ca. neue 150 Playlists Monat 2 ca. 130 Playlists Monat 3 ca. 100 Playlists. Je mehr Playlists ich habe, desto aufwendiger wird es alles zu pflegen (Qualitätsmanagement, gelöschte Videos entfernen, Playlistbeschreibung erstellen & pflegen, ...). Dieser steigende Zeitaufwand rediziert die Möglichkeiten, neue Playlists zu erstellen

Bei wenigen Usern lohnt sich der Aufwand ja gar nicht.

Verstehe ich nicht. Bitte um weitere Details.

Übrigens kommt mir das ganze ziemlich esoterisch vor.

1: Ich bin aktiver Christ. 2: Ich habe keine Ahung woher ich dies "Gabe" habe, Lieder so stark differenzieren zu können. Es fing 2017 unauffällig mit meiner Playlist mit der größten Verantwortung an (eine Playlist mit Liedern ausschlieslich in A4=~432Hz gegen Selbstmord). Langsam sind daraus immer mehr Playlists gweorden. Einige sind NUR für mich gedacht (gegen Schwindel/Übelkeit), dennoch stehen sie online falls sie jemand anderen auch helfen. Die Erfolsrate von einigen PLaylist (bei mir) reichen von 100% (wenige Sekunden nach dem hören des ersten Liedes in der Liste, will ich niemanden mehr die Fresse pulieren), andere haben vielleicht 20% Erfolgsquote. Nach vielen Jahre ist mir eins klar, diese "Gabe" kann nichts anderes als ein Geschenk Gottes ein, was nicht heisst, dass ich auch Fehler mache und komplette Playlists loeschen muss. Weil ich Monopolist auf YouTube bin und ich nicht will, dass andere versuchen meinen Kanal zu kopieren, bleibt alles mein Geheimniss WIE jede Playlist entsteht (Auswahlkriterien, ...). Dennoch mache ich dies nicht, um Leute an mein 100% KOSTENLOSES und nicht monetarisierten und unveriefizierten Channnel zu binden, sondern um Chaos und Verwirrung auf YouTube zu vermeiden. 3: Viele Playlists waren im grossen und ganzen laut meiner Eigeneinschaetzung sehr effektiv.

Trivia: Die Analytics von YouTube ist zu 100% DRECK und ABSICHTLICH falsch. YouTube zahlt 0,09USD/view den grossen Musikern. Zeigt YT viel weniger views als in in Wirklichkeit an: bestiehlt YouTube JEDEN einzelnen YouTube-Kanal (entgangener Gewinn, weil er berühmter ist als die Statistik anzeigt und viele ZERSTÖRTE Leben, die nie reich wurden). Deswegen habe ich auch die offizielle Preise veröffentlicht, um die 100% FAKE Statistiken von YouTube, Twitter, Instagram und Fakebook auf YouTube unter cc0-Lizenz veröffentlicht. 2017 am Teuersten waren 100.000 FAKE views auf YT 466EUR. Etwa 2020 sind es ~520 EUR für 50.000 Fake views auf YT gewesen, Kommetare/likes sind viel billiger. Dennoch kann ich es mir nicht "leisten" Alhabet mit Sammelkalgen den Erdboden gleich zu machen, weil YouTube selber ein Monopol ist und nach einer erfolgreichen Sammelklage, sie nicht mehr ausreichend Geld haben, um die Lizenzen von den "grossen" Musikern, Mitarbeiter oder gar die Stromrechnung zu zahlen. Von ALL dem habe ich Beweise und koente das Unternehmen auf den 3 fachen Wert der damilgen Marktkapitaliesrung verklagen: 6 Billionen USD. Am selben Tag der Einreichung der Klage Die Mitarbeiter können sich einen neuen Job suchen.

Das alles würde mir auch schaden, denn dann würde ich meine Plattform als Musiktherapeut & DJ verlieren, und ich kann dann nicht mehr kostenlose Heilung?Verbesserung fuer Jedermann anbieten.

Weitere Fragen? Mehr Details? Soll ich Screenshots von LO Calc mit Beispielen veröffentlichen?

Nichts desto trotz: Herzlichen Dank bishierher!

Zeitreise-001A

(Themenstarter)

Anmeldungsdatum:
30. Mai 2023

Beiträge: 9

noisefloor schrieb:

Hallo,

Weitere Fragen? Soll ich etwas detallierter beschreiben?

Nein. Du sollst das auch nicht in Volltextprosa beschreiben, weil das ziemlich wenig bringt. Du solltest schon einen Ausschnitt der Daten zeigen bzw. meinetwegen auch erfundene Daten, die aber von der Struktur her den tatsächlichen Datensätzen entsprechen. Idealerweise erst mal so 10-20 Datensätze für den Anfang.

Besipiel:

Gruppe2 (Jung bis Alt) hat im Moment alle Playlists von Channel 1 (Channel 2 Nur für Erwachsene, sollte wesentlich weniger Musik haben):

Playlists mit Namen: Diese PLaylist MUSS sollange gehoert werden, bis man den Durchbruch erreicht hat (ausser bei Sachen, die eine medizinische Begleitung benoetigen, da evtl ein Todesfall auftreten kann durch Entzugerscheinungen)

FREIHIT 1A von jeglichen Süchten (Empfehlung Montag Versionen 1A-1C hoeren)

FREIHIT 1B von jeglichen Süchten

FREIHIT 1C von jeglichen Süchten

FREIHIT 1D von jeglichen Süchten (Empfehlung Dienstag Versionen 1D-1F hoeren)

FREIHIT 1E von jeglichen Süchten

FREIHIT 1F von jeglichen Süchten

FREIHIT 1G von jeglichen Süchten (Empfehlung Mittwoch Versionen 1G-1I hoeren)

FREIHIT 1H von jeglichen Süchten

FREIHIT 1I von jeglichen Süchten

FREIHIT 1J von jeglichen Süchten (Empfehlung Donnerstag Versionen 1J-1L hoeren)

FREIHIT 1K von jeglichen Süchten

FREIHIT 1L von jeglichen Süchten

Am Freitag gehts wieder mit Versionen 1A-1C los. FREIHEIT 1A-L haben alle 15 unterschidliche Songs, die sich in der Serie FREIHEIT 1? niemals wiederholen. GROSSES Problem hier: erreicht man sein Ziel nicht von der Sucht 100% frei zu werden und verhindert Monate danach keine Rückfälle BEVOR man immun wird diese Lieder zu hören, dann war alles umsonst und man hat auch noch einen kleinen Schaden genommen: Von Vielen Liedern ist man "traumatisier" durch zu oft hören, kann es vorkommen, dass man bestimmete Lieder sehr lange nicht mehr hören kann.

Weitere Playlists:

MOTIVATION 1A zum Tanzunterricht (60 Lieder, wird sporadisch aufgerufen), habe ich allerdings mehrere Lieder hier die in FREIHEIT 1A-L vorkommen, haben wir die Zahl 2 (Ein Lied kommt in zwei Playlists vor). Da siese selten aufgerufen wird, spielt das keine keine grosse Rolle, obowhl die Playlist etwas an Wirkung verliert, weil ich davon ausgehe, dass wenn ich die Serien FREIHEIT 1A-L veröffentliche, dass sich fast ALLE Kunden darauf stürzen werden.

GUTER START 1A in den Sonntag (12 Lieder, jeden Morgen)

GUTER START 2A in den Montag

GUTER START 3A in den Dienstag

GUTER START 4A in den Mittwoch

GUTER START 5A in den Donnerstag

Guter Start 6A in den Freitag

Guter Start 7A in den Samstag

Kommen wieder mehrere Lieder von Freiheit 1A-L in GUTER START ?A auch vor, dann ist die Kake am dampfen! Die nominale Zahl 3 ist erreicht (2 mal bei PLaylists, die sehr oft/täglich gehört werden, 1 mal bei der Tanzmusik).

JETZT kommt meine Suchfunktion (HERZ meiner Datei) ins Spiel und gibt mir folgenden output

3 mal kommen die Lieder "Hello", "I love you", "Tux and Linux" vor.

Der Wert 3 ist nomnial. Ich werde die Playlists die täglich vorkommen anders gewichten, als die Playlists, die nur sporadisch genutzt werden.

Damit ergibt sich ein Neagtiv-Score fuer jedes einzelne Lied. Ist der Wert hoch, muss ich solche Lieder aus einigen Playlists subtituieren.

Sind SCREENSHOTS von Calc hilfreich? Danke bis hierher!

noisefloor Team-Icon

Anmeldungsdatum:
6. Juni 2006

Beiträge: 29567

Hallo,

du checkst es echt nicht... bzw. inzwischen glaube ich eher, dass dein ganze Geschreibe eher getrollte als ein reales Problem ist.

Egal, dein Problem. Viel Erfolg noch, sowohl mit deinem "Problem" als auch deinem YouTube Kanal.

Gruß, noisefloor

Zeitreise-001A

(Themenstarter)

Anmeldungsdatum:
30. Mai 2023

Beiträge: 9

Danke ich glaube alleine haben wir die Frage beantwortet! Vielen Schank für meine Mitarbeit in euren Arbeitspausen in der Warteschlange für Hartz 5...

Die Entscheidung ist gefallen:

MS Excel wird angewendet!

SAU-gerechte Anleitung für einen DAU:

  1. Lubuntu 23.04 auf Windows 11 backupen.

  2. Virtual Box für Windows 11 herunterladen und installieren.

  3. In Virtual Box Lubuntu 23.04 installieren (das spart ein haufen Ressourcen).

  4. In Lubuntu 23.04 wird Virtual Box für Ubuntu 22.04 heruntergaladen und installiert.

  5. In Virtual Box, das jetzt auf den Ressourcensparsamen Lubuntu 23.04 installiert ist, wird die Windows 11 CD ins DVD-Laufwerk reingestckt, bis sie gut drin sitzt.

  6. Man folgt den Bildschirmanweisungen und gibt ggf. den Lizenzkey von Windos 11 ein.

  7. MS Office (muss Excel enthalten) Paket von der offizielen Herstellerseite von Microsoft kaufen, herunterladen und installieren.

  8. Excel öffnen und dann im Forum fragen, ob diese Anleitung so vollständig und verständlich ist?

xxx

Vielleicht letzte Fragen: 1) Wenn ein Beitrag als gelöst markiert wurde ist dan dieser Beitrag gesperrt fuer weitere Kommentare?

Falls ich evtl. Hilfe brauche fuer eine Formel, sollte ich in diesem Fall einen neuen Beitrag erstellen?

Der HOAX von oben ist mein Geschenk an euch (und an die vielen Jahre der freundlichen und va. schnellen Antworten, was der Hauptgrund ist weil ich fast nur etwas aus der Ubuntufamilie verwende: SUPER SUPPORT SEIT VIELEN JAHREN! Chapeau!

Bearbeitet von rklm:

Aufzählung. Bitte beachte Forum/Syntax und nutze die Vorschaufunktion!

Zeitreise-001A

(Themenstarter)

Anmeldungsdatum:
30. Mai 2023

Beiträge: 9

noisefloor schrieb:

Hallo,

du checkst es echt nicht... bzw. inzwischen glaube ich eher, dass dein ganze Geschreibe eher getrollte als ein reales Problem ist.

Egal, dein Problem. Viel Erfolg noch, sowohl mit deinem "Problem" als auch deinem YouTube Kanal.

Gruß, noisefloor

Erstens: Meine Berufsausbildung war 2009-2011. Deswegen kann ich mich nicht so richtig an MS Access und dessen Faehigkeiten erinnern. Calc verwende ich sporadisch für simple Rechnungen. Ich erinnere mich, dass Access Fähigkeiten hat, die Calc nicht kann (Pfeile zwichen Datenbanken).

Zweitens: Bisher habe ich dieses "Programm" nur in meinen Kopf gehabt. DANK eurer Fragen bin ich gezwungen gewesen alles erst mal niederzuschreiben. Selbstverständlich ist es nicht meine Absicht eure Zeit zu verschwenden. Falls ich diesen Eindruck erweckt habe, entschuldige ich mich aufrichtig bei allen.

Ich probier erst mal einen kleinen Datensatz als Simulation in Calc aus. Funktioniert es, dann haben wir die Frage beantwortet.

seahawk1986

Anmeldungsdatum:
27. Oktober 2006

Beiträge: 11263

Wohnort: München

Zeitreise-001A schrieb:

Deswegen kann ich mich nicht so richtig an MS Access und dessen Faehigkeiten erinnern. Calc verwende ich sporadisch für simple Rechnungen. Ich erinnere mich, dass Access Fähigkeiten hat, die Calc nicht kann (Pfeile zwichen Datenbanken).

Das spielt eigentlich keine Rolle, wann deine Ausbildung war und wie viel Wissen daraus du noch aktiv abrufen kannst, Lernen ist ein lebenslanger Prozess und für nicht-lebenswichtige Dinge, die man nicht häufig macht, reicht es wenn man weiß, wo man nachsehen kann.

Bei LO Calc fehlt immer noch eine UNIQUE Funktion (vgl. https://bugs.documentfoundation.org/show_bug.cgi?id=126573 - die heißt EINDEUTIG im deutschsprachigen Excel), ansonsten könnte man damit und ZÄHLENWENN die Anzahl der Vorkommen jeder URL ermitteln und z.B. mit einer bedingten Formatierung Häufungen markieren - oder man schreibt sich Makros - sowas in einer Tabellenkalkulation zu machen finde ich beides furchtbar nervig. Mit einer Pivot-Tabelle könnte man tabellarische Daten nach URL gruppieren und dann die Vorkommen aufgeschlüsselt sehen.

Man kann das auch mit einer Datenbank lösen - mal als Beispiel mit sqlite als einfacher Vertreter einer relationalen Datenbank (da Access und LO BASE das Problem haben, dass man die einzelnen Schritte schlecht in Textform zeigen kann) und ein paar einfach strukturieren Playlists, die nur eine URL pro Zeile haben:

A.txt

https://youtu.be/dQw4w9WgXcQ
https://youtu.be/nsCIeklgp1M
https://youtu.be/IdkCEioCp24
https://youtu.be/3GE0AiC-mi8

B.txt

https://youtu.be/8M396vI5ZlI
https://youtu.be/XghqJYBqxmg
https://youtu.be/A5eOkPtmnwg
https://youtu.be/dQw4w9WgXcQ
https://youtu.be/veSMbnbdNro
https://youtu.be/NxTLmLQaS5Q

C.txt

https://youtu.be/b2VwSe6iIpQ
https://youtu.be/hJXgZxTWPiI
https://youtu.be/qs9JorMqcc4
https://youtu.be/dQw4w9WgXcQ
https://youtu.be/yrN3ZLD-1us

Als erstes lege ich eine Datenbank mit einer Tabelle an, in der ich für jede Zeile in einer Playlist die Zeilennummer, den Dateinamen und die URL speichere - das kann man von Hand einpflegen, oder man nimmt eine Skriptsprache wie Python (mag ich, weil man mit wenig Code zum Ziel kommt) - das holt sich alle Dateien mit der Endung .txt im aktuellen Arbeitsverzeichnis:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
#!/usr/bin/env python3
import pathlib
import sqlite3

con = sqlite3.connect("playlists.db")
cur = con.cursor()
cur.execute("DROP TABLE IF EXISTS songs")
cur.execute("CREATE TABLE songs(line_no INTEGER, filename TEXT, url TEXT)")

for p in pathlib.Path('.').glob('*.txt'):
    data = [
       (n, str(p), line) for n, line in enumerate(p.read_text().splitlines(), start=1)
    ]
    cur.executemany("INSERT INTO songs(line_no, filename, url) VALUES (?, ?, ?)", data)

con.commit()
con.close()

Das kann man als populate_database.py speichern und so ausführen:

$ python3 populate_database.py 

Damit haben wir eine SQLite Datenbank playlists.db, mit der man spielen kann - als erstes kann man sich die importierten Einträge ansehen:

$ sqlite3 -header -box playlists.db "SELECT * FROM songs;"
┌─────────┬──────────┬──────────────────────────────┐
│ line_no │ filename │             url              │
├─────────┼──────────┼──────────────────────────────┤
│ 1       │ C.txt    │ https://youtu.be/b2VwSe6iIpQ │
│ 2       │ C.txt    │ https://youtu.be/hJXgZxTWPiI │
│ 3       │ C.txt    │ https://youtu.be/qs9JorMqcc4 │
│ 4       │ C.txt    │ https://youtu.be/dQw4w9WgXcQ │
│ 5       │ C.txt    │ https://youtu.be/yrN3ZLD-1us │
│ 1       │ A.txt    │ https://youtu.be/dQw4w9WgXcQ │
│ 2       │ A.txt    │ https://youtu.be/nsCIeklgp1M │
│ 3       │ A.txt    │ https://youtu.be/IdkCEioCp24 │
│ 4       │ A.txt    │ https://youtu.be/3GE0AiC-mi8 │
│ 1       │ B.txt    │ https://youtu.be/8M396vI5ZlI │
│ 2       │ B.txt    │ https://youtu.be/XghqJYBqxmg │
│ 3       │ B.txt    │ https://youtu.be/A5eOkPtmnwg │
│ 4       │ B.txt    │ https://youtu.be/dQw4w9WgXcQ │
│ 5       │ B.txt    │ https://youtu.be/veSMbnbdNro │
│ 6       │ B.txt    │ https://youtu.be/NxTLmLQaS5Q │
└─────────┴──────────┴──────────────────────────────┘ 

Dann kann man schauen, welche URL mehr als zwei Mal vorkommt:

$ sqlite3 -header -box playlists.db "SELECT url, count(*) FROM songs GROUP BY url HAVING COUNT(*) > 2;"
┌──────────────────────────────┬──────────┐
│             url              │ count(*) │
├──────────────────────────────┼──────────┤
│ https://youtu.be/dQw4w9WgXcQ │ 3        │
└──────────────────────────────┴──────────┘ 

Und die Dateien anzeigen lassen, in denen eine bestimmte URL vorkommt:

$ sqlite3 -header -box playlists.db 'SELECT filename FROM songs WHERE url="https://youtu.be/dQw4w9WgXcQ";'
┌──────────┐
│ filename │
├──────────┤
│ C.txt    │
│ A.txt    │
│ B.txt    │
└──────────┘ 

Beziehungsweise alles in einem Rutsch - die Vorkommen von URLs, die mehr als zwei Mal in der Playlist auftauchen:

$ sqlite3 -header -box playlists.db 'SELECT filename, line_no, url from songs where url = (SELECT url FROM songs GROUP BY url HAVING COUNT(*) > 2);'
┌──────────┬─────────┬──────────────────────────────┐
│ filename │ line_no │             url              │
├──────────┼─────────┼──────────────────────────────┤
│ C.txt    │ 4       │ https://youtu.be/dQw4w9WgXcQ │
│ A.txt    │ 1       │ https://youtu.be/dQw4w9WgXcQ │
│ B.txt    │ 4       │ https://youtu.be/dQw4w9WgXcQ │
└──────────┴─────────┴──────────────────────────────┘ 

Der selbe Ansatz ohne Datenbank nur mit Python3:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
#!/usr/bin/env python3
import pathlib
from collections import namedtuple, Counter

Entry = namedtuple("Entry", ['filename', 'line_no', 'url'])

entries = []

for p in pathlib.Path('.').glob('*.txt'):
    entries.extend([
        Entry(p, n, line) for n, line in enumerate(p.read_text().splitlines(), start=1)
    ])

url_counter = Counter(e.url for e in entries)
too_often = [url for url, count in url_counter.most_common() if count > 2]

for url in too_often:
    for e in entries:
        if e.url == url:
            print(f"{e.filename}\t{e.line_no}\t{e.url}")

Das liefert dann das selbe Ergebnis mit Tabs als Trennzeichen:

$ python3 more_than_2_occurences.py
C.txt   4       https://youtu.be/dQw4w9WgXcQ
A.txt   1       https://youtu.be/dQw4w9WgXcQ
B.txt   4       https://youtu.be/dQw4w9WgXcQ 
Antworten |