Umsortierung bzw. Zuordnung verändern (Excel)
Hallo Leute,
Excel ist nicht sooo mein Ding, wenn es um Matrix-Berechnungen geht.
Quelldatei ist eine vorgegebene CSV-Datei.
Vielleicht mag mir da jemand mal nen Schubs geben wollen
(Sicherlich kommt jetzt vielleicht der Hinweis auf Programmieren o.ä. Sorry, das ist nicht so meins und auch hier nicht meine Aufgabe.)
Aufgabenstellung:
Zuordnung Artikel zu Lagerort genau umkehren.
Dateiaufbau der CSV:
<Artikelbezeichnung>;<Artikelkurznummer>;<Lagerort1>;<Lagerort2>;<Lagerort3>;<Lagerort4>;<Lagerort_n_>;
Ich brauche es genau umgekehrt:
<Lagerort1>;<Artikelbezeichnung>;<Artikelkurznummer>
<Lagerort2>;<Artikelbezeichnung>;<Artikelkurznummer>
<Lagerort3>;<Artikelbezeichnung>;<Artikelkurznummer>
<Lagerort4>;<Artikelbezeichnung>;<Artikelkurznummer>
<Lagerort_n_>;<Artikelbezeichnung>;<Artikelkurznummer>
Kollege meinte was mit Excel umsetzen zu können mit SVERWEIS oder INDEX oder VERGLEICH.
Hat aber nicht funktioniert.
Anbei eine Testdatei, die so als Vorgabe ankommt.
Vielen Dank für Eure Tipps und
Viele Grüße mit rauchendem Hirn
Jörg
Excel ist nicht sooo mein Ding, wenn es um Matrix-Berechnungen geht.
Quelldatei ist eine vorgegebene CSV-Datei.
Vielleicht mag mir da jemand mal nen Schubs geben wollen
(Sicherlich kommt jetzt vielleicht der Hinweis auf Programmieren o.ä. Sorry, das ist nicht so meins und auch hier nicht meine Aufgabe.)
Aufgabenstellung:
Zuordnung Artikel zu Lagerort genau umkehren.
Dateiaufbau der CSV:
<Artikelbezeichnung>;<Artikelkurznummer>;<Lagerort1>;<Lagerort2>;<Lagerort3>;<Lagerort4>;<Lagerort_n_>;
Ich brauche es genau umgekehrt:
<Lagerort1>;<Artikelbezeichnung>;<Artikelkurznummer>
<Lagerort2>;<Artikelbezeichnung>;<Artikelkurznummer>
<Lagerort3>;<Artikelbezeichnung>;<Artikelkurznummer>
<Lagerort4>;<Artikelbezeichnung>;<Artikelkurznummer>
<Lagerort_n_>;<Artikelbezeichnung>;<Artikelkurznummer>
Kollege meinte was mit Excel umsetzen zu können mit SVERWEIS oder INDEX oder VERGLEICH.
Hat aber nicht funktioniert.
Anbei eine Testdatei, die so als Vorgabe ankommt.
Vielen Dank für Eure Tipps und
Viele Grüße mit rauchendem Hirn
Jörg
# <product-name>;<product-piece-id>;[<used-storage-id>;]+
#
#
#
Knopf_Z;73;11136;11179;
Knopf_Z;102;11421;11293;
Knopf_Z;119;11382;11243;
Knopf_Z;31;11201;11392;
Knopf_Z;60;11357;11181;
Knopf_Z;121;11265;11418;
Knopf_Z;59;11439;11339;
Knopf_Z;0;11202;11435;
Knopf_Z;105;11386;11279;
Knopf_Z;13;11141;11188;
Knopf_Z;26;11342;11145;
Knopf_Z;50;11312;
Knopf_Z;98;11442;11296;11362;
Knopf_Z;4;11441;11346;
Knopf_Z;46;11277;11283;10829;11288;11375;
Knopf_Z;64;11266;11305;
Knopf_Z;11;11372;11352;
Knopf_Z;118;11173;11426;
Knopf_Z;95;11149;11298;11128;
Knopf_Z;113;11356;11373;
Knopf_Z;144;11273;11425;
Knopf_Z;5;11167;11272;11321;
Knopf_Z;136;11251;11129;
Knopf_Z;23;11389;11308;
Schraube_RVZ;266;11122;469;10967;
Schraube_RVZ;257;10968;4750;11091;
Schraube_RVZ;258;11092;2404;6473;11093;
Schraube_RVZ;281;11094;1034;10989;
Schraube_RVZ;282;10990;7121;3590;7122;5194;
Schraube_RVZ;320;9084;4309;1039;
Schraube_RVZ;269;9545;6107;1711;7193;4737;128;6477;6478;11063;
Schraube_RVZ;247;11064;6480;6482;11057;
Schraube_RVZ;248;11058;6484;482;4517;11083;
Schraube_RVZ;162;11084;6488;6490;1205;7287;704;4810;6153;2975;2976;7947;3200;
Schraube_RVZ;315;9574;6502;4027;300;
Schraube_RVZ;259;10966;
Schraube_RVZ;307;10965;13092;13091;2938;2937;2936;6104;949;11586;11585;1524;5259;15189;15188;10582;1004;4670;15261;
Schraube_RVZ;252;15260;15259;11446;11445;11444;653;5918;518;6346;4180;675;6839;3236;7675;3235;7504;6616;205;10980;
Schraube_RVZ;211;
Schraube_RVZ;212;10979;4319;4042;9907;
Schraube_RVZ;205;9906;5393;10153;
Schraube_RVZ;184;10152;11114;
Schraube_RVZ;185;11113;4143;118;9720;
Schraube_RVZ;274;9719;5467;4805;4558;1324;6529;973;10978;
Schraube_RVZ;166;10977;2126;6527;4132;579;6659;1300;4695;1710;8845;8846;10985;10986;5830;4289;340;4945;11111;11112;219;6791;
Schraube_RVZ;301;11001;444;6336;
Schraube_RVZ;214;11017;10984;
Schraube_RVZ;168;11060;2670;7174;8822;1007;5684;1121;4920;5992;1031;5833;7420;1915;7798;743;6525;7048;1646;7412;7742;1503;7852;589;10352;10354;10593;5740;4510;821;7257;3668;7258;1548;8843;7967;8846;10985;10986;5830;4289;340;4945;11111;11112;219;6791;
Schraube_RVZ;177;4721;11045;
Schraube_RVZ;313;11046;5780;6016;6515;6576;9300;
Schraube_RVZ;167;11047;6375;1284;1283;1282;5528;9921;2135;5113;4065;143;4965;10988;10987;1599;6899;9528;9529;4094;10974;10973;4403;5527;58;10992;10991;5028;446;8884;8883;5035;1977;6631;2001;7089;2121;5100;10302;10304;6882;9203;9204;6711;1999;7846;11059;11060;2670;7174;8822;1007;5684;1121;4920;5992;1031;5833;7420;1915;7798;743;6525;7048;1646;7412;7742;1503;7852;589;10352;10354;10593;5740;4510;821;7257;3668;7258;1548;8843;7967;8846;10985;10986;5830;4289;340;4945;11111;11112;219;6791;
Schraube_RVZ;163;6792;4040;278;4652;1400;4754;1661;6442;9838;
Schraube_RVZ;186;10535;6555;478;6557;1176;10379;
Schraube_RVZ;297;11103;7786;6505;1776;6507;571;4223;5373;6875;11014;
Schraube_RVZ;201;11013;7382;2269;11016;
Schraube_RVZ;202;11015;9562;
Schraube_RVZ;240;1522;4972;5215;5419;5555;87;10433;
Schraube_RVZ;151;10432;6753;464;9366;9364;1602;
Schraube_ABC;316;1602;9364;9366;464;6753;10432;10433;87;5555;5419;5215;4972;1522;9562;11015;11016;2269;7382;11013;11014;6875;5373;4223;571;6507;1776;6505;7786;11103;11104;7073;7077;11041;11042;6050;2357;7080;7081;6353;9003;2235;2234;9116;10589;75;4080;618;617;6039;1813;6092;810;11102;11101;5156;7330;10972;10971;175;6591;4478;10976;11100;11099;5722;9805;9804;1106;5298;7645;2496;7386;5323;1634;9009;9010;33;34;4268;1076;
Schraube_ABC;172;6272;1442;
Schraube_ABC;170;5638;2390;2391;2392;5706;5707;654;4241;6589;376;4933;7592;10199;10198;5553;2046;5858;6237;1760;5231;2204;5847;9658;9657;10011;10010;5406;223;7370;10213;2306;5325;805;4292;4296;7266;6855;10225;10224;4401;7229;7228;348;347;4837;5396;1880;5611;43;9412;8237;9413;
Schraube_ABC;173;240;4172;4171;8816;199;9838;6442;1661;4754;1400;4652;278;4040;6792;6791;219;11112;11111;4945;340;4289;5830;10986;10985;8846;7967;8843;1548;7258;3668;7257;821;4510;5740;10593;10354;10352;589;7852;1503;7742;7412;1646;7048;6525;743;7798;1915;7420;5833;1031;5992;4920;1121;5684;1007;8822;7174;2670;11060;11059;7846;1999;6711;9204;9203;6882;10304;10302;
Schraube_ABC;174;3200;7947;2976;2975;6153;4810;704;7287;1205;6490;6488;11084;11083;4517;482;6484;11058;11057;6482;6480;11064;11063;6478;6477;128;4737;7193;1711;6107;9545;1039;4309;9084;1508;6357;77;7611;4437;877;11119;11120;2458;7722;2862;6986;4133;583;4271;6958;10550;10551;843;844;845;7099;2233;2232;5278;5715;4314;660;4094;10974;10973;4403;5527;58;10992;10991;5028;446;8884;8883;5035;1977;6631;2001;7089;2121;5100;
Schraube_ABC;175;10302;10304;6882;9203;9204;6711;1999;7846;11059;11060;2670;7174;8822;1007;5684;1121;4920;5992;1031;5833;7420;1915;7798;743;6525;7048;1646;7412;7742;1503;7852;589;10352;10354;10593;5740;4510;821;7257;3668;7258;1548;8843;7967;8846;10985;10986;5830;4289;340;4945;11111;11112;219;6791;
Schraube_ABC;317;6792;4040;278;4652;1400;4754;1661;6442;9838;199;8816;4171;4172;240;
Schraube_ABC;171;9413;8237;9412;43;5611;1880;5396;4837;347;348;7228;7229;4401;10224;10225;6855;7266;4296;4292;805;5325;2306;10213;7370;223;5406;10010;10011;9657;9658;5847;2204;5231;1760;6237;5858;2046;5553;10198;10199;7592;4933;376;6589;4241;654;5707;5706;2392;2391;2390;5638;
Feder_A;322;1442;6272;1076;4268;34;33;9010;9008;4525;92;4944;1523;5761;2691;6818;6817;6217;10131;8576;10128;1500;4756;7778;7603;496;495;10586;10585;5140;2036;6456;9137;5238;7151;6232;4957;11048;11047;6375;1284;1283;1282;5528;9921;2135;5113;4065;143;4965;10988;10987;1599;6899;9528;9529;4094;10974;10973;4403;5527;58;10992;10991;5028;446;8884;8883;5035;1977;6631;2001;7089;2121;5100;
Feder_A;176;1463;11020;11019;295;4063;6605;4182;10996;10995;10994;10993;6603;1369;4793;6925;6693;10079;10078;4013;11250;
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 913409508
Url: https://administrator.de/contentid/913409508
Ausgedruckt am: 04.11.2024 um 18:11 Uhr
2 Kommentare
Neuester Kommentar
Servus,
konvertiere dir die CSV doch gleich mit Powershell passend in das Zielformat, die kannst du dann direkt in dein Excel importieren :
Oder wenn du stattdessen direkt in Excel selbst mit VBA arbeiten willst. Kommentare siehe Code.
Grüße Uwe
konvertiere dir die CSV doch gleich mit Powershell passend in das Zielformat, die kannst du dann direkt in dein Excel importieren :
# Eingabe CSV Datei
$in = 'D:\data_in.csv'
# Ausgabe CSV Datei
$out = 'D:\data_out.csv'
gc $in | ?{$_ -notmatch '^\s*#'} | %{
$arr = $_.split(';')
$arr | select -skip 2 | ?{$_.trim() -ne ''} | %{[pscustomobject]@{Lagerort = $_;Artikelbezeichnung=$arr;Artikelkurznummer=$arr[1]}}
} | export-csv $out -Delimiter ";" -NoType -Encoding UTF8
Oder wenn du stattdessen direkt in Excel selbst mit VBA arbeiten willst. Kommentare siehe Code.
Sub ImportCSVWithQueryTable()
' Variablen
Dim CSVFILE As String, cell As Range, c As Integer, lastLagerCol As Integer, rngTarget As Range, wsTarget As Worksheet
' Pfad zur CSV-Datei
CSVFILE = "D:\data_in.csv"
' Ziel Worksheet
Set wsTarget = Sheets(1)
' Startausgabe-Zelle
Set rngTarget = wsTarget.Range("A2")
Application.DisplayAlerts = False
' Spalten-Überschriften schreiben
With wsTarget.Range("A1:C1")
.Value = Array("Lagerort", "Artikelbezeichnung", "Artikelkurznummer")
.Font.Bold = True
End With
' Temporäres Import-Sheet erstellen
With Sheets.Add(After:=Sheets(Sheets.Count))
' Import CSV as QueryTable
With .QueryTables.Add(Connection:="TEXT;" & CSVFILE, Destination:=.Range("$A$1"))
.Name = "test"
.AdjustColumnWidth = True
.TextFilePlatform = 1252
.TextFileStartRow = 5
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileSemicolonDelimiter = True
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
.Delete
End With
' für jede Zeile der CSV
For Each cell In .Range("A1:A" & .Cells(Rows.Count, "A").End(xlUp).Row)
' ermittle letzte belegte Lagerzelle
lastLagerCol = .Cells(cell.Row, Columns.Count).End(xlToLeft).Column
If lastLagerCol >= 3 Then
' für jeden Lagerort ...
For c = 3 To lastLagerCol
' wenn Lagerort nicht leer ist
If .Cells(cell.Row, c) <> "" Then
' schreibe Daten in Zielrange
rngTarget.Resize(1, 3).Value = Array(.Cells(cell.Row, c), cell.Value, cell.Offset(0, 1).Value)
' Zielrange 1 nach unten versetzen
Set rngTarget = rngTarget.Offset(1, 0)
End If
Next
End If
Next
Application.DisplayAlerts = True
' temporäres sheet löschen
.Delete
End With
End Sub