Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Bezug jede 2. Zeile um eins erhöhen
#1
Hallo zusammen,

ich habe ein Problem und hoffe ihr könnte mir dabei helfen.
Ich habe zwei Tabellen in meinem Dokument
Tab1 hat eine Auflistung von Werten von Tab1!A1 bis Tab1!A20
Tab2 soll nun die Werte "zerpflücken", so dass

Tab2!A1 = Tab1!A1 "Teil1"
Tab2!A2 = Tab1!A1 "Teil2"
Tab2!A3 = Tab1!A2 "Teil1"
Tab2!A4 = Tab1!A2 "Teil2" 
usw. 

entspricht. Das zerpflücken bezieht sich auf Texte und Zahlen etc. also nicht so komplex.
Wenn ich meine Formeln dann aber in Tab2 via Mausklick "weiter nach unten erweitere" ... damit ich nicht jede Formel manuell anpassen muss (in der echten Tabelle geht es nicht bis 20 sondern 1000), macht er den Bezug aber falsch. Habt ihr Lösungsvorschläge?

Liebe Grüße,
Markus
Antworten Top
#2
Hallo Markus,

mit den Funktionen LINKS(), RECHTS() und TEIL() könntest du zum Ziel kommen. Mehr, wenn du ein Beispiel postest. https://www.clever-excel-forum.de/thread-326.html
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top
#3
Hallo Markus,

(05.05.2019, 18:20)masse schrieb: Wenn ich meine Formeln dann aber in Tab2 via Mausklick "weiter nach unten erweitere" ...

welche Formeln?

Gruß Uwe
Antworten Top
#4
Danke schon einmal ... das "Zerlegen" für sich ist kein Problem (Links/Rechts/Teil ... funktionieren super) ...

meine Frage geht eher darum, wie ich die Formel eben im zwei Zeilen Intervall weiterführen kann ... hier mal ein Beispiel im Anhang.
also TAB1 sind die vorhandenen Basisdaten 
und TAB2 zeigt wie ich dann eben die Zeilen aus Tab2 zerlege und es immer zwei Zeilen in Tab2 für jeweile eine Zeile in Tab1 gibt. 
Wenn ich nun aber die Tabelle automatisch weiterführen will, dann macht er die Formelbezüge von Tab2 zu Tab1 falsch. Ideen?
Liebe Grüße,
Markus


Angehängte Dateien
.xlsx   sample.xlsx (Größe: 9,46 KB / Downloads: 9)
Antworten Top
#5
Hallo, schade, dass bei den Anfragen die Beispiele so "dahingerotzt" werden, z.B. haben Tabellen hier keine Überschriften. Nun kann man sich darüber aufregen, dass ich mich darüber aufrege, is mir aber egal. Das ist mit Power Query - in wenigen (maximal  drei) Schritten, mit ohne Formeln und dynamisch - erledigt... 

Eigentlich nur :Tabelle (!) nach PQ laden, "Spalte nach Trennzeichen teilen" {Aufteilen in Zeilen} und ausgeben... Fertich!!!
Power Query ist ein Add-In, dass ab XL2010 zur Verfügung steht (kann man kostenlos downloaden und installieren) und ab XL2016 ist es fester Bestandteil von XL...
Gruß Jörg
ich muss mich erst wieder ganz langsam heran robben. Also bitte ich um Nachsicht

"Wer immer tut, was er schon kann, bleibt immer das, was er schon ist." - Henry Ford
Antworten Top
#6
Lieber Jockel,

danke für die Idee und deine Kritik - ich bin ein Fan von Pragmatismus und die Realdaten sind vertraulich - deshalb leider nicht zu veröffentlichen.
PowerQuerry kenne ich - gibt es aber auch einen Ansatz der die Bezüge in Formeln richtig macht?
Liebe Grüße,
Markus
Antworten Top
#7
(06.05.2019, 00:17)masse schrieb: ...
danke für die Idee und deine Kritik - ich bin ein Fan von Pragmatismus und die Realdaten sind vertraulich ...
PowerQuerry kenne ich - gibt es aber auch einen Ansatz der die Bezüge in Formeln richtig macht?

Hallo, du scheinst meine "Kritik" aber nicht verstanden zu haben (es geht nicht um "Real"daten); musst du auch nicht - da hast du Recht. 

Bestimmt geht das auch mit Formeln... Ganz bestimmt sogar.
Gruß Jörg
ich muss mich erst wieder ganz langsam heran robben. Also bitte ich um Nachsicht

"Wer immer tut, was er schon kann, bleibt immer das, was er schon ist." - Henry Ford
Antworten Top
#8
a) Der normale Zugriff, zellverdoppelnd:

Tab2!A1[:A999]: =INDEX(Tab1!A:A;ZEILE(A1)/2+0,5)

b) Falls die "Teile" in den Bezügen vor und ab dem 13ten Zeichen stehen:

Tab2!A1[:A999]: =TEIL(INDEX(Tab1!A:A;ZEILE(A1)/2+0,5);1+12*(REST(ZEILE(A1);2)=0);12)

c) Falls die "Teile" leerzeichengetrennt sind, mit "/" oder etwas ganz anderes: Noch mal nachfragen. Bitte unterlasse dabei ab jetzt jedwede Salamitaktik und bemühe Dich um vollständige Problembeschreibung nicht anhand von Text, sondern ausreichenden Beispielen und Wunschergebnissen.

Tab2!A1[:A999]: =GLÄTTEN(TEIL(WECHSELN(INDEX(Tab1!A:A;ZEILE(A1)/2+0,5);"/";WIEDERHOLEN(" ";99));(1+(REST(ZEILE(A1);2)=0))*99-98;99))

(mit http://www.office-hilfe.com/support/show...-aufteilen)
___________________________________________________________________________________
Hallo Jockel,

vor einem Jahr warst Du noch bereit zu Formellösungen. Warum jetzt so häufig der Allgemeinplatz PQ? Im Grunde ist das eine Antwort wie: "Excelformeln sind out. Lerne PQ - helfen tun wir dabei nicht, und Formelfragen sind nun aus der Sicht von uns PQ-Verfechtern genug im Netz beantwortet."

Ich fände für PQ ein "Konstruktionsmakro" fair. Dabei werden die PQ-Schritte (falls sie denn überhaupt aufgezeichnet werden können) 1. schrittweise gezeigt und 2. die neuen Excel-Objekte dazu vermittelt, wenn man sich auch noch die Mühe macht, die Aufzeichnung zu bearbeiten. Ist auch egal, mit welcher Version. Vermutlich wäre es mit 2016, 2019 oder 365 halbwegs gleich (wobei 365 sich immer ändern kann), da dort jeweils fest eingebaut, kein Add-In.
[-] Folgende(r) 1 Nutzer sagt Danke an LCohen für diesen Beitrag:
  • masse
Antworten Top
#9
In VBA:


Code:
Sub M_snb()
   sn = Cells(1).CurrentRegion
   ReDim sp(2 * UBound(sn), 1)
   
   For j = 1 To UBound(sn)
      sp(2 * (j - 1), 0) = Split(sn(j, 1), "/")(0)
      sp(2 * (j - 1) + 1, 0) = Split(sn(j, 1), "/")(1)
      sp(2 * (j - 1), 1) = sn(j, 2)
      sp(2 * (j - 1) + 1, 1) = sn(j, 2)
   Next
   
   Cells(1, 6).Resize(UBound(sp) + 1, 2) = sp
End Sub


oder


Code:
Sub M_snb()
   Cells(1).Resize(2 * Cells(1).CurrentRegion.Rows.Count) = Application.Transpose(Split(Join(Application.Transpose(Cells(1).CurrentRegion.Columns(1)), "/"), "/"))
   
   With Cells(1).CurrentRegion.Columns(1)
        .Offset(, 4) = "=offset(B$1,int((row()-1)/2),0)"
        .Offset(, 1) = .Offset(, 4).Value
        .Offset(, 4).ClearContents
    End With
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#10
Danke für die Lösungen - werde mich die kommenden Tage damit beschäftigen (bin gerade auf Reisen) und mich dann zurück melden.
Bis bald,
Markus
Antworten Top


Gehe zu:


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