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.

Diskussionen um PQ (aus:Bezug jede 2. Zeile um eins erhöhen)
#1
(06.05.2019, 03:42)LCohen schrieb: 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.

Moin, einfache Antwort, weil es einfach einfacher ist (für dich nicht, ist klar) und die Arbeit erleichtert. Hier braucht's zwei Schritte, da hast du mehr Text in deinen Formeln. Zurzeit mag ich Power Query. Es stellt für mich bei solchen Fragen mehr als eine Alternative dar und man kann es ab XL2010 nutzen. Man muss dazu kein Insider sein. 
Klar guck ich auch gern nach Formeln. Ich hätte auch die eine oder andere anbieten können. (Ob du es mir glaubst oder nicht) Aber hier: Bitte!

Formellösungen wird es immer geben (na ja vielleicht nicht immer), aber die Welt dreht sich nun mal. Und Excel in seinem Lauf halten weder Ochs noch Esel auf... Zudem sehe ich durch alle Foren hinweg, dass PQ einen schweren Stand hat - auch weil Frager nicht bereit sind eine Lösung zu hinterfragen. Am besten sind aber "Edel"helfer, die user anpflaumen, wenn es darum geht andere Formelwege zu gehen... und user belehren, nicht alles so zu machen, wie der Boss es will oder wie man es schon immer gemacht hat.

Dort spielt einer der Betreiber einer der renommiertesten Internetseiten mit lauter Excelformeln eine Vorreiterrolle. Schreibt in einem anderen renommierten Forum Power Query öffentlich schlecht, obwohl von dem, was er dort schreibt nichts der Wahrheit entspricht. Ich vermute mal dass der "Power Query- Beauftragte" dieser Plattform auch deswegen nicht weiterkommt...

Ein "Konstruktionsmakro" gibt es ja. Im Hintergrund wird ein M-Code kreiert (, den man kommentieren kann), den man gar nicht beherrschen oder lernen muss, weil menügesteuert (!). Diesen kann man kopieren und auf andere Anfragen anwenden (gegeben falls muss - wie bei Formeln auch - angepasst werden)
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
#2
Solange 2/3 aller PQ-Vorschläge "Machs doch mit PQ" (und nicht weiter) lauten, ist das in einem Forum, bei dem dann ja doch irgendwann mal Lösungen erwartet werden, ein Treppenwitz.

"Wie kriege ich die Fehler aus meinem Diktat?"

"Indem Du mehr lies'st, Kind!"

Das ist genau das Gleiche. Es ist absolut richtig. Aber.
Antworten Top
#3
Hallo, dann lies doch bitte noch mal, ich habe die (beiden nötigen) Schritte doch aufgeschrieben, so wie du deine Formeln. Und: der TE kannte das und will es nicht. Sind wir dabei, ein Problem zu erschaffen, wo es nicht nottut..? Genau das ist das, was ich meine... Schade.
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
#4
Ging mehr um die WF-Nummer.

Manche 70j. wie GM lernen noch begeistert Neues. Andere bleiben gern bei dem, was sie schon können.

Übrigens: Ich stehe mit "Konstruktionsmakros" völlig allein auf weiter Flur. Da geht es PQ viel besser.
Antworten Top
#5
Ich stimme LCohen völlig zu: 'verwende PQ' oder 'das kan PQ' ist nicht hilfrecih.

In VBA

Code:
Sub M_snb()
  Application.DisplayAlerts = False

  with Sheet1
    .Columns(2).Insert
    .Columns(1).TextToColumns , , , , 0, 0, 0, 0, -1, "/"
    .Cells(1).CurrentRegion.Offset(, 1).Copy .Cells(Rows.Count, 1).End(xlUp).Offset(1)
    .UsedRange.Columns(2).Offset(.Columns(3).SpecialCells(2).Count).Copy .Cells(Rows.Count, 3).End(xlUp).Offset(1)
    .Columns(2).Delete
  end with
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#6
(06.05.2019, 11:50)snb schrieb: Ich stimme LCohen völlig zu: 'verwende PQ' oder 'das kan PQ' ist nicht hilfrecih...
Hier wurde explizit beschrieben, was und wie es zu tun ist. Ich komme ohne Text - dein VBA code musste ja geschrieben werden - aus mit zwei Klicks. Man muss es nicht mögen (vor allem wenn man hier nur oberflächlich irgendetwas populistisch "abschreibt") Dann kann man aber auch einfach die Finger von der Tastatur lassen. Der TE will es zudem sowieso nicht. Apropos hilfreich: Die Autokorrektur (T9) kann man auch ausschalten... kan manchmal hilfrecih sein... (^_-)
Noch mehr muss man zu dem Thema auch nicht schreiben. Ich bin raus.
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
#7
Hier mein erstes PQ-Konstruktionsmakro. 

Was bedeutet Konstruktionsmakro? VBA wird nur dafür verwendet, eine VBA-lose Datei, hier mit einem PQ, zu erstellen. Es wird zunächst mal eine neue Datei mit neuen Testdaten erstellt, also eine "Rundum-Sorglos-Lösung": Auch die Testdaten sind schon im Makro.
  • a) VBA nimmt einem händische Arbeit ab; und dann
  • b) ist ein Konstruktionsmakro nicht 8 KB groß, wie eine leere xlDatei, sondern meist 1 KB oder weniger. Und man
  • c) benötigt keine Anhänge, da man den sich mit dem Code eben selbst erstellt. Somit ist der CODE unkaputtbar im Forum-Textteil selbst, und kann nicht wie die Dateien in Office-Lösung bis 2014 verloren gehen. Und 
  • d) lässt einen der Code verstehen, was PQ alles einstellt.
Ich bin noch völlig unbeholfen darin, es hübscher und kürzer zu machen, da ich mich mit PQ erst vertraut machen muss : 
  • vor allem die lange Anweisung "Queries.Add" richtig aufzuteilen und umzubrechen; 
  • sogar an das .Select traue ich mich hier noch nicht ran
  • beim "Listobjects.Add" gibt es sicherlich wie immer in VBA weglassbare Definitionen.
___________________________________________________________________________________________
Sub EinPQKonstruktionsmakro(): Workbooks.Add xlWorksheet
[A1:A4] = WorksheetFunction.Transpose(Split("A 123/4 '5/6 '7/89"))
'--- Bis hier ist die Test-Datei erstellt. Ab jetzt nur noch PQ! --- 
ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$1:$A$4"), , xlYes).Name = "Tabelle1"
Range("Tabelle1[[#All],[A]]").Select
'--- Beim Kopieren folgender langer Code-Zeile müssen vermutlich harte Umbrüche (außer "& _") weg! --- 
ActiveWorkbook.Queries.Add Name:="Tabelle1", _
Formula:="let" & Chr(13) & "" & Chr(10) & "    Quelle = Excel.CurrentWorkbook(){[Name=""Tabelle1""]}[Content]," & Chr(13) & "" & Chr(10) & "    #""Geänderter Typ"" = Table.TransformColumnTypes(Quelle,{{""A"", type text}})," & Chr(13) & "" & Chr(10) & "    #""Spalte nach Trennzeichen teilen"" = Table.SplitColumn(#""Geänderter Typ"", ""A"", Splitter.SplitTextByDelimiter(""/"", QuoteStyle.Csv), {""A.1"", ""A.2""})," & Chr(13) & "" & Chr(10) & "    #""Geänderter Typ1"" = Table.TransformCol" & _
        "umnTypes(#""Spalte nach Trennzeichen teilen"",{{""A.1"", Int64.Type}, {""A.2"", Int64.Type}})" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & "    #""Geänderter Typ1"""
'--- ... wäre schön, wenn das noch strukturiert werden könnte. --- 
ActiveWorkbook.Worksheets.Add
    With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
        "OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=Tabelle1;Extended Properties=""""" _
        , Destination:=Range("$A$1")).QueryTable
        .CommandType = xlCmdSql
        .CommandText = Array("SELECT * FROM [Tabelle1]")
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .PreserveColumnInfo = True
        .ListObject.DisplayName = "Tabelle1_2"
        .Refresh BackgroundQuery:=False
    End With
End Sub

möglicherweise so, oder so ähnlich, etwas strukturierter:

r = Chr(13) & "" & Chr(10)
ActiveWorkbook.Queries.Add Name:="Tabelle1", Formula:="let" & r & _
"    Quelle = Excel.CurrentWorkbook(){[Name=""Tabelle1""]}[Content]," & r & _
"    #""Geänderter Typ"" = Table.TransformColumnTypes(Quelle,{{""A"", type text}})," & r & _
"    #""Spalte n. Trennz. teilen"" = Table.SplitColumn(#""Geänderter Typ"", ""A"", Splitter.SplitTextByDelimiter(""/"", QuoteStyle.Csv), {""A.1"", ""A.2""})," & r & _
"    #""Geänd. Typ1"" = Table.TransformColumnTypes(#""Spalte n. Trennz. teilen"",{{""A.1"", Int64.Type}, {""A.2"", Int64.Type}})" & r & "in" & r & "    #""Geänd. Typ1"""
Antworten Top
#8
Ich gebe zu ich habe das mal wieder unterschätzt. Das  Wort "Konstruktionsmakro" kannte ich nicht und kenne ich nicht. VBA kann ich gar nicht. Ich hätte es einfach bei meinem Vorschlag belassen sollen. Das mache ich auch jetzt, weil ich auch gar nicht weiß, wozu das gut sein soll. Ich will das aber auch gar nicht wissen. Ich mache das auch nicht schlecht. Ich bin einfach nur raus.

P.S.: Ich habe mit Absicht sooft wie möglich ich geschrieben...
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
#9
Konstruktionsmakros (meine Wortschöpfung) ergeben heute kaum Sinn.

Sie sind jedoch die einzige Möglichkeit, geballtes Expertenwissen (z.B. 1000 verschiedene "Dateien" mit oder ohne Makros) in einer Datei von weniger als 1 MB zu verstauen, da der xlsx.-Overhead von 8 KB nur einmal statt 1000mal anfällt.

Braucht heute keiner mehr, aber es wird mich intellektuell bis zu meinem Ableben reizen. Nur mich! Andere nicht! Ich fahre ja auch nur Dreizylinder statt SUV. Bzw.: Ein Fahrrad würde mir auch reichen. Ohne Elektro. Jedem seine persönliche Meise Smile

Übrigens: Ich kann VBA eigentlich auch nicht. Ich habe mir nur angeschaut, was aufgezeichnet wird und getestet, welche Defaults mit aufgezeichnet werden (damit man die Sprache versteht, danke, MS!). So dass man die Defaults dann weglassen kann.
Antworten Top
#10
(06.05.2019, 15:30)LCohen schrieb: ....Jedem seine persönliche Meise Smile
Das ist für mich persönlich hier ein schöner Abschluss, obwohl es mal wieder geschafft wurde ein dunkles Tuch über PQ zu werfen. Aber egal. Es wird wärmer draußen...
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


Gehe zu:


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