Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Verketten aus einer Matrix heraus?

856 views
Skip to first unread message

Jürgen Dietze

unread,
Dec 8, 2009, 3:39:01 AM12/8/09
to
Excel 2007

Hallo zusammen,
ich habe folgende Ausgangssituation:

D F I ....
Artikel 1 x x
Artikel 2 x x
Artikel 3 x x
...


Die Artikel kommen aus verschiedenen Ursprungsländern, die "x" sind
natürlich variabel. Es können unterschiedlich viele Artikel und
unterschiedlich viele Ursprungsländer sein.
Für jeden Artikel benötige ich nun folgenden Text:

"Artikel 1 D F"
"Artikel 2 F I"
"Artikel 3 D I" usw.

Ist das mit Tabellenfunktionen machbar?
Danke für Eure Tipps!

Claus Busch

unread,
Dec 8, 2009, 3:51:05 AM12/8/09
to
Hallo J�rgen,

Am Tue, 8 Dec 2009 00:39:01 -0800 schrieb J�rgen Dietze:

> D F I ....
> Artikel 1 x x
> Artikel 2 x x
> Artikel 3 x x
> ...
>

> Die Artikel kommen aus verschiedenen Ursprungsl�ndern, die "x" sind
> nat�rlich variabel. Es k�nnen unterschiedlich viele Artikel und
> unterschiedlich viele Ursprungsl�nder sein.
> F�r jeden Artikel ben�tige ich nun folgenden Text:


>
> "Artikel 1 D F"
> "Artikel 2 F I"
> "Artikel 3 D I" usw.

probiers mal so:
=A2&WENN(B2="x";" "&$B$1;)&WENN(C2="x";" "&$C$1;)&WENN(D2="x";" "&$D$1;)


Mit freundlichen Gr�ssen
Claus Busch
--
Win XP PRof SP2 / Vista Ultimate SP2
Office 2003 SP2 /2007 Ultimate SP2

Bernd P

unread,
Dec 8, 2009, 4:24:51 AM12/8/09
to
Hallo Jürgen,

Gib als Matrixformel ein (also mit STRG + SHIFT + ENTER abschließen,
nicht nur mit ENTER):
=A2&" "&MultiCat(WIEDERHOLEN($B$1:$E$1;B2:E2="x");" ")
und kopiere dann hinunter...

MultiCat ist ein Makro, welches Du hier findest:
http://sulprobil.com/html/concatenate.html
(Einfach ALT + F11 drücken, ein neues Makromodul einfügen, meinen
Makrocode hineinkopieren, und dann zurück in die Tabelle und das Makro
wie eine normale Funktion verwenden.)

Ohne MultiCat wird es unelegant, fürchte ich.

Viele Grüße,
Bernd

Jürgen Dietze

unread,
Dec 8, 2009, 8:10:01 AM12/8/09
to
Sorry,
hab ne Info vergessen:

Das x gibt mir an, ob die Kombination aus Artikel und Land vorkommt.

Gruß
Jürgen Dietze

Bernhard Sander

unread,
Dec 8, 2009, 9:51:31 AM12/8/09
to
Hallo Jürgen,

> Das x gibt mir an, ob die Kombination aus Artikel und Land vorkommt.

Steht denn da ein explizites "x" oder steht in jeder Zelle ein anderer Text
anstelle des x?

In letzterem Falle ersetzt Du in den Formeln von Claus und Bernd jedes Vorkommen
von
="x"
durch
<>""

="x" prüft, ob explizit x eingetragen ist.
<>"" prüft darauf, dass die Zelle nicht leer ist.

Gruß
Bernhard Sander

Eberhard Funke

unread,
Dec 8, 2009, 10:38:01 AM12/8/09
to
Am Tue, 8 Dec 2009 00:39:01 -0800 schrieb J�rgen Dietze:

>
> Ist das mit Tabellenfunktionen machbar?

Hallo J�rgen,

das hat Claus bereits beantwortet.
Je nach Anzahl der L�nder kann diese Formel aber recht lang werden.

Alternative: benutzerdfinierte Funktion
im folgenden Beispiel mit den L�ndern Deu, Eng, Fra und It in B1:E1 und den
Artikeln in A2:A4
(entsprechend Deinen Verh�ltnissen anpassen!)


Public Function Kombination(ByVal x As Range) As String
Dim arrL�nder
Dim inti as integer

arrL�nder = Array("Deu", "Eng", "Fra", "It")
Kombination = x.Cells(1)

For inti = 1 To UBound(arrL�nder)
If x.Cells(inti + 1) = "x" Then
Kombination = Kombination & " " & arrL�nder(inti - 1)
End If
Next
End Function

Funktionsaufruf in z. B. F2:
=Kombination(A2:E2)
und dann runterziehen.

--
Mit freundlichen Gr�ssen Eberhard
XP home XL 2000
Eberhard(punkt)W(punkt)Funke(at)t-online.de

Jürgen Dietze

unread,
Dec 15, 2009, 10:36:20 AM12/15/09
to
Hallo an alle,
danke für die vielen Hinweise.

Der Vorschlag von Claus ist zwar einfach umzusetzen, aber bei 40 möglichen
Ländern doch sehr lang. Ich hatte gehofft, dass dies über eine Matrixformel
direkt zu lösen sei, so nach dem Motto:

={verketten((B1:Z1)*(B2:Z2)="x"))}

Okay, dann werde ich mich mal den Makrolösungen nähern...

Gruß
Jürgen Dietze

Klaus "Perry" Pago

unread,
Dec 15, 2009, 4:21:06 PM12/15/09
to
Hallo Jürgen,

"Jürgen Dietze" <Jrgen...@discussions.microsoft.com> schrieb im
Newsbeitrag news:D496E778-36A6-4ECD...@microsoft.com...


> Hallo an alle,
> danke für die vielen Hinweise.
>
> Der Vorschlag von Claus ist zwar einfach umzusetzen, aber bei 40 möglichen
> Ländern doch sehr lang. Ich hatte gehofft, dass dies über eine
> Matrixformel

diese "eleganten" Matrixformel wird es IMHO nicht geben. Ich sehe nur noch
den Iteraterationsweg, wenn es nicht VBA sein soll. Hier mal ein Beispiel:

http://www.excelformeln.de/formeln.html?welcher=155

Gruß
Klaus

Peter Schleif

unread,
Dec 16, 2009, 3:46:11 AM12/16/09
to
Jᅵrgen Dietze schrieb am 15.12.2009 16:36 Uhr:
>
> Okay, dann werde ich mich mal den Makrolᅵsungen nᅵhern...

Damit geht es natᅵrlich recht kurz. Zum Beispiel mit einer
benutzerdefinierten Funktion. Im Code mᅵsstest evtl. noch die erste
Lᅵnderspalte (hier "C") anpassen. In dieser Spalte beginnt die Funktion
zu suchen. Dann geht es nach rechts solange wie in Zeile 1 Lᅵnder
stehen. Es dᅵrfen also keine Lᅵcken in Zeile 1 sein.

B2: =Laender(A2))
B3: =Laender(A3))
B4: =Laender(A4))

+-----+-----------+-----+-----+-----+-----+
| | A | B | C | D | E |
+-----+-----------+-----+-----+-----+-----+
| 1 | | | D | F | I |
+-----+-----------+-----+-----+-----+-----+
| 2 | Artikel 1 | D F | x | x | |
+-----+-----------+-----+-----+-----+-----+
| 3 | Artikel 2 | F I | | x | x |
+-----+-----------+-----+-----+-----+-----+
| 4 | Artikel 3 | D | x | | |
+-----+-----------+-----+-----+-----+-----+

Function Laender(zelle As Range) As String
Laender = zelle

Set zelle = Cells(zelle.Row, "C") '/Erste Lᅵnderspalte/

While Cells(1, zelle.Column) <> ""
If LCase(Trim(zelle)) = "x" Then
Laender = Laender & " " & Cells(1, zelle.Column)
End If
Set zelle = zelle(1, 2)
Wend
End Function


Peter

Bernd P

unread,
Dec 16, 2009, 6:50:23 AM12/16/09
to
Hallo,

Die Matrixformel Lösung habe ich bereits genannt. Mein Makro MultiCat
liefert lediglich die bei VERKETTEN vermisste Matrixfaehigkeit.

Iterationen sind m. E. keine gangbare Lösung.

Viele Grüße,
Bernd

Klaus "Perry" Pago

unread,
Dec 17, 2009, 7:56:48 AM12/17/09
to
Hi,

"Bernd P" <bplu...@gmail.com> schrieb im Newsbeitrag
news:52fc536c-d580-4157...@20g2000vbz.googlegroups.com...
> Hallo,
>
> Die Matrixformel L�sung habe ich bereits genannt. Mein Makro MultiCat


> liefert lediglich die bei VERKETTEN vermisste Matrixfaehigkeit.
>

> Iterationen sind m. E. keine gangbare L�sung.

Es ist denkbar, dass es Restriktionen gibt, die Makros nicht zulassen.
Deshalb gibt es zum Gl�ck L�sungen, die darauf verzichten konnen.

Gru�
Klaus

Bernd P

unread,
Dec 17, 2009, 3:38:00 PM12/17/09
to
Hallo Klaus,

> ...


> Es ist denkbar, dass es Restriktionen gibt, die Makros nicht zulassen.

> Deshalb gibt es zum Glück Lösungen, die darauf verzichten konnen.
> ...

Genau da sind wir unterschiedlicher Meinung. IMHO ist es undenkbar,
dass jemand mit Deiner "Lösung" glücklich wird.

Nichts für ungut, aber der Iterationsansatz ist Unfug.

Viele Grüße,
Bernd

Klaus "Perry" Pago

unread,
Dec 17, 2009, 5:04:12 PM12/17/09
to
Hallo Bernd,

"Bernd P" <bplu...@gmail.com> schrieb im Newsbeitrag

news:0ac8f4fe-cf72-4fce...@u7g2000yqm.googlegroups.com...

> Genau da sind wir unterschiedlicher Meinung. IMHO ist es undenkbar,

> dass jemand mit Deiner "L�sung" gl�cklich wird.

w�re sch�n, wenn ich mir die ausgedacht h�tte, aber die Idee hatten schon
andere.

> Nichts f�r ungut, aber der Iterationsansatz ist Unfug.

und deine L�sung bringt niemanden weiter, wenn Makros systemseitig verboten
sind.

Gru�
Klaus

Bernd P

unread,
Dec 18, 2009, 1:24:21 AM12/18/09
to
Hallo Klaus,

> ...


> w re sch n, wenn ich mir die ausgedacht h tte, aber die Idee hatten schon
> andere.

> ...

Meine Meinung nach setzt niemand diese Idee in der Praxis ein, auch Du
nicht (richtig?).

> ...


> und deine L sung bringt niemanden weiter, wenn Makros systemseitig verboten
> sind.

> ...

Der Fall liegt hier wohl nicht vor.

Falls aber Makros verboten wären, würde ich einen Pivottabellenansatz
versuchen.

Meine Grundregel lautet: Schlage nichts vor, was Du nicht auch selbst
einsetzen würdest. Am besten schlägt man vor, was man bereits seit
Jahren mit guten Ergebnissen verwendet.

Iterationen gehören da mit Sicherheit nicht zu. Im Gegenteil: Ich
finde, sie führen einen weniger versierten (na, eigentlich alle) Excel
Anwender in die Irre.

Es gibt Unterschiede zwischen einer pfiffigen Idee und einer
praxistauglichen.

Viele Grüße,
Bernd

Klaus "Perry" Pago

unread,
Dec 18, 2009, 10:34:40 AM12/18/09
to
Hallo Bernd,

"Bernd P" <bplu...@gmail.com> schrieb im Newsbeitrag

news:d571fd5b-f3cd-42ae...@c3g2000yqd.googlegroups.com...

>> und deine L sung bringt niemanden weiter, wenn Makros systemseitig
>> verboten
>> sind.
>> ...

> Der Fall liegt hier wohl nicht vor.

Diesen Hinweis vom OP hab ich wohl �berlesen, aber vielleicht liegt
dieser Fall bei jemandem vor, der mitliest und eine �hnliche Aufgabe
l�sen m�chte.

> Falls aber Makros verboten w�ren, w�rde ich einen Pivottabellenansatz
> versuchen.

wie das auf diesen Fall anzuwenden ginge, w�rde mich interessieren.

Lass doch einfach jeden f�r sich selbst die angebotenen L�sungen
ausprobieren
und die sich f�r ihn daraus ergebende beste L�sung w�hlen ohne dass gleich
andere Ans�tze abgewertet werden.

Gru�
Klaus

0 new messages