Zugehörigkeit in einer Matrix
#11
(15.07.2020, 12:25)LCohen schrieb: In meiner Formel muss natürlich G5 durch G6 ersetzt werden (mit Strg-H 7x).

Das ist mir bereits aufgefallen. 
Jedoch gibt es mir bei der Kombination 44 & 88 lediglich 4 Treffer aus, wobei es 8 Treffer gibt.
Ich versuche gerade durch die Formel durchzusteigen, was da passiert um die Differenz zu verstehen 

Gruß Manu

Edit: Keine Ahnung wieso, aber jetzt zeigt er mir 8 Treffer an. Vielleicht hatte ich einen Fehler in der Zelle G6  Confused
Ich danke dir für deine Formel, ich muss zwar noch durchsteigen was genau da passiert, aber sie bringt mich um längen weiter ;)
Top
#12
In Zeile 2 bilde ich die Schauan'sche Hilfsspalte nach.
In Zeilen 3-7 pflücke ich die maximal 5 Einträge in G6 auseinander, um sie herauszu"wechseln" und so die Längen zu vergleichen.
WIN/MSO schicken angeblich alle 5 Sekunden Deinen Screen heim zu Papa (recall-Klausel). 
Top
#13
Hi Manu,

als Freund von Hilfsspalten (dienen sehr häufig der Übersichtlichkeit der Formeln) kann ich dir diese Lösung anbieten:

Arbeitsblatt mit dem Namen 'Tabelle1'
ABCDEFGHI
1Wert 1Wert 2Wert 3Wert 4Wert 5HS1HS2
215588909611
3232944888923
4263644668822
5404446688822Anzahl
644585964861144 & 888
726575968700044 & 88 & 893
8448889919923
9458995989901
10113536448822
11363848506000
12414958637000
13445964888923
14324463828822
15253639425200
16264867889911
17193844678822

ZelleFormel
F2=ZÄHLENWENN(A2:E2;44)+ZÄHLENWENN(A2:E2;88)
G2=ZÄHLENWENN(A2:E2;44)+ZÄHLENWENN(A2:E2;88)+ZÄHLENWENN(A2:E2;89)
I6=ZÄHLENWENN($F$2:$F$17;2)
I7=ZÄHLENWENN($G$2:$G$17;3)
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg

Die HS kannst du einfach ausblenden.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Top
#14
In VBA:

Code:
Sub M_snb()
  Cells(1).CurrentRegion.Copy
   
  With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
    .GetFromClipboard
    sn = Split(.GetText, vbCrLf)
  End With

  MsgBox "44 & 88 : " & UBound(Filter(Filter(sn, "44"), "88")) + 1 & vbLf & "44 & 88 & 89: " & UBound(Filter(Filter(Filter(sn, "44"), "88"), "89")) + 1
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Top
#15
Wenn es sogar bei snb mal ein klitzeskleines bisschen länger wird, ist der Zeitpunkt für MS gekommen, NESTEDSUBSTITUTE als Zellformel zu bringen:

=GESCHACHTELTWECHSELN(A1;B1:F1;[B2:F2];[vonhinten]) wäre dann wie

=WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(A1;B1;);C1;);D1;);E1;);F1;)
WIN/MSO schicken angeblich alle 5 Sekunden Deinen Screen heim zu Papa (recall-Klausel). 
Top
#16
(15.07.2020, 13:13)snb schrieb: In VBA:

Code:
Sub M_snb()
  Cells(1).CurrentRegion.Copy
   
  With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
    .GetFromClipboard
    sn = Split(.GetText, vbCrLf)
  End With

  MsgBox "44 & 88 : " & UBound(Filter(Filter(sn, "44"), "88")) + 1 & vbLf & "44 & 88 & 89: " & UBound(Filter(Filter(Filter(sn, "44"), "88"), "89")) + 1
End Sub

Danke, das find ich klasse. 

Jetzt nur noch die Frage wie kommt der Wert "{1C3B4210-F441-11CE-B9EA-00AA006B1A69}" für die Arryar zustande? Weil wenn ich es auf meine ganze Arryar anwenden möcte muss ich das ja selbstständig reproduzieren und anpassen können ;) 

Auf alle Fälle Danke auch hierfür :)
Top
#17
Das solltest du nie tun:
Code:
  With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
referenziert das Clipboard und das ändert sich nie.

Eine Alternative könnte sein:

Code:
Sub M_snb()
  Cells(1).CurrentRegion.Copy
   
  With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
    .GetFromClipboard
    sn = Split(.GetText, vbCrLf)
  End With

  sp=Array("44","88","89")
  for each it in sp
     sn=filter(sn,it)
  next

  MsgBox join(sp," & ") & ": " & UBound(sn) + 1
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Top
#18
(15.07.2020, 14:00)snb schrieb: Das solltest du nie tun:
Code:
  With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")

Ah verstehe, er wählt den zu durchsuchenden Bereich gar nicht damit aus.

Problem ist, den zu durchsuchenden Bereich muss ich frei bestimmen können, und ggf. auch anpassen können.
Wenn dir also ein VBA einfällt, wo ich den Bereich mit Range("A2:E1000").Select oder ähnlichen selbst bestimmen kann, so wäre es für mich die Lösung, da später noch andere Werte hinzu kommen werden und diese nach anderen Werten ebenfalls durchsucht werden müssen  Confused

PS: Es tut mir leid wenn ich hierbei sehr Leienhaft rüber komme, ich habe VBA zuletzt vor 6 Jahren gemacht und stelle fest, dass man da doch ziemlich schnell wieder raus ist... 

Gruß Manu
Top
#19
Für A1 tut snb doch genau das. Mit Cells(2, 1) statt Cells(1) klappt es auch bei Dir. .CurrentRegion ist das Zauberwort.
WIN/MSO schicken angeblich alle 5 Sekunden Deinen Screen heim zu Papa (recall-Klausel). 
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste