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.

Format trennen und in Tabelle einfügen
#1
Hi zusammen, ich habe über 3000 Zeilen in diesem Format: 
1240: {count: 12345, size: 12345678}
1241: {count: 123, size: 1234567890}
1242: {count: 1234567, size: 123456780}
+1 ..........

soll in folgende Tabelle:
[img]
Dateiupload bitte im Forum! So geht es: Klick mich!
]

   

Das count soll in F und size G.
Wie mache ich das? Danke für die Hilfe!!
Antworten Top
#2
Hi Giani,

Menü Daten --> Daten abrufen --> Aus Datei --> JSON
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben.
Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.

Ciao, Ralf

Antworten Top
#3
Hallo Ralf, leider wirft er das JSON genau so in eine Column. Wie kann ich die einzelnen Spalten voneinander trennen? Danke für die Hilfe!
Antworten Top
#4
B1: =WECHSELN(WECHSELN(WECHSELN(SPALTENWAHL(TEXTTEILEN(A1;" ");{1.3.5});":";);",";);"}";)

Ich konnte nur raten, was Du erhalten möchtest, und werde Dir aufgrund unzureichender Fragevorbereitung weiter NICHT antworten. Die Zumutung beginnt schon mit Deiner Excelversion. Ich informiere mich nicht, was 2201 sein soll.
Antworten Top
#5
Ich habe alles beschrieben und einen Screenshot hochgeladen. Ich nutze natürlich die aktuellste Version von Excel. 2201? Das wurde nirgends erwähnt, aber dennoch danke für deine Hilfe, leider hat dies nicht funktioniert.
Antworten Top
#6
Hallo,


für F
PHP-Code:
=TEXTVOR(TEXTNACH(A1;":";2);",";1
und G

PHP-Code:
=TEXTVOR(TEXTNACH(A1;":";-1;1;0);"}";1
Gastlich
Antworten Top
#7
(15.12.2022, 17:12)Giani schrieb: Ich nutze natürlich die aktuellste Version von Excel. 2201? Das wurde nirgends erwähnt, aber dennoch danke für deine Hilfe, leider hat dies nicht funktioniert.

   
Antworten Top
#8
Den Datenbereich als Tabelle formatieren.

Im PQ Editor diesen Code einfügen:

Code:
let
    Quelle = Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content],
    Nr = Table.AddColumn(Quelle, "Nummer", each Text.Trim(Text.Split([Spalte1],":"){0} )),  
    Anzahl = Table.AddColumn(Nr, "Count", each Text.Trim(Text.Replace(Text.Split([Spalte1],":"){2},", size","" ))),
    Size = Table.AddColumn(Anzahl, "Size", each Text.Trim(Text.Replace( Text.Split([Spalte1],":"){3},"}","")))
in
    Size
Zitat:2201? Das wurde nirgends erwähnt
...doch doch... schau mal nach rechts oben in Deinen Posts. Da steht "Versionen".... da hast Du Dich in Deinen Einstellungen wohl vertippt...


Angehängte Dateien
.xlsx   ZellinhaltAlsListeSplitten.xlsx (Größe: 119,21 KB / Downloads: 1)
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben.
Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.

Ciao, Ralf

Antworten Top
#9
Hallo,

per VBA ginge auch sowas:

Code:
Sub Aufbereiten()
  Application.DisplayAlerts = False
  With Tabelle1.Range("H:H")
    .Replace What:=" {count: ", Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, _
        SearchFormat:=False, ReplaceFormat:=False
    .Replace What:=", size: ", Replacement:=":"
    .Replace What:="}", Replacement:=""
    .TextToColumns Destination:=.Cells(1).Offset(, -2), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar:=":"
  End With
  Application.DisplayAlerts = True
End Sub

Gruß Uwe
Antworten Top
#10
Moin,

mit Powerquery lässt sich der JSON-String wie bereits erwähnt sehr komfortabel umwandeln. Die Datensatz-ID (oder was immer das ist) kann dabei zunächst in ein zusatzfeld geschrieben werden:
Code:
let
    Quelle = Excel.CurrentWorkbook(){[Name="Tabelle2"]}[Content],
    #"Geänderter Typ" = Table.TransformColumnTypes(Quelle,{{"input", type text}}),
    #"Spalte nach Trennzeichen teilen" = Table.SplitColumn(#"Geänderter Typ", "input", Splitter.SplitTextByEachDelimiter({":"}, QuoteStyle.Csv, false), {"input.1", "input.2"}),
    #"Geänderter Typ1" = Table.TransformColumnTypes(#"Spalte nach Trennzeichen teilen",{{"input.1", Int64.Type}, {"input.2", type text}}),
    #"Analysierte JSON" = Table.TransformColumns(#"Geänderter Typ1",{{"input.2", Json.Document}}),
    #"Erweiterte input.2" = Table.ExpandRecordColumn(#"Analysierte JSON", "input.2", {"count", "size"}, {"input.2.count", "input.2.size"})
in
    #"Erweiterte input.2"


Vorgehen:
1. Aus den Quelldaten eine Tabelle erstellen (Strg+T)
2. Daten>Abrufen und Transformieren>Aus Tabelle
3. im PQ-Editor die Datenspalte markieren, Rechte Maustaste auf Zeilenkopf -> Spalte teilen -> Nach Trennzeichen -> Doppelpunkt -> Beim äußerst linken Auftreten
4. Spalte mit dem verbleibenden JSON-String markieren, Rechte Maustaste -> Transformieren ->JSON
5. Auf den Doppelpfeil in der Überschrift des ehemaligen JSON-Strings klicken und so alle Records expandieren
6. Schließen & Laden, fertig.

Viele Grüße
derHöpp
Antworten Top


Gehe zu:


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