AW: Zugeordnete Merkmale auflisten
17.09.2013 18:05:22
ransi
HAllo
Schau es dir mal an.
Diesen Code in ein Modul:
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************
Option Explicit
Public Function Verkettenwenn(Kriterium As String, _
Bereich As Range, _
SuchSpalte As Integer, _
ErgebnissSpalte As Integer, _
Optional Unikate As Boolean = True, _
Optional Trenner As String = ", ") As String
Dim arrTmp
Dim L As Long
Dim Mydic As Object
arrTmp = Bereich
Set Mydic = CreateObject("Scripting.Dictionary")
If Unikate = True Then
For L = 1 To UBound(arrTmp)
If arrTmp(L, SuchSpalte) Like Kriterium Then Mydic(arrTmp(L, ErgebnissSpalte)) = 0
Next
Verkettenwenn = Join(Mydic.keys, Trenner)
Else:
For L = 1 To UBound(arrTmp)
If arrTmp(L, SuchSpalte) Like Kriterium Then Mydic(L) = arrTmp(L, ErgebnissSpalte)
Next
Verkettenwenn = Join(Mydic.items, Trenner)
End If
End Function
Der Aufruf ist dann ganz einfach:
Demo
| C | D | E | F | G | H | I | J | K | L | M |
1 | | | | | | | | | | | |
2 | | | | A oder B oder C | | | | | | | |
3 | | | Name 1 | A | | | | | | | |
4 | | | Name 2 | B | | | | | | | |
5 | | | Name 3 | A | | | | | | | |
6 | | | Name 4 | A | | | | | | | |
7 | | | Name 5 | B | | | | | | | |
8 | | | Name 6 | B | | | | | | | |
9 | | | Name 7 | C | | | | | | | |
10 | | | Name 8 | C | | | | | | | |
11 | | | Name 9 | A | | | | | | | |
12 | | | Name 10 | B | | | | | | | |
13 | | | Name 11 | C | | | | | | | |
14 | | | Name 12 | C | | | | | | | |
15 | | | | | | | | | | | |
16 | | | | | | | | | | | |
17 | Auswertung: | | | | Oder: | Auswertung: | | | | | |
18 | A | Name 1, Name 3, Name 4, Name 9 | | | | A | Name 1 | Name 3 | Name 4 | Name 9 | |
19 | B | Name 2, Name 5, Name 6, Name 10 | | | | B | Name 2 | Name 5 | Name 6 | Name 10 | |
20 | C | Name 7, Name 8, Name 11, Name 12 | | | | C | Name 7 | Name 8 | Name 11 | Name 12 | |
21 | | | | | | | | | | | |
Formeln der Tabelle |
Zelle | Formel | D18 | =verkettenwenn($C18;$E$3:$F$14;2;1;WAHR;", ") | I18 | {=INDEX($E$3:$E$14;KKLEINSTE(WENN($F$3:$F$14=$H18;ZEILE($A$1:$A$12)); SPALTE(A1)))} |
|
Enthält Matrixformel: Umrandende { } nicht miteingeben, sondern Formel mit STRG+SHIFT+RETURN abschließen! |
Matrix verstehen |
Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
In I18:L20 ist die Ausgabe Zellenweise organisiert.
Allerdings mit Matrixformel.
ransi