Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1900to1904
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

Verketten von Zeilen aus einem Bereich

Verketten von Zeilen aus einem Bereich
11.10.2022 08:26:12
Zeilen
Hallo an die tolle Community,
ich habe hier eine spezielle Anforderung von einer Verkettung. Ich möchte die Werte aus Spalte B verketten, aber nur wenn sie zu einem definierten Bereich gehören. Ich habe die gewünschte Ausgabe in Spalte C hinterlegt. Ich hoffe mir kann jemand helfen.
Vielen Dank im Voraus
https://www.herber.de/bbs/user/155595.xlsm
Gruß Kai

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Verketten von Zeilen aus einem Bereich
11.10.2022 09:41:42
Zeilen
Moin Kai!
Versuchs mal damit:

=verketten_wenn(A2;B2)

Public Function verketten_wenn(Bereich As Range, Hexwert As Range)
Set Bereiche = Columns(Bereich.Column).SpecialCells(xlCellTypeConstants)
For Each cl In Bereiche
If cl = Bereich.Value Then
Kette = Kette & " " & Cells(cl.Row, Hexwert.Column)
End If
Next cl
verketten_wenn = Trim(Kette)
End Function
Bei mir lief der Code selbst bei den paar Zeilen recht lang, aber warum kann ich dir grad nicht sagen.
Vielleicht hat jemand anders die Möglichkeit das zu optimieren, daher stell ich mal auf "offen"
Gruß MCO
Anzeige
Außer Konkorrenz...
11.10.2022 09:42:54
{Boris}
Hi,
...weil das hier erst ab xl2019 funktioniert:
=TEXTVERKETTEN(" ";1;WENN(A$2:A$25=A2;B$2:B$25;""))
In Deiner Version muss man alle Elemente einzeln verketten. Um das zu umgehen, bedarf es einer UDF.
Dazu findet sich bereits einiges in den Suchmaschinen. (Excel UDF Textverketten).
VG; Boris
AW: Verketten von Zeilen aus einem Bereich
11.10.2022 09:49:45
Zeilen
Hallo Kai,
fir Formel Verketten gibt es erst in Excel 2019 oder 365. Diese muss man mit einer User Defined Function nachbauen. Es handelt sich um ein VBA-Code, der als Formel verwendet wird. Es muss in einem Modul abgelegt sein (nicht im Codepane von einem Arbeitsblatt oder DieseMappe).

Public Function MyVerketten(ByVal Target) As String
Dim Z As Range
Dim Temp As String
Dim Erg As String
For Each Z In Target
If Z  "" Then
Temp = Z.Text
Do While Len(Temp) > 0
Erg = Erg & Left(Temp, 2) & " "
Temp = Mid(Temp, 3)
Loop
End If
Next
MyVerketten = Trim(Erg)
End Function
(ungetestet)
im Blatt einfach
=MyVerketten(B2:B13)
VG
Yal
Anzeige
AW: Verketten von Zeilen aus einem Bereich
11.10.2022 10:18:04
Zeilen
Hallo Yal,
leider funktioniert dies nicht. In meiner Beispieldatei habe ich in Spalte A auch Bereiche angegeben. Das Verketten soll dann für jeden Bereich separat funktionieren.
Vielen Dank für die Hilfe an alle.
https://www.herber.de/bbs/user/155596.xlsm
Gruß Kai
AW: Verketten von Zeilen aus einem Bereich
11.10.2022 11:21:58
Zeilen
Hi
Wenn die Liste nach den Bereichen sortiert ist, geht das mit zwei Spalten.
In der ersten erweitert du Zeilenweise den Wert um jeden Einzelwertung, bis in der letzten Zeile das Gesamtergebnis steht, in der zweiten Spalte verteilst du es dann über die restlichen Zeilen des Bereichs.
Also in
C2: =$B2&WENN($A2=$A3;" "&C3;"")
D2: =WENN($A1=$A2;D1;C2)
Wenn die Blöcke 2 und 4-Stellig sein können, dann ersetze das $B2 durch:
=Wenn(Länge($B2)=$B2;Wenn(Länge($B2)=4;Links($B2;2)&" "&Rechts($B2;2);B2)
Gruß Daniel
Anzeige
AW: Verketten von Zeilen aus einem Bereich
11.10.2022 11:20:26
Zeilen
Hallo,
in ein Modul:

Function MeineKette(ByVal rHEX As Range, rKrit As Range, vntKRIT)
Dim arrHEX, arrKRIT, i As Long, strTmp As String
arrHEX = rHEX.Value
arrKRIT = rKrit.Value
For i = LBound(arrHEX) To UBound(arrHEX)
If arrKRIT(i, 1) = vntKRIT Then
strTmp = strTmp & IIf(Len(arrHEX(i, 1)) Mod 2, "0", "") & arrHEX(i, 1)
End If
Next
For i = 1 To Len(strTmp) - 1 Step 2
MeineKette = MeineKette & " " & Mid(strTmp, i, 2)
Next
MeineKette = Mid(MeineKette, 2)
End Function
In der Tabelle:
=meinekette($B$2:$B$25;$A$2:$A$25;A2)
und runter kopieren
Gruß
Rudi
Anzeige
AW: Verketten von Zeilen aus einem Bereich
11.10.2022 11:40:00
Zeilen
Hallo Rudi,
vielen Dank für das Modul. Es sieht so aus als ob es genau das richtige ist.
Vielen Dank
Gruß Kai
AW: Verketten von Zeilen aus einem Bereich
12.10.2022 10:01:29
Zeilen
Hallo Rudi,
ich hab noch eine Bitte an Dich. was muss ich in der Funktion ändern um die Ausgabe der Zahlen von:
10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00
auf :
10000000 10000000 10000000 10000000
geändert wird. habe schon etwas probiert, aber nicht gefunden
Function MeineKette(ByVal rHEX As Range, rKrit As Range, vntKRIT) Dim arrHEX, arrKRIT, i As Long, strTmp As String arrHEX = rHEX.Value arrKRIT = rKrit.Value For i = LBound(arrHEX) To UBound(arrHEX) If arrKRIT(i, 1) = vntKRIT Then strTmp = strTmp & IIf(Len(arrHEX(i, 1)) Mod 2, "0", "") & arrHEX(i, 1) End If Next For i = 1 To Len(strTmp) - 1 Step 2 MeineKette = MeineKette & " " & Mid(strTmp, i, 2) Next MeineKette = Mid(MeineKette, 2) End Function >
Vielen Dank im Voraus
Gruß Kai
Anzeige
AW: Verketten von Zeilen aus einem Bereich
12.10.2022 10:03:37
Zeilen
Hallo,

   For i = 1 To Len(strTmp) - 7 Step 8
MeineKette = MeineKette & " " & Mid(strTmp, i, 8)
Next
MeineKette = Mid(MeineKette, 2)
Gruß
Rudi
AW: Verketten von Zeilen aus einem Bereich
12.10.2022 10:36:39
Zeilen
Hallo Rudi,
vielen Dank für die schnelle Rückantwort. Klappt perfekt.
Hast du vielleicht noch eine Idee, wie man jetzt diese einzelnen Blöcke in einen Hexwert umwandeln kann ?
Also aus:
10000000 10000000 10000000
wird:
80 80 80
Danke
Gruß Kai
AW: Verketten von Zeilen aus einem Bereich
12.10.2022 11:03:52
Zeilen
Hallo,

   For i = 1 To Len(strTmp) - 7 Step 8
MeineKette = MeineKette & " " & Worksheetfunction.Bin2Hex(Mid(strTmp, i, 8))
Next
MeineKette = Mid(MeineKette, 2)
Gruß
Rudi
Anzeige
AW: Verketten von Zeilen aus einem Bereich
12.10.2022 11:17:54
Zeilen
Hallo Rudi
du bist der Beste. Danke dir.
Gruß Kai
AW: Verketten von Zeilen aus einem Bereich
12.10.2022 11:32:18
Zeilen
Hallo Rudi,
eine letzte Anpassung wäre noch super und dann lass ich dich in Ruhe :-). ich habe mal die Datei mit angehangen.
In Zeile 1 und 2 passt es. Ich benötige immer zwei Zeichen für ein vollständiges Byte. Ich habe die gewünschte Ausgabe mit angegeben.
Wenn möglich bitte auch die Info, wie man ggf. die Leerzeichen zwischen den Hexwerten entfernt.
https://www.herber.de/bbs/user/155619.xlsm
Vielen vielen vielen und großen Dank im Voraus
Gruß Kai
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige