Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1452to1456
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Anzahl der unterschiedlichen Texte

Anzahl der unterschiedlichen Texte
19.10.2015 13:07:14
Bibi
hallo zusammen,
ich möchte aus die Anzahl der Texte, die sich von den anderen unterscheiden, bestimmen.
spalte a
maus
maus
hase
ziege
affe
affe
ziege
affe
maus
jetzt möchte ich wissen wieviele unterschiedliche text es gibt. in dem fall 4 (maus, hase, ziege, affe).
wie funtkioniert das.
vielen dank vorab
bibi

23
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Anzahl der unterschiedlichen Texte
19.10.2015 13:09:18
Rudi
Hallo,
Matrixformel:
{=SUMME(1/ZÄHLENWENN(A2:A10;A2:A10))}
Gruß
Rudi

AW: Du scheinst ausgeruht zu sein ;-) ...
19.10.2015 13:23:46
...
Hallo Rudi,
... wenn Du nur zwei Minuten gebraucht hast.
Aber es könnten ja auch Leerzellen im Bereich befinden, deshalb wohl vorsichtshalber:
{=SUMME(WENN(A2:A99"";1/ZÄHLENWENN(A2:A99;A2:A99)))}
@ bibi:
Umrandende { } nicht miteingeben, sondern Formel mit STRG+SHIFT+RETURN abschließen!
Gruß Werner
.. , - ...

AW: Du scheinst ausgeruht zu sein ;-) ...
19.10.2015 13:27:52
Bibi
perfekt!
vielen dank an euch beide! bin tatsächlich über die leerzeile gestolpert und hatte eine fehlermeldung.
danke und schöne grüße
bibi

Anzeige
Tja, warm auch SO schnell, ...
19.10.2015 15:47:02
Luc:-?
…Werner & Rudi; ;-)
man kann Rudis 1zellige MatrixFml auch so erweitern:
{=SUMME(WENNFEHLER(1/ZÄHLENWENN(A2:A11;A2:A11);0))}
Aber es geht auch ohne diese Fktionalität, wenn auch länger:
=SUMME(--(HÄUFIGKEIT(ZÄHLENWENN(A2:A11;A2:A11);ZÄHLENWENN(A2:A11;A2:A11))>0))
Wer Kürze liebt und auch vor UDFs (aus dem Archiv) nicht zurückschreckt, kann auch das nehmen:
=ANZAHL2(VSplit(VJoin(A2:A11;;-1)))
Mit der MatrixFml {=MTRANS(VSplit(VJoin(A2:A11;;-1)))} könnte man auch gleich die Mehrfach­Nennungen beseitigen.
Gruß, Luc :-?
Besser informiert mit …

Anzeige
'warm'=warum, sowat aba ooch! :-/ owT
19.10.2015 15:50:20
Luc:-?
:-?

AW: 'warm'=warum, sowat aba ooch! :-/ owT
19.10.2015 16:03:08
Daniel
gut das du das sagst, sonst hätt ich das wieder für ne neue Abkürzung von dir gehalten.
Gruß Daniel

So, so... owT
19.10.2015 16:12:13
Luc:-?
:-?

AW: wenn schon HÄUFIGKEIT(), dann aber ...
19.10.2015 16:15:52
...
Hallo Luc,
... nicht die von Dir aufgezeigte Formel, die nur im Beispiel und da zufällig das richtige Ergebnis ergibt.
Richtiger wäre da (vorausgesetzt mindestens eine Leerzelle ist vorhanden) folgender matrixfreier Ansatz:

=SUMME(--(HÄUFIGKEIT(VERGLEICH(A2:A99&"";A2:A99&"";);VERGLEICH(A2:A99&"";A2:A99&"";))>0))-1
Ich würde aber bevorzugen: {=ANZAHL(1/((VERGLEICH(A1:A99;A1:A99;)=ZEILE(A1:A99))))} (diese Formellösung hatte ich, wenn ich mich recht erinnere, zuerst mal von Sepp Burch gesehen)
Diese Formel kommt auch nur mit drei Funktionen aus, aber jeder kann diese sofort und in allen aktuellen Excelversionen ab Excel 97 einsetzen.
Gruß Werner
.. , - ...

Anzeige
Ja, das ist richtig und deine Variante besser, ...
19.10.2015 19:44:51
Luc:-?
…aber auch nicht unfehlbar, Werner; ;-)
sie liefert einen falschen Wert, wenn keine Leerzellen auftreten. Insofern wäre …
=SUMME(--(HÄUFIGKEIT(VERGLEICH(A2:A11&"";A2:A11&"";);VERGLEICH(A2:A11&"";A2:A11&"";))>0)) -(ZÄHLENWENN(A2:A11;"")>0)
…wohl besser. In Sepp B.s MatrixFml hast du ein Klammerpaar zuviel. Das reicht auch:
{=ANZAHL(1/(VERGLEICH(A2:A11;A2:A11;)=ZEILE(A1:A10)))}
Ich würde allerdings, wie du dir sicher denken kannst, idR =ANZAHL2(VSplit(VJoin(A2:A11;;-1))) bevorzugen. Diese Nicht-MatrixFml fktioniert für mindestens 1000 Zellen. ;-)
Gruß, Luc :-?

Anzeige
AW: nun, darauf hatte ich verwiesen ... und ...
20.10.2015 08:58:27
...
Hallo Luc,
... ich hatte ja geschrieben:... vorausgesetzt mindestens eine Leerzelle ist vorhanden
Und das kann mE jeder leicht durch eine entsprechende Bereichseingabe steuern.
Und das Du anstelle einer Matrixformel lieber Deine UDF´s einsetzt ist natürlich nachvollziehbar. Auch wenn diese nicht als Matrixformel eingeben werden muss, wird trotzdem eine Matrixauswertung vorgenommen. Du hast diese nur in Deine UDF´s verlagert. Interessant wäre jetzt, ob die Auswertung darüber auch schneller ist als die mit den Standardfunktionen. Das sollte sich zumindest bei 1000 Datenwerten aber auf jeden Fall bei z.B. 50000 schon erkennen lassen. Ist das der Fall?
Gruß Werner
.. , - ...

Anzeige
Verlagert wird aber immer, wenn eine ...
20.10.2015 15:35:59
Luc:-?
…bereichsverarbeitende Formel ohne MatrixKlammern auskommt, Werner;
irgendeine Hpt- bzw RahmenFkt der Fml erkennt dann eine gelieferte Matrix und arbeitet die ab — klassischer Fall ist SUMMENPRODUKT. Allerdings darf in diesen Fällen oft kein Ausdruck als Argument benutzt wdn, der nur dann ein Datenfeld (Ergebnismatrix) liefert, wenn die MatrixFml-Form benutzt wird → zB WENN-Konstrukte.
Schnell ist meine Fml sicher, aber bei 1000 Zellen dürfte der Unterschied zu klassischen Lösungen kaum messbar sein. Irgendwo ist dann eine Grenze, ab der sie nicht mehr fktionieren wird, weil der primär mit vbFkt Join bzw Durchlauf eines intern mit MTRANS (das hat definierte Grenzen!) erzeugten Arrays in VJoin gebildete GesamtText zu lang für die Übergabe an VSplit, die intern vbFkt Split verwendet, wird. Aber diese Grenze würde bei PrimärText­Übergabe auch gelten. VSplit liefert dann ein Datenfeld, das hier nicht intern nachbearbeitet wird, was aber möglich ist, falls numerische Elemente in echte Zahlen gewandelt wdn sollen (das macht vbFkt Split nicht!).
Es hat halt alles seine Grenzen, die man im Bedarfsfall ausloten muss. Aber wir machen ja keine Fmln für Massen-DV. Die wäre auch eher eine Aufgabe für DB-Software, nicht für Xl, auch, wenn Mancher Xl dafür missbraucht.
Gruß, Luc :-?

Anzeige
AW: Verlagert wird aber immer, wenn eine ...
20.10.2015 16:07:22
Daniel
Hi Luc
warum die Abrenzung?
nur weil du das in deinen UDFs noch nicht berücksichtigt hast?
wann fängt für dich "Massen-DV" an? 1000? 10000? 100000?
Excel hat mittlerweile 1,04 Mio Zeilen
gerade Funktionen wie MTrans bzw Worksheetfunction.Transpose lassen sich durch einfache Schleifenkonstrukte in VBA ersetzen, diese Schleifen sind dann deutlich schneller und leistungsfähiger als diese Funktionen.
Gruß Daniel

Ja, das ist ja auch so ein Blödsinn, denn ...
21.10.2015 00:23:03
Luc:-?
…die brauchen nur die Missbraucher, Daniel;
sollen sich 'ne DB anschaffen und die PrimärDaten vorverdichten. Das ist wesentlich schneller und rationeller. Man kann einen Trabbi auch zum Rennwagen aufmotzen, aber ist das sinnvoll…?!
Und du kannst mir ruhig glauben, dass ich eine UDF habe, die MTRANS/wf.Transpose nicht nur ersetzen kann, sondern auch noch mehr macht (nicht von PH aus Ol-Xl und auch nicht von PvW von xlam.ch!). Aber das wäre dann eine UDF mehr, die zusätzlich verwendet wdn müsste. Denn wie meist auf die Schnelle Variant-Arrays gefüllt wdn, ergibt keine echten Datenfelder, sondern Felder von ZellReferenzen. Außerdem wandelt MTRANS quasi-2-dimensionale Datenfelder (senkrechter Vektor, dessen Elemente gleichlange waagerechte Vektoren sind) zuverlässig in abbildbare Matrizen um, was man aber nur in Subprozeduren, nicht unbedingt in UDFs benötigt. Ansonsten müsste man das (separat) pgmieren. In bspw J[ava]Script sind Arrays Objekte, mit denen man alles Mögliche machen kann; leider wird so etwas von VBA nicht unterstützt.
Gruß, Luc :-?

Anzeige
AW: Ja, das ist ja auch so ein Blödsinn, denn ...
21.10.2015 09:22:16
Daniel
Hi Luc
definiere mal bitte "Missbrauch" von Excel.
und was du alles tolles hast und kannst, interessiert mich eigentlich nicht, für mich ist das relevant, was du uns hier zeigst.
Gruß Daniel

ZB als Datenbank, war das nicht klar?! =>
22.10.2015 01:16:07
Luc:-?
Was dich nicht interessiert, ist ganz allein deine Sache, Daniel,
und mich interessiert deine insuläre Sichtweise nicht! Was Anderes zeigst du hier ja auch nicht! Deine VBA-Ideologie bedeutet, von der Hand in den Mund zu leben und damit endlose Mengen von speziellen Pgmm, letztlich für den Papierkorb, zu schaffen, über die du wohl selber kaum die Übersicht behalten dürftest.
Trotzdem versuchst du immer wieder mal, mir an den Wagen zu fahren. Begreife besser erst mal den Unterschied zwischen deinem und meinem Herangehen und zeige zumindest halbsoviel Vorausdenken bei vglbaren Arbeiten. Deine VBA-Vorschläge eignen sich iaR besser als Bestandteil eines kompletten VBA-Projekts, weniger als immer wieder verwendbare Bausteine, da du es ja nicht mal für nötig hältst, dafür eine leicht anpassbare Form zu finden.
Da mich einige deiner Auslassungen an Office-Kenntnis-Überprüfungspgmm erinnern, bei denen es mehr auf penible Aufzählung aller Möglichkeiten als auf Kreativität ankommt, könnte man vermuten, dass du ein sog Office-Trainer* bist, denn in deren Ideal-Kenntnis­Bereich bewegen sich die meisten deiner AWen. Mit Kreativität im VBA-Bereich hat das aber wenig zu tun.
* Dem würde allerdings widersprechen, dass du in diversen Xl-Foren zu wohnen scheinst, fallst du nicht an permanenter Unter­beschäftigung leidest!
Falls du so weitermachen willst, lasse ich mir vielleicht auch für dich noch etwas „Besonderes“ einfallen (nicht im Isi-Stil!)… :->
Luc :-?

Anzeige
AW: ZB als Datenbank, war das nicht klar?! =>
22.10.2015 01:27:27
Daniel
Hi Luc
du hast zumindest im einem Recht, nämlich damit, dass ich eher VBA-Projekten arbeite, um konkrete Lösungen für konkrete Fragestellungen zu schaffen.
Warum dass jetzt schlecht und minderwertig sein soll, müsstest du mal näher erklären.
erläutere auch mal bitte, was du mit "insuläre Sichtweise" meinst.
Gruss Daniel

Ja, das ist das Problem!
22.10.2015 04:12:59
Luc:-?
Du stehst für Standard-Xl auf der einen und ProjektAutomatisierung auf der anderen Seite, Daniel,
ich ziemlich genau dazwischen. Mir geht's um die Erweiterung allgemeiner Möglichkeiten, dir wie den Meisten um komplette Projekte, wobei du hier idR mit speziellen Code-Schnipseln, mitunter auch mehr oder weniger leicht an andere Bedingungen anpassbar, aushilfst. Das ist zwar oft nicht falsch, wird aber schnell kontra­produktiv, wenn daraus nicht primär gelernt, sondern diese Schnipsel gesammelt bzw immer wieder neue in unter­schiedlichste Dateien eingebaut wdn. Damit wird der ursprüngliche Sinn und Zweck von Xl konter­kariert.
Niemand, der hier Codes postet, wird diese dauerbetreuen wollen; folglich stehen rein benutzende User dann irgendwann im Regen und müssen immer wieder neu fragen. Ihr späterer Nachfolger hat keine Chance, hierüber Übersicht zu erlangen, und wirft letztlich alles weg. Nicht umsonst wird hier ja immer wieder mal gefragt wie man Makros los wird. Darunter mögen viele sein, die ursprünglich mal erfragt wurden, aber jetzt entweder nicht mehr gebraucht bzw nicht verstanden wdn oder gar nicht mehr fktionieren.
Genau deshalb habe ich mir ein Gebiet gesucht, das nicht betreut wdn muss und trotzdem immer hilfreich sein kann → UDFs, auch, wenn ich damit zwischen den Stühlen der Fml-Freaks auf der einen und denen der Projektemacher (→Anspielung auf einen Roman des 19.Jhds!) auf der anderen sitze… ;-]
Luc :-?

Anzeige
AW: Ja, das ist das Problem!
23.10.2015 17:58:08
Daniel
Du stehst für Standard-Xl auf der einen und ProjektAutomatisierung auf der anderen Seite, Daniel,
richtig Luc, Standard-Excel (und Standard-VBA). Warum sollte den Fragesteller zwingen, sich erst AddIns oder sonstige Erweiterungspakte (die vielleicht kostenpflichtig sind oder aus zweifelhafter Quelle stammen)zu installieren, nur damit meine Lösungen funktionieren?
dir wie den Meisten um komplette Projekte,
Richtig, warum sollte ich hier Sachen reinschreiben, die nur Minderheiten interessieren?
ich arbeite so wie du ungern für die Tonne.
Damit wird der ursprüngliche Sinn und Zweck von Xl konter­kariert.
Warum?
Was ist der ursprüngliche Sinn und Zweck von Excel?
Niemand, der hier Codes postet, wird diese dauerbetreuen wollen;
richtig. Und genau aus diesem Grund versuche ich, eine Lösung zu finden die das Niveau des Fragestellers berücksichtigt, so dass er das Lösungsprinzip verstehen und selber nachstellen kann, so dass er normalerweise meinen Beispielcode nicht kopieren müsste, sondern selber programmieren kann, bzw die Formeln versteht und dann selber anwenden kann, so dass eine weiter Unterstützung von meiner Seite dann nicht mehr erforderlich ist.
folglich stehen rein benutzende User dann irgendwann im Regen und müssen immer wieder neu fragen. Ihr späterer Nachfolger hat keine Chance, hierüber Übersicht zu erlangen, und wirft letztlich alles weg
genau dieses Problem besteht aber auch bei deinen universellen UDFs, die du hier ständig versuchst an den Anwender zu bringen.
Weil es nirgendwo eine saubere Dokumentation von dir gibt, in der beschrieben ist, was diese UDFs alles können, und wie sie parametrisiert werden müssen um bestimmte Ergebnisse zu liefern, wird diese wahrscheinlich auch niemand an seinen Nachfolger weitergeben und dieser wird dann auch die UDFs wegwerfen, weil er nicht versteht was da passiert und dann die Datei neu aufbauen.
Nicht umsonst wird hier ja immer wieder mal gefragt wie man Makros los wird. Darunter mögen viele sein, die ursprünglich mal erfragt wurden, aber jetzt entweder nicht mehr gebraucht bzw nicht verstanden wdn oder gar nicht mehr fktionieren.
na Luc, das hast du jetzt aber komplett falsch verstanden.
natürlich wird hier gelegentlich mal gefragt, wie Makros entfernt werden können, aber da ging es noch nie darum, um diese Makros vollständig aus seinem System zu entfernen, sondern immer nur darum, dass eine Vorlagendatei eine Kopie von sich erstellt und dann diese Kopie am Ende Makrofrei sein soll.
das von dir beschriebene Szenario kann ja sowieso nur vorkommen, wenn sich irgendwelche AddIns installiert hat (also genau das machst, was du immer vorschlägst). Arbeitet man Projetkhaft, dann hat man dieses Problem nicht, weil die Makros ja sowieso fest an die Dateien gebunden sind.
Genau deshalb habe ich mir ein Gebiet gesucht, das nicht betreut wdn muss und trotzdem immer hilfreich sein kann → UDFs,
genau auf diesem Gebiet sehe ich einen enormen Betreuungsaufwand.
Sei es nur zur Fehlerbehebung (ja ich weiss, du machst keine Fehler, aber ich mache welche und müsste dann ja allen die meine UDFs nutzen, darüber informieren dass sie die UDFs momentan vielleicht noch nicht so nutzen können wie ich ihnen das versprochen habe und dann irgendwie die korrigierte Version zukommen lassen).
auch ist es ja in Regel nicht damit getan, dass sich jemand anderes meine UDFs installiert, ich sollte ihn ja auch darüber informieren, wie er meine UDF anwenden kann und parametrisieren kann, damit er dann auch regelmäßig damit arbeiten kann, denn wenn er das vergisst und die Funktion nicht mehr anwenden kann, dann wärs ja auch sinnlos.
Gruß Daniel

Das, was ich hier poste, ist nur die Spitze ...
25.10.2015 15:00:10
Luc:-?
…des Eisbergs, Daniel,
was ich kostenpflichtig publiziere, hat eine umfangreiche entsprd Hilfe, die Postings idR einen Kurzkommentar, der bei vielen Argumenten nicht ganz so kurz ausfällt (ist das bei dir stets gewährleistet?). Diejenigen, die etwas mehr von meiner Arbeit kennen als du und die Allgemeinheit, wissen das.
MS hatte den Xl-Fktsumfang ursprünglich auch durch AddIns erweitert. Diese UDFs mussten auch nur angepasst wdn, um quantitative Xl-Erweiterungen zu berücksichtigen, was auch bei anderen Standard-Xl-Fktt oft nicht geschehen ist.
Meine UDFs können, je nach Alter, im Sinne höherer Universalität evtl verbessert wdn. Aber das dürfte für die allermeisten UDF-Postings gelten, denn nur selten findet man welche, die alle Xl-Aspekte berücksichtigen. Das machen nicht mal alle StandardFktt!
Der eigentliche Zweck von Xl ist der gleiche wie bei allen anderen Tabellen­Kalkulations­Pgmm auch → Aggregation von Primär- und Berechnung von SekundärDaten. Und das Letztere auch mit fktshaltigen Fmln, ganz ohne zusätz­lichen Pgmmier­Aufwand. So etwas wie Makros (bzw Projekt­Automatisierung über VBA-Pgmmierung) bieten deshalb auch nur die wenigsten TabKalku­lationen an.
Ich wende mich idR genau wie die Fml-Freaks an den EndNutzer, nicht den Hobby-Pgmmierer. Meine Lösungen (bis auf Demos und Prinzip­Darstellungen) sind, in ihrem vorgegebenen Rahmen, sofort anwendbare Fertig­Produkte!
Das scheint dich ja mächtig zu stören, weshalb es dir wohl darum geht, solche Arbeiten abzuwerten. Auf der einen Seite bedauern, dass Xl bei text­manipu­lierenden Fktt mickrig ausge­stattet ist, und auf der anderen Verbesserungen dieser Situation mit qualifizierten UDFs attackieren — wie schizophren ist das denn…?!
Daraus folgt, dass es dir in 1.Linie um egomanische Diffamierung anderer Denkweisen und Lösungs­methoden geht, wobei du nicht der Einzige bist, aber hier im Ggsatz zu anderen egomanischen Dogmatikern in ganz anderen Foren und an anderen Stellen des INet relativ erfolglos bleiben wirst. Aber immerhin beweist du so, dass du das Zeug zum WP-Sichter oder gar -Admin hast, von Admins, Moderatoren und sog PowerUsern des Geschichtsforums ganz zu schweigen (denn die wollen offen­sichtlich unter sich bleiben)…
Vielleicht solltest du dir mal diesen Text von Michael Prescott zu Gemüte führen…
Luc :-?

AW: Das, was ich hier poste, ist nur die Spitze ...
25.10.2015 15:19:26
Daniel
Ja, Luc, ich wende micht mit meinen Antworten an den Hobbyprogrammierer.
warum auch nicht, was ist schlecht daran.
du machst das ja nicht und wenn alle so denken würden wie du, dann würde dieser Personenkreis ja ohne Hilfe "im Regen" stehen.
das Problem ist, dass du egomanisch auf deiner Denkweise beharrst, diese für die einzig richtige hälst und andere, die nicht so denken wie du diffamierst.
das spiegle ich dir halt zurück.

Das geht auch ganz formelfrei ...
21.10.2015 04:30:45
Matthias
Hallo bibi
Eine Alternative ohne Formel
Kopiere mal Deine Liste in eine freie Spalte
Dann einfach Daten-Duplikate entfernen
Userbild
Gruß Matthias

AW: das ist aber zu "statisch" ...
21.10.2015 07:49:57
...
Hallo Matthias,
... von der Hilfsspalte mal abgesehen, man müsste dann ja bei jedem zusätzlichen Wert in Spalte A das Prozedere wiederholen und noch den Wert einschreiben.
Gruß Werner
.. , - ...

das war ein Alternativ - Beispiel !
21.10.2015 15:41:02
Matthias
Hallo Werner
... von der Hilfsspalte mal abgesehen, man müsste dann ja bei jedem zusätzlichen Wert in Spalte A das Prozedere wiederholen und noch den Wert einschreiben.
Hier ging es mir nur um eine Alternative für einen einmaligen Vorgang und genau da kann man so auch vorgehen.
Das ich es in einer 2.Spalte vorgeschlagen habe lag nur daran das "bibi" sich beim Testen nicht die Orginalliste zerstört.
Gruß Matthias

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige