Anzeige
Archiv - Navigation
204to208
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
204to208
204to208
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

SVERWEIS Tabellen A + B dann Ergebnis in Tabelle C

SVERWEIS Tabellen A + B dann Ergebnis in Tabelle C
21.01.2003 11:36:59
Rüdiger
Hallo zusammen,

ich komme nicht mehr weiter :(

Mein Problem:
Tabelle A enthält mehrere Auftragsarten, die in Spalte AA enthalten sind. Spalte BB enthält die Auftragsnummer. Mit Sverweis möchte ich zu der entsprechenden Auftragsnummer die Kosten aus Tabelle B hinzufügen und gleichzeitig addieren. Das Ergebnis soll in Tabelle C die verschieden Auftragsarten, die Anzahl der Aufträge pro Auftragsart und die gesamten Kosten der Aufträge pro Auftragsart enthalten. Die Tabellen A und B möchte ich nicht verändern. Ich stelle mir da eine Verschachtelung mit Summewenn, Sverweis usw. in Tabelle C vor, sodass ich nur die Daten aus den Tabellen A und B ziehe.

Ich hoffe es kann mir jemand weiterhelfen.

Gruß Rüdiger

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: SVERWEIS Tabellen A + B dann Ergebnis in Tabelle C
21.01.2003 12:52:52
Panicman
Hallo Rüdiger,

Die Gesamtkosten pro Auftragsart erhälst du mit Summewenn(SpalteAA;Auftragsart;SpalteKosten)
Die Anzahl der Aufträge erhälst du mit Zählenwenn(SpalteAA;Auftragsart) Ich gehe allerdings davon aus, daß alle Auftragsnummern eindeutig einer Auftragsart zugeordnet sind. Wenn ja kannst du nämlich die Anzahl der Auftragsarten zählen.

Tschüß
Holger

Re: SVERWEIS Tabellen A + B dann Ergebnis in Tabelle C
21.01.2003 13:04:13
Rüdiger
Danke für den Hinweis. Mein Problem ist nur, die Kosten stehen in einer anderen Tabelle als die Auftragsarten. Ich müsste mir per Sverweis die Kosten zu den Auftragsnummern ziehen. Kann ich da Summewenn mit Sverweis verschachteln?
Anzeige
Re: SVERWEIS Tabellen A + B dann Ergebnis in Tabelle C
21.01.2003 13:27:15
Panicman
Hallo Rüdiger,

irgendwie verstehe ich dein Problem nicht.
Du spricht von Sverweis(). Für die Funktion Sverweis() müssen in der Tabelle, inder deine Kosten stehen, die Kosten 1:1 einer Auftragsart zugeordnet sein. Wenn das so ist, kannst du dir die Kosten mit Sverweis() zu den Auftragsarten holen und den Wert mit der Anzahl der Aufträge multiplizieren. Dann hast du die Gesamtkosten.
Wenn die nicht 1:1 zugeordnet sind, sondern N:N dann benutze
=SUMMENPRODUKT((TabelleB_BereichAuftragsart=TabelleC_ZelleAuftragsart)*TabelleB_BereichKosten)

Vielleicht hab ich es jetzt verstanden

Gruß
Holger

Anzeige
Re: SVERWEIS Tabellen A + B dann Ergebnis in Tabelle C
21.01.2003 13:27:16
Panicman
Hallo Rüdiger,

irgendwie verstehe ich dein Problem nicht.
Du spricht von Sverweis(). Für die Funktion Sverweis() müssen in der Tabelle, inder deine Kosten stehen, die Kosten 1:1 einer Auftragsart zugeordnet sein. Wenn das so ist, kannst du dir die Kosten mit Sverweis() zu den Auftragsarten holen und den Wert mit der Anzahl der Aufträge multiplizieren. Dann hast du die Gesamtkosten.
Wenn die nicht 1:1 zugeordnet sind, sondern N:N dann benutze
=SUMMENPRODUKT((TabelleB_BereichAuftragsart=TabelleC_ZelleAuftragsart)*TabelleB_BereichKosten)

Vielleicht hab ich es jetzt verstanden

Gruß
Holger

Anzeige
Re: SVERWEIS Tabellen A + B dann Ergebnis in Tabelle C
22.01.2003 08:42:50
Rüdiger
Danke panicman, ich probiers nochmal zu erklären:

Tabelle 1 enthält in Spalte A eine Auftragsart z.b. x,y,z. In der gleichen Tabelle steht in Spalte C die Auftragsnummer.

In Tabelle 2 gibt es zu jeder Auftragsnummer die entsprechenden Kosten. In Spalte B die Auftragsnummer und in Spalte D die Istkosten dazu.

In Tabelle 3 möchte ich dann pro Auftragsart die Anzahl der Auftragsarten (wie oft kommt y vor, wie oft kommt y vor usw.) und die Gesamtkosten pro Auftragsart haben.

Das ganze möchte ich so lösen, dass die Tabellen 1 und 2 unverändert bleiben, d.h. dass ich in diesen Tabellen keine Spalten oder Zwischenschritte einfügen möchte.

Gruss Rüdiger

Anzeige
Re: SVERWEIS Tabellen A + B dann Ergebnis in Tabelle C
22.01.2003 10:32:50
Panicman
Hallo Rüdiger,

jetzt hab ich dich verstanden:
die Tabelle3 sieht bei mir so aus

Spalte A: A1:A100 Auftragsarten
Spalte B: B1:B100 =ZÄHLENWENN(Tabelle1!$A$1:$A$100;$A2)
Spalte C: C1:C100 {=SUMME(WENN($A2=Tabelle1!$A$2:$A$100;WENN(Tabelle1!$C$2:$C$100=Tabelle2!$B$2:$B$100;Tabelle2!$D$2:$D$100)))}

Achtung: dies ist eine Array-Formel. Die geschweiften Klammern nicht mit eingeben; sondern die Zelle statt nur mit ENTER mit SHIFT-STRG-ENTER abschließen. Die geschweiften Klammern werden dann automatisch erzeugt.

Die Bereiche mußt du natürlich anpassen. Die überschrift in Spalten mit den Zahlen, darf nicht im Bereich enthalten sein.

Viel Spaß
Holger

Anzeige
Re: SVERWEIS Tabellen A + B dann Ergebnis in Tabelle C
22.01.2003 11:49:26
Rüdiger
Erstmal vielen Dank,

der erste Teil geht und es werden die Auftragsarten gezählt :)

Was die Kosten angeht, kriege ich als Summe 0 und selbst bei STRG+Enter werden bei mir keine geschweiften Klammern erzeugt. Liegt es vielleicht daran?

Gruss

Re: SVERWEIS Tabellen A + B dann Ergebnis in Tabelle C
22.01.2003 12:09:37
Panicman
Hallo Rüdiger,

solange du keine geschweiften Klammern angezeigt bekommst, funzt die Formel nicht.
normalerweise verläßt man die Eingabezelle mit ENTER. Um diese Klammern zu erzeugen, muß man vorher SHIFT+STRG gedrückthalten und dann dazu die ENTER-TASTE drücken

versuchs weiter
Holger

Re: SVERWEIS Tabellen A + B dann Ergebnis in Tabelle C
22.01.2003 12:38:29
Rüdiger
NOCH OFFEN !!!
22.01.2003 16:50:46
Panicman
Du hast recht,

bei mir hat das nur funktioniert, das beide Auftragsnummer in der gleichen Zeile standen also absolut gleich sortiert.

Weiß für unsortierte noch keinen Rat.

Tut mir leid
Holger

Anzeige
in VBA gehts vielleicht
22.01.2003 22:20:46
Panicman
Hallo Rüdiger,

ich habe es mit Formeln nicht hinbekommen.
Habe jetzt eine Lösung in VBA.

Tabelle3
A1 = Überschrift
A2:A??? = Auftragsarten
B1 = Überschrift Anzahl Aufträge
C1 = Gesamtkosten

Die Felder von B2:B??? und C2:C??? werden durchs Makro gefüllt

Dieses Makro in ein Modul deiner Datei kopieren

Ich hoffe es klappt, übernehme keine GARANTIE, also vorher schön Speichern.

Tschüß
Holger

Re: in VBA gehts vielleicht
23.01.2003 09:52:25
Rüdiger
Vielen Dank Panicman.
Also wenn alle Tabellen innerhalb einer Datei sind klappt das super. Da ich mich mit VBA nicht so auskenne, muss ich nochmal fragen, was ich anstatt ActiveWorkbook.Sheets("Tabelle1")... schreiben muss, wenn die Tabellen, jeweils in einer anderen Datei und in einem anderen Verzeichnis liegen. Muss ich das Makro einer Zelle oder einem Zellenbereich zuordnen?
Ich hoffe ich nerve nicht damit.
Danke vorab
Gruss Rüdiger

Anzeige
Re: in VBA gehts vielleicht
23.01.2003 22:40:03
Panicman
Hallo Rüdiger,

wenn alle drei Tabellen in verschiedenen Mappen stehen dann so.
Auswertung.xls (in diese das Makro)
Auftragsarten.xls
Auftragsnummer.xls
Wenn Auftragsarten und Auftragsnummern in einer Datei stehen muß du das entsprechend anpassen.


Option Explicit

Sub Kosten()

Dim AA As String                            'Auftragsart Tabelle1
Dim ANR As Integer                          'Auftragsnummer Tabelle1
Dim AZAA As Integer                         'Anzahl Aufträge
Dim K As Integer                            'Kosten Tabelle2
Dim GK As Integer                           'Gesamtkosten
Dim IntRow1, IntRow2, I1, I2  As Integer    'Counter
Dim WKSAusw, WKSAA, WKSNr As Workbook       'Variable für Arbeitsmappen

'Arbeitsmappe geöffnen
Application.ScreenUpdating = False          'Schaltet Bildschirmupdate ab
Application.DisplayAlerts = False           'Schaltet die Warnmeldungen aus
Workbooks.Open Filename:="D:\Eigene Dateien\Excel\Eigene Makros\Auftragsarten.xls"
On Error GoTo Nextstep
Nextstep:
Workbooks.Open Filename:="D:\Eigene Dateien\Excel\Eigene Makros\Auftragsnummer.xls"
On Error GoTo Allopen
Allopen:
Application.DisplayAlerts = True            'Schaltet die Warnmeldungen wieder an

'Workbooks als Variable definieren
Windows("Auswertung.xls").Activate
Set WKSAusw = ActiveWorkbook
Windows("Auftragsarten.xls").Activate
Set WKSAA = ActiveWorkbook
Windows("Auftragsnummer.xls").Activate
Set WKSNr = ActiveWorkbook

'von letzter Zelle in u.a. Tabellen nach oben die letzte benutzte Zelle finden
IntRow1 = WKSAusw.Sheets("Tabelle3").Range("A65536").End(xlUp).Row
IntRow2 = WKSAA.Sheets("Tabelle1").Range("A65536").End(xlUp).Row


'Mit Sverweis die Kosten pro Auftragsart ermitteln
WKSAusw.Sheets("Tabelle3").Activate

For I1 = 2 To IntRow1
AA = Cells(I1, 1).Value
    
    For I2 = 2 To IntRow2
        If WKSAA.Sheets("Tabelle1").Cells(I2, 1).Value = AA Then
            ANR = WKSAA.Sheets("Tabelle1").Cells(I2, 3).Value
        K = Application.WorksheetFunction.VLookup(ANR, WKSNr.Worksheets("Tabelle2").Range("B2:D100"), 3, False)
        GK = GK + K
        End If
    Next
    
    WKSAusw.Sheets("Tabelle3").Cells(I1, 3) = GK
    GK = 0
Next
    
'mit Zählenwenn die Anzahl der Aufträge ermitteln
For I1 = 2 To IntRow1
    
    WKSAA.Sheets("Tabelle1").Activate
    AZAA = Application.WorksheetFunction.CountIf(Range(Cells(2, 1), Cells(IntRow2, 1)), Cells(I1, 1))
    WKSAusw.Sheets("Tabelle3").Cells(I1, 2) = AZAA
    AZAA = 0

Next
WKSAusw.Sheets("Tabelle3").Activate
Range("A1").Select
Application.ScreenUpdating = True            'Schaltet Bildschirmupdate wieder an

End Sub
 

     Code eingefügt mit Syntaxhighlighter 1.15

Gruß
Holger

Anzeige
Re: in VBA gehts vielleicht
24.01.2003 10:06:30
Rüdiger
vielen dank für das makro. aber irgendwie läuft es nicht. vielleicht komme ich nicht mit den spalten klar.
die datei mit der auswertung enthält doch ein leeres tabellenblatt auf dem dann das makro gefahren wird, oder?
ich versuchs nochmal zu präzisieren. die auftragsarten stehen in auftragsart.xls, spalte a2 bis a1604 (kann aber sein dass mehr aufträge dazu kommen), die dazugehörigen auftragsnummern sind in der gleichen datei in spalte c2 bis c1604. in der datei mit den kosten stehen die auftragsnummern in spalte d2 bis d1753 (können mehr zeilen sein und kann auch grösser werden) die dazugehörigen kosten stehen in der gleichen datei in spalte i2 bis i1753.
wo starte ich das makro in der auswertungsdatei und wo kommen die zeilen und spaltenbeschriftungen hin. also wo sage ich dass genau in diese zelle der wert soll und die nächste zelle der nächste wert usw.
nochmals danke
gruss rüdiger

Anzeige
Re: in VBA gehts vielleicht
24.01.2003 11:40:25
Panicman
Hallo Rüdiger,

das ganze hier grenzt ja schon fast an Auftragsprogrammierung :-))

>"die datei mit der auswertung enthält doch ein leeres tabellenblatt auf dem dann das makro gefahren wird, oder?"
NEIN in der Ersten Zeile Stehen die Überschriften A=Auftragsart B=Anzahl Aufträge C=Kosten pro Auftrgasart
Ab A2 bis A??? must du manuell ALLE verschiedenen Auftragsarten eingeben.

>"die auftragsarten stehen in auftragsart.xls, spalte a2 bis a1604 (kann aber sein dass mehr aufträge dazu kommen), die dazugehörigen auftragsnummern sind in der gleichen datei in spalte c2 bis c1604."
OK, das Makro sucht in der Tabelle die letzte benutzte Zelle in Spalte A. Es ist also egal ob dort welche dazukommen.

>"in der datei mit den kosten stehen die auftragsnummern in spalte d2 bis d1753 (können mehr zeilen sein und kann auch grösser werden) die dazugehörigen kosten stehen in der gleichen datei in spalte i2 bis i1753."
Das war in deinem 1. Beispiel anders. Jetzt mußt du den Sverweis )Vlookup anpassen:
K = Application.WorksheetFunction.VLookup(ANR, WKSNr.Worksheets("Tabelle2").Range("D:I"), 6, False)

>"wo starte ich das makro in der auswertungsdatei"
Das Makro startest du Menuleiste EXTRAS/Makro/Makro auswählen und auf ausführen drücken

>"und wo kommen die zeilen und spaltenbeschriftungen hin. also wo sage ich dass genau in diese zelle der wert soll und die nächste zelle der nächste wert usw."
Der Syntax für die Zellen in VBA ist Cells(Nr_Zeile, Nr_Spalte) z.B. Zelle C8 = Cells(8, 3)
Die Gesamtkosten werden in der Auswertungs.xls in Spalte C geschrieben wenn du das anders haben willst muß du die Zeile
WKSAusw.Sheets("Tabelle3").Cells(I1, 3) = GK anpassen, wobei I1 ein Zähler ist also nur , 3 anpassen
Die Anzahl_Aufträge werden in der Auswertungs.xls in Spalte B geschrieben wenn du das anders haben willst muß du die Zeile
WKSAusw.Sheets("Tabelle3").Cells(I1, 2) = AZAA anpassen, wobei I1 ein Zähler ist also nur , 2 anpassen

Ich hoffe ich konnte dir das alles verständlich machen
Gruß
Holger

Re: in VBA gehts vielleicht
24.01.2003 12:38:47
rüdiger
es läuft noch nicht, aber ich werde mir das am wochenende in ruhe anschauen.
vielen vielen dank und ich gebe dir auf jeden fall bescheid.
gruss und ein schönes we
rüdiger

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige