Zellenwerte automatisch übernehmen
#1
Hallo liebe Forenmitglieder,
ich habe ein Excel-Defizit und hoffe auf eine Hilfestellung.
Ausgangssituation:
Ich plane (zum zweiten Mal) für das Jahr 2017 eine Preis-Beobachtung des Gebrauchtfahrzeugmarkts für Wohnmobile. Dieses Mal möchte ich aber die Erfassung der Daten noch weiter vereinfachen.
Im Tabellenblatt "Beobachtung" werden die Grobdaten der Fahrzeuge erfasst. Die Preise sollen in einem weiteren Tabellenblatt (Womo<35TEUR und Womo>35TEUR) nach Baujahr geordnet (Zeile) fortlaufend automatisch übernommen werden.
Ich habe schon einige Versuche angestellt und die Formeln sind noch drin.
Problem ist halt, dass ich nicht weiß wann welches Baujahr mit welchem Preis in der Beobachtungsliste eingetragen wird und auch nicht wieviele Angebote es im Beobachtungszeitraum geben wird. Daher ist es notwendig, in den Tabellenblättern Womo<35TEUR und Womo>35TEUR die Zeilen nach rechts nahezu unbegrenzt zu füllen, wenn ein Fahrzeug dem Kriterium Baujahr entspricht.
In meiner letzten Beobachtung habe ich noch alles per Hand übertragen, was aber sehr aufwändig und begrenzt war.
Siehe Screenshot
Ich hoffe, ihr könnt mit meiner Beschreibung etwas anfangen und freue mich auf eure Tipps!
LG Salo
(Excel 2010)


Angehängte Dateien Thumbnail(s)
   

.xlsx   Beobachtung Womo 2017.xlsx (Größe: 21,42 KB / Downloads: 11)
Top
#2
Hallöchen,

wenn Deine Formeln passen, geht es Dir nur darum, die Fehlerausgaben zu vermeiden? Dazu nimmst Du einfach die Funktion

WENNFEHLER

Im Prinzip
=WENNFEHLER(MeineFormel;"Fehler")

Wenn alles rund läuft, wird MeineFormel gerechnet, ansonsten wird "Fehler" ausgegeben - oder, wenn Du willst, auch ""
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#3
Hallo André,
ne, ne, WENNFEHLER ist für mich nur "Kosmetik" und ich kenne die Funktion. Ich habe die Formeln gelassen, um euch meinen Denkansatz zu zeigen. Es funktioniert eben nicht so, wie ich es gerne hätte.

Trotzdem vielen Dank für deine Hilfe.

LG Salo
Top
#4
Hallo Salo,

ich glaube, für eine Formellösung muss ich erst mal pausieren. Ich weiß nun nicht, warum die Daten auf dem Zielblatt genau so angeordnet werden sollen. Wäre denn nicht eventuell eine Pivottabelle eine Variante? Da ist die Anordnung allerdings nicht so ...

Per VBA würde ich einfach filtern, die gefilterten Daten kopieren und transponiert einfügen. Wäre denn VBA eine Variante?
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#5
Hallo André,
Die Anordnung auf dem Zielblatt ist nicht bindend. Ich habe mich für waagerecht entschieden, weil es für mich übersichtlicher ist.
Pivot-Tabelle fällt aus, da die Daten aus dem Zielblatt für laufende statistische Auswertungen, wie Diagramme, Wertfortschreibungen oder Vergleiche etc. dienen sollen.
Aber VBA wäre eine Option. Ich habe mich da auch schon reingelesen... aber ehrlich gesagt habe ich da keinen Plan. :(

Wenn du mir da einen Code schreiben könntest, wäre ich echt happy!

LG Salo
Top
#6
Hallo Salo,

hier wäre mal ein erster Ansatz für die Zahlen <= 35000. Den Code fügst Du in ein Modul ein und startest ihn erst mal automatisch. Der hat programmtechnisch noch ein paar Reserven, dazu morgen mehr. Neben dem Stil geht es z.B. auch um die flexible Gestaltung von Anfangs- und Endjahr usw.
Für >35000 muss nur die Bedingung und der Blattname geändert werden. Dazu könnte man noch eine zweite Schleife um die jetzige bauen .... Schaue Dir mal an, ob das in die richtige Richtung geht, morgen Abend geht's dann weiter.

Code:
Sub Makro1()
'Variablendeklaration
Dim iCnt%
'Blatt Beobachtung auswaehlen
Sheets("Beobachtung").Select
'Zeile 1 auswaehlen
Rows(1).Select
'erst mal alle Daten anzeigen
If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData
'Autofilter aktivieren / deaktivieren
Selection.AutoFilter
'Schleife ueber alle Jahre ab 2016 absteigend
For iCnt = 2016 To 2000 Step -1
  'Kriterium Jahr in Spalte C setzen
  ActiveSheet.Range("$A$1:$J$300").AutoFilter Field:=3, Criteria1:=iCnt
  'Kriterium <= 35000 in Spalte D setzen
  ActiveSheet.Range("$A$1:$J$300").AutoFilter Field:=4, Criteria1:="<=35000" _
      , Operator:=xlAnd
  'Bereich D2:D300 auswaehlen, ausgewaehlt werden nur sichtbare Zellen
  If Range("D1:D300").SpecialCells(xlCellTypeVisible).Rows.Count > 1 Then
    Range("D2:D300").SpecialCells(xlCellTypeVisible).Select
    'Auswahl kopieren
    Selection.Copy
    'Blatt Womo<35TEUR auswaehlen
    Sheets("Womo<35TEUR").Select
    'Jahreszelle auswaehlen. Startzeile bei erstem Schleifendurchlauf 2018-2016 = 2
    'dann 2018 - 2015 = 3 usw.
    Range("C" & 2018 - iCnt).Select
    'Daten einfuegen
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=True
    'Blatt Beobachtung auswaehlen
    Sheets("Beobachtung").Select
  End If
'Ende Schleife ueber alle Jahre ab 2016 absteigend
Next
If ActiveSheet.FilterMode Then
  ActiveSheet.ShowAllData
  'Autofilter deaktivieren
  Selection.AutoFilter
End If
End Sub
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#7
Hallo André,
vielen, vielen Dank für deine Bemühungen. Das Makro funktioniert grundsätzlich. Aber leider nur für´s Baujahr 2016. :(
Die anderen Baujahre werden ignoriert.
Du hast im Code was mit "2018" zu stehen, das kann ich nicht nachvollziehen. Liegt da vielleicht ein Fehler?

Ansonsten kommt es meinem Wunsch schon sehr nahe!

LG Salo
Top
#8
Hallo,

wenn ich das richtig verstanden habe, dann so:

[html]
Arbeitsblatt mit dem Namen 'Womo<35TEUR'
 ABCDE
1BaujahrAnzahlAngebotspreise  
220163321503450034980
3201522980031860 
42014123750  

ZelleFormel
C2=WENNFEHLER(AGGREGAT(15;6;Beobachtung!$D:$D/(Beobachtung!$C:$C=$A2)/(Beobachtung!$D:$D<35000);SPALTE(A1));"")
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg
[/html]

umgekehrte Reihenfolge:


Code:
=WENNFEHLER(AGGREGAT(14;6;Beobachtung!$D:$D/(Beobachtung!$C:$C=$A2)/(Beobachtung!$D:$D<35000);SPALTE(A1));"")
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
[-] Folgende(r) 1 Nutzer sagt Danke an BoskoBiati für diesen Beitrag:
  • Salo
Top
#9
Hallo Salo,

also, in dem Beispiel von Dir klappt es ordentlich. Ich habe allerdings vorher von Hand mal alles raus gelöscht, was da schon ab Spalte C nach rechts drin stand. Das Ergebnis sah dann so aus:
Tabellenblattname: Womo<35TEUR
ABCDE
220163345003215034980
3201522980031860
42014123750

Benutzte Formeln:
B2:  =WENN(ZÄHLENWENN(Baujahr_Beob;A2)=0;"k.A.";ZÄHLENWENN(Baujahr_Beob;A2))
B3:  =WENN(ZÄHLENWENN(Baujahr_Beob;A3)=0;"k.A.";ZÄHLENWENN(Baujahr_Beob;A3))
B4:  =WENN(ZÄHLENWENN(Baujahr_Beob;A4)=0;"k.A.";ZÄHLENWENN(Baujahr_Beob;A4))
© schauan
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • Salo
Top
#10
Hallo Edgar und André,
vielen Dank für die Vorschläge. Jetzt habe ich ein wenig die Übersicht verloren, m.a.W. ich stehe momentan auf dem Schlauch.

@Edgar:
Die Formel habe ich übernommen. Allerdings sind die Werte in den Zeilen für die Baujahre immer gleich (Tab "Womo<35TEUR)
Welcher Teil der Formel muss in den anderen Zellen (C1, D1, E1, ff) geändert werden, damit es so funktioniert, wie ihr es getestet habt. Denn scheinbar hat auch André das gleiche (richtige) Ergebnis.

@André:
Die ZÄHLENWENN Formel steht nicht zur Diskussion, denn die funktionierte ja bereits. ;) oder hast du dich da vertan? 

LG Salo
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste