Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Excel
  Tabellenblattübergreifende Filterfunktion

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  Tabellenblattübergreifende Filterfunktion (7143 mal gelesen)
thewolff
Mitglied



Sehen Sie sich das Profil von thewolff an!   Senden Sie eine Private Message an thewolff  Schreiben Sie einen Gästebucheintrag für thewolff

Beiträge: 140
Registriert: 03.06.2003

erstellt am: 13. Jul. 2009 07:29    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


Filterabfrage.zip

 
Moin Excel-Profis,

in der Beispieldatei möchte ich, im Tabellenblatt Abfrage, in dem blauen Feld eine Summe eintragen die sich über die Vergleichswerte aus der Tabelle Info zusammensetzt. Bisher wechsel ich in die Tabelle Info, treffe meine Filterauswahl (1 bis 3, 2 oder auch alle 3) und bekomme in der Zeile 1 meinen entsprechenden Wert oder bei mehreren Treffern einen Mittelwert.
Ich möchte das Blatt Info verstecken (besser als extra Datei) und in den gelben Feldern auf Tabellenblatt Abfrage soll dieser Filter angesteuert werden. Wie kann ich die Filterfunktion ansteuern oder muss ich den Filterwert auf das andere Tabellenblatt übergeben?

Bin ich mit dieser Arbeit bislang auf dem richtigen Weg oder habe ich im Aufbau der Datei schon grundlegende Fehler gemacht? Könnt Ihr mir bitte bei dieser Problematik behilflich sein oder habt Ihr Veränderungs- oder andere Lösungsvorschläge?

Das ist sicherlich eine Datenbankfunktion und mit einem anderen Programm besser zu lösen, aber ich habe nur Excel zur Verfügung.


------------------
Gruß
    Marco

[Diese Nachricht wurde von thewolff am 14. Jul. 2009 editiert.]

[Diese Nachricht wurde von thewolff am 14. Jul. 2009 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

runkelruebe
Moderator
Straßen- / Tiefbau




Sehen Sie sich das Profil von runkelruebe an!   Senden Sie eine Private Message an runkelruebe  Schreiben Sie einen Gästebucheintrag für runkelruebe

Beiträge: 8075
Registriert: 09.03.2006

MS-Office 365 ProPlus x86
WIN7(x64)

erstellt am: 14. Jul. 2009 08:46    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für thewolff 10 Unities + Antwort hilfreich

Guten Morgen,
Da Deine Mappe in 97-2003-Format gespeichert ist, gehe ich (leider) von einer Version unter 2007 aus. Warum leider: Weil Du in der 2007 die Funktion
Code:
MITTELWERTWENNS(Durchschnitt_Bereich;Kriterien_Bereich1;Kriterium1;Kriterien_Bereich2;Kriterien2…;)

zur Verfügung hättest.
Als Beispiel: In Deinem Info-Blatt definierst Du Namen :
FiAuftrag =Info!$A$4:$A$38
FiKunde =Info!$B$4:$B$38
FiProjekt =Info!$C$4:$C$38
Ko1=Info!$D$4:$D$38
Ko2=Info!$E$4:$E$38
Ko3=Info!$F$4:$F$38

Und kannst damit auf dem Abfrage-Blatt mit der Formel

Code:
=MITTELWERTWENNS(Ko1;FiAuftrag;$B$3;FiKunde;$C$3;FiProjekt;$D$3)
arbeiten.

Aber, hast Du ja leider nicht.
Fällt mir auf die Schnelle nur Plan B ein: VBA um den Autofilter zu steuern:

Code:
Sub AFilter()
If Sheets(1).Range("B3") <> "" Then Sheets(2).Range("$A$3:$C$38").Autofilter Field:=1, Criteria1:=Sheets(1).Range("B3")
If Sheets(1).Range("C3") <> "" Then Sheets(2).Range("$A$3:$C$38").Autofilter Field:=2, Criteria1:=Sheets(1).Range("C3")
If Sheets(1).Range("D3") <> "" Then Sheets(2).Range("$A$3:$C$38").Autofilter Field:=3, Criteria1:=Sheets(1).Range("D3")
       
End Sub
Public Sub AFilter_Reset()
        If Sheets(2).AutoFilterMode Then If Sheets(2).FilterMode Then Sheets(2).ShowAllData
End Sub

Um das Info-Blatt zu verstecken, nutz die Worksheets(2).Visible = xlVeryHidden Eigenschaft.
Vom Auslagern in eine andere Datei halte ich pers. nicht viel. Immer mal wieder verschiebt man eine Datei, ohne an die Folgen für bestehende, referenzierende andere Dateien zu denken. Der Schaden wird kleiner, wenn man innerhalb einer Datei bleibt.
Wenn die Datei nach draußen gehen soll, solltest Du sowieso eine "Export-Datei" erzeugen, z.B. mit ThisWorkbook.Sheets(1).Copy

btw, warum eigentlich =TEILERGEBNIS(9;E4:E99)/TEILERGEBNIS(2;E4:E99) und nicht gleich =TEILERGEBNIS(1;E4:E38)?

------------------
Gruß,
runkelruebe          Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße...

System-Info | Excel -Suche | RuA-Suche | FAQ-ACAD | CAD.de-Hilfe | Sei eine Antilope

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Beverly
Mitglied
Dipl.-Geologe (Rentner)


Sehen Sie sich das Profil von Beverly an!   Senden Sie eine Private Message an Berverly  Schreiben Sie einen Gästebucheintrag für Berverly

Beiträge: 394
Registriert: 11.08.2007

erstellt am: 14. Jul. 2009 09:12    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für thewolff 10 Unities + Antwort hilfreich

Hi Marco,

das lässt sich nur mit VBA lösen. Dazu im Codemodul des Tabellenblattes Abfrage diesen Code:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    With Worksheets("Info")
        If Target.Count = 1 Then
            Select Case Target.Address
                Case "$B$3", "$C$3", "$D$3"
                    If Target = "" Then
                        .Cells(3, Target.Column - 1).AutoFilter field:=Target.Column - 1
                    Else
                        .Cells(3, Target.Column - 1).AutoFilter field:=Target.Column - 1, Criteria1:=Target
                    End If
            End Select
        Else
            If Not Intersect(Target, Range("B3:D3")) Is Nothing Then
                If Target.Cells(1) = "" Then
                  If .FilterMode Then .ShowAllData
                Else
                    MsgBox "Bitte jeden Filter getrennt setzen"
                End If
            End If
        End If
    End With
End Sub

Du solltest deine Formeln im Tabellenblatt Abfrage so schreiben, dass im Falle eines Nichtfindens eines Filterkriteriums die Formeln keinen Fehler anzeigen - also nach diesem Prinzip:

    B7: =WENN(ISTFEHLER(Info!D1);"";Info!D1)
    C7: =WENN(B7=0;0;B7/B$10)

Die Formeln im Tabellenblatt Info solltest du vielleicht umschreiben, sodass 0 angezeigt wird wenn im Tabellenblatt kein Filterkriterium steht:

    D1: =WENN(Abfrage!B3<>"";TEILERGEBNIS(9;D4: D99)/TEILERGEBNIS(2;D4: D99);0)
    E1: =WENN(Abfrage!B3<>"";TEILERGEBNIS(9;E4:E99)/TEILERGEBNIS(2;E4:E99);0)
    F1: =WENN(Abfrage!B3<>"";TEILERGEBNIS(9;F4:F99)/TEILERGEBNIS(2;F4:F99);0)

Bisher wird ja in diesem Fall die Summe aller Einträge angezeigt.

Ich nehme an, dass die Auftragsnummer ein eindeutiges Kennzeichen ist, also nur jeweils 1 Mal erscheint? Dann solltest du für B3 ein DropDown-Listenfeld aus Daten Gültigkeit verwenden, sodass nur die vorhandenen Daten ausgewählt werden können.

Deine Formel in D7: D9 habe ich nicht verstanden - da muss ja immer 0 als Ergebnis erscheinen, da in der Bezugszelle D10 außer 0 nichts anderes drin steht.

------------------
Bis später,
Karin

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Thomas Harmening
Moderator
Arbeiter ツ




Sehen Sie sich das Profil von Thomas Harmening an!   Senden Sie eine Private Message an Thomas Harmening  Schreiben Sie einen Gästebucheintrag für Thomas Harmening

Beiträge: 2897
Registriert: 06.07.2001

Das Innerste geäussert
und aufs Äusserste verinnerlicht

erstellt am: 14. Jul. 2009 12:54    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für thewolff 10 Unities + Antwort hilfreich

IMHOIn my humble oppinion (Meiner Meinung nach) auch Formelonly machbar . in C1 steht "AUTO"
Code:
=SUMMENPRODUKT((C4:C38=C1)*(D4:D38))/SUMMENPRODUKT((C4:C38=C1)*1)

liefert auch das Teilergebnis - aka Filter Projekt auf Auto - den Wert 241072,8571 aus,
nun die Formel auf Spalte B, A erweitern und in Blatt Abfrage Dropdown-Gültigkeiten für die Zellen B3, D3, E3 definieren.
da musss dann in Blatt info nichts gefiltert werden -  ein Filter ist ja auch nur Mathematik 

und dann gäbe es noch die Datenbankfunktion in Excel... maybe?

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

thewolff
Mitglied



Sehen Sie sich das Profil von thewolff an!   Senden Sie eine Private Message an thewolff  Schreiben Sie einen Gästebucheintrag für thewolff

Beiträge: 140
Registriert: 03.06.2003

erstellt am: 24. Aug. 2009 17:38    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Leute,
danke für Eure tolle Hilfe. Ich war längere Zeit ohne PC und kann jetzt erst die ganzen Hilfestellungen testen.
Nochmals Danke und sorry das ich mich erst jetzt melde.

------------------
Gruß
    Marco

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz