Wie kann in Excel Tabelle B automatisch nach neuen Kriteri in Tabelle A suchen und summen setzen?

Liebe Experten,

nach ausgiebiger Recherche im Internet ohne Erfolg, möchte ich mich nun gerne an Experten wenden, um mein Problem zu schildern.
Gegeben ist eine Tabelle A mit Zahlen und Werten, die auf eine Tabelle B übertragen werden sollen.
Beispiel: In Tabelle A sind Unternehmen aufgeführt und Investitionssummen, die in diese Unternehmen geflossen sind. In dieser Tabelle wird jeweils auch die Branchenzugehörigkeit der entsprechenden Unternehmen angegeben.

Funktion von Tabelle B soll es nun sein, die Unternehmen In Tabelle A zu finden und mit ihrer gesamten Investitionssumme anhand ihrer Branche wiederzugeben.

fohrtgeführtes Beispiel

Tabell A:
BMW - Automobil - 5 Mio. €
BASF - Chemie - 5 Mio. €
BMW - Automobil - 2,3 Mio €

-> Leistung Tabelle B (Darstellung)
Automobil - 7,3 Mio €
Chemie -  5 Mio.€

Jetzt kommt das entscheidende Problem, wozu ich keine Lösung gefunden habe:
Sämtliche Beispiele im Internet basieren auf der Annahme, dass ich selbst filtern bzw. suchen will und mir Tabelle B dann die entsprechenden Ergebnisse ausliefert. Stattdessen ist es jedoch mein Ziel, dass sobald Tabelle A mit Einträgen gefüttert wird, Excel automatisch Tabelle B beliefert. Tab. B ist also grundsätzlich leer und „entwickelt“ sich erst durch Einträge in Tabelle A.
Gebe ich also die erste Zeile vollständig mit BMW - Automobil - 5 Mio. € ein, erscheint diese Auswertung bereits in Tab. B. (Automobil - 5Mio €) Gebe ich BASF ein, wird Tab. B um eine Zeile ergänzt. die dritte Zeile in Tab A. führt dazu, dass der Wert „Automobilbranche“ in Tab. B um 2,3 Mio€ erhöhrt wird. Excel soll also selbstständig auf Basis der Einträge in Tab. A suchen und die Diversifikation in Tab. B dynamisch vornehmen.
Das Problem ist also etwas spezifischer :smile: Über jeglichen Rat, Hinweis oder Hilfestellung würde ich mich ausgesprochen freuen, da ich hier eindeutig an meine Grenzen stoße.

Vielen Dank im Voraus
Viele Grüße
Eike

%MCEPASTEBIN%

fortgeführtes Beispiel

Tabell A:
BMW - Automobil - 5 Mio. €
BASF - Chemie - 5 Mio. €
BMW - Automobil - 2,3 Mio €

-> Leistung Tabelle B (Darstellung)
Automobil - 7,3 Mio €
Chemie -  5 Mio.€

Tab. B ist also grundsätzlich leer und „entwickelt“ sich erst durch
Einträge in Tabelle A.

was meinst du mit „leer“? Auch keine Formeln dann geht das nur mit Vba.
Mit Formeln in B geht das, sogar wenn du die Branchen die kommen gar nicht kennst, brauchste Hilfstabelle.

Schau nach Summewenn()

%MCEPASTEBIN%

? Was issen das ?

Gruß
Reinhard

Hallo Eike,

das lässt sich über einen VBA-Makro sicherlich machen.
Voraussetzung wäre aber, dass die Eingaben in Tabelle A sehr diszipliniert erfolgen.
Man müsste also z.B.

  • in Spalte A die Unternehmen schreiben. Die erste Eingabe wäre immer die maßgebende. Es dürfte also nicht beim ersten Mal „Commerzbank“ heißen und beim 2. Mal „Commerz Bank“.
  • in Spalte B die Branche schreiben. Auch hier gilt: „Automobil“ ist nicht gleich „Auto“.
  • in Spalte C die Beträge schreiben. Hier muss immer eine reine Zahl stehen, ohne Währungszeichen und ohne Tausender-Trenner. „5 Mio. €“ muss also als 5000000 geschrieben werden.
    Als Unterschiede erlaubt wären allenfalls voran- und hintenan gestellte Leerzeichen und unterschiedliche Groß- und Kleinschreibung.
    Wenn du das alles gewährleisten kannst, dann kann ich dir einen Makro schreiben, der dir die Tabelle B nach deinen Wünschen erzeugt.

Gruß, Andreas

Hallo,
mal grundsaetzlich,
nicht in Tabelle A muss rein, wo es hin soll.
Sondern in Tabelle B muss rein, wo es herkommen soll.
In Tabelle B Zelle b3 eintragen
= Wert von Tabelle A Zelle xy mal 2
oder nach dem Prinzip,
natuerlich in der passenden Syntax der jeweiligen Tabellenkalkulation.
Gruss Helmut

Hallo Reinhard,

mit „leer“ meine ich nur, dass in den Zellen kein Eintrag sichtbar ist, also „“. Formeln wären natürlich hinterlegt. Summewenn klappt, wenn ich eine Zielvorgabe wie „Automobil“ in der Formel vorgebe. Allerdings weiß ich ja noch gar nicht, welche Branche zuerst auftaucht. Wäre also die erste Zeile „Pharma“ und die zweite „Automobil“, wäre es super, wenn Tabelle B in der ersten Zeile auch Pharma stehen hat und in der zweiten Automobil. Oder gibt es dazu tatsächlich eine Möglichkeit mit Summewenn? %MCEPASTEBIN% war ein Ausversehen :wink:

VG
Eike

Hallo Andreas,

die Namen und Branchen gleich zu schreiben, sollte kein Problem sein. Jedoch wäre der Betrag in Spalte C idealerweise eine Summe aus zwei anderen Werten, mit Tausender-Trenner. Vllt kann ich dies aber auch umgehen, es daran scheitern zu lassen, wäre ja schade. Ein Ansatz wie das Makro aussehen könnte, wäre natürlich phantastisch :wink:

VG
Eike

Hallo Andreas,

Hallo Eike,

Jedoch wäre der Betrag in Spalte C idealerweise
eine Summe aus zwei anderen Werten,

wenn das sowas ist wie =A1+B1 oder so, ist das kein Problem.

mit Tausender-Trenner.

Also einfach im Format der Zelle ein Tausender-Trenner. Das ist OK.
Es muss nur sichergestellt sein, dass die Zelle wirklich eine Zahl (oder eine Formel, die eine Zahl ergibt) enthält, und nicht irgend welchen Text.

Ein Ansatz wie das Makro aussehen
könnte, wäre natürlich phantastisch :wink:

Ich versuch mich mal daran.

VG
Eike

Gruß, Andreas

Hallo Eike,

ich hab dir hier mal eine Beispielmappe hochgeladen:
http://www.file-upload.net/download-9023473/Branchen…
Deine Beispiele habe ich schon eingetragen.
Mach deine Eingaben im Blatt „Einzelposten“. Das Blatt „Summierung“ wird dann automatisch aktualisiert.
Einen Schönheitsfehler hat es: Wenn du in einem vorhandenen Eintrag etwas änderst, wird der Betrag noch mal aufaddiert.

Du kannst ja mal damit rumspielen und mir einen Kommentar schreiben.

Gruß, Andreas

Hallo Andreas,

die letzten Tage war ich leider verhindert und konnte mir dein Werk noch nicht zu Gemüte führen. Das soll gleich morgen früh nachgeholt werden. Jedenfalls überhaupt schonmal vielen Dank für diene Hilfsbereitschaft, ich werde morgen gerne Rückmeldung geben.
VG
Eike

Hallo Andreas,

laut Virenschutz handelt es sich bei der o.g. Datei um einen Trojaner. Mich verwundert etwas, dass es sich um eine .exe und nicht um eine reine .xlsm Datei handelt. hat sich ein Programm da vorgeschaltet oder hast du eine andere Erklärung dafür? Ich bin kein User von file-upload.net und lediglich auf die entsprechenden Schaltflächen download bzw. play now gegangen.
Viele Grüße
Eike

du musst den dunkelblauen Dowloadbutton nehmen, der ziehmlich auf der Mitte der Seite sitzt. Alles andere ist Werbe-Spam.

Gruß, Andreas

Alles klar, hat diesmal sehr gut geklappt. Die Tabelle gefällt mir ebenfalls super, alle Achtung! Ein kleiner Schönheitsfehler ist für meine Zwecke enthalten. Es ist vorgesehen, dass in Tabelle A, also in deinem Beispiel im Tabellenblatt Einzelposten, die Posten geändert werden können . Sprich irgendwann ist z.B. BASF mit seinem Betrag mal raus aus der Tabelle A. Lösche ich einen Eintrag in deiner Tabelle, ist sein Wert in der Summierung in Tabelle B weiterhin enthalten und wird gespeichert. Ist es möglich, dass Tabelle B auf so etwas noch reagieren kann?
Viele Grüße
Eike

Hallo Eike,

hier mal eine neue Version:
http://www.file-upload.net/download-9047436/Branchen…

Markiere im Blatt „Einzelposten“ die Zeile oder die Zeilen, die du löschen willst (es genügt auch jeweils eine Zelle der Zeile, in Spalte A, B oder C) und drücke dann Strg-d (soll für delete stehen). Dann sollten die Beträge im Blatt „Summierung“ abgezogen werden.

Melde dich, wenn’s Probleme gibt.

Gruß, Andreas

Hallo Andreas,

nein es gibt keine Probleme, vielen vielen Dank für deine Hilfe :smile:
Eine kurze Frage würde ich gerne noch stellen wollen: Wie würdest du im Summenblatt am besten eine Gesamtsumme in Zeile B setzen? Eigtl sollte dafür kein Makro nötig sein, in Foren steht häufig, es ginge bereits mit der Tabellenfunktion, in diesem Fall überschreibt Excel allerdings die Gesamtsumme durch einen neuen Eintrag. Kennst du hierfür eine einfache Lösung?

Viele Grüße
Eike

Hi Eike,

ich bin kein Meister der Formeln, kenne mich eher mit VBA aus,. Deswegen hier die entsprechende Lösung:

Option Explicit
Option Base 1

Dim delFirma(1000) As String, delBranche(1000) As String, delBetrag(1000) As Double, delZeilen As Integer

Sub wegDamit()
 Dim i As Integer
 Dim zeile As Long

 Selection.EntireRow.Delete
 With Sheets("Summierung")
 For i = 1 To delZeilen
 zeile = .Cells(.Rows.Count, 1).End(xlUp).Row
 While .Cells(zeile, 1) delBranche(i)
 zeile = zeile - 1
 Wend
 .Cells(zeile, 2) = .Cells(zeile, 2) - delBetrag(i)
 Next i
 End With
End Sub


Private Sub Worksheet\_Change(ByVal Target As Range)
 Dim zeile As Long, letzte As Long, zeileSu As Long
 Dim branche As String, betrag As Double
 Dim gefunden As Range

 If Target.Row 3 Then Exit Sub
 zeile = Target.Row
 If IsEmpty(Cells(zeile, 1)) Or IsEmpty(Cells(zeile, 2)) Or IsEmpty(Cells(zeile, 3)) Then Exit Sub
 branche = Cells(zeile, 2)
 betrag = Cells(zeile, 3)
 With Sheets("Summierung")
 letzte = .Cells(.Rows.Count, 1).End(xlUp).Row
 Set gefunden = .Range("A2:A" & WorksheetFunction.Max(letzte, 2)).Find(What:=branche, LookIn:=xlValues, lookAt:=xlWhole)
 If gefunden Is Nothing Then
 zeileSu = letzte + 1
 .Cells(zeileSu, 2).ClearContents
 letzte = letzte + 1
 Else
 zeileSu = gefunden.Row
 End If
 .Cells(zeileSu, 1) = branche
 .Cells(zeileSu, 2) = .Cells(zeileSu, 2) + betrag
 .Cells(letzte + 1, 2).FormulaLocal = "=SUMME(B2:B" & letzte & ")"
 End With
End Sub

Private Sub Worksheet\_SelectionChange(ByVal Target As Range)
 Dim letzte As Long
 Dim zeile As Object
 Dim schnitt As Range

 Application.EnableEvents = False
 letzte = Cells.SpecialCells(xlCellTypeLastCell).Row
 Application.EnableEvents = True
 Set schnitt = Intersect(Target, Range("A2:C" & letzte))
 If Not schnitt Is Nothing Then
 delZeilen = 1
 For Each zeile In schnitt.Rows
 delFirma(delZeilen) = Cells(zeile.Row, 1)
 delBranche(delZeilen) = Cells(zeile.Row, 2)
 delBetrag(delZeilen) = Cells(zeile.Row, 3)
 delZeilen = delZeilen + 1
 Next zeile
 delZeilen = delZeilen - 1
 End If
End Sub

Gruß, Andreas

Guten Morgen Andreas,

so, jetzt konnte ich es mir auch endlich angucken, läuft! Danke sehr :smile:

Viele Grüße
Eike

@Eike, danke daß du dich rückmeldest :smile: o.w.T.