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.

Werte zwischen zwei Werten
#11
Halllo Uwe,
klappt wie gewünscht. Darf ich noch fragen warum es keinen Dim Befehl für CStr(i) geben muss?

Gruß
Marcus und einen schönen Abend!

Wissen ist Macht - es ist aber nicht schlimm nicht alles zu wissen.
Man muss nicht alles wissen - man muss nur wissen wo es steht, oder wo man Hilfe bekommt.
Antworten Top
#12
Hallo,
Noch einfacher klappt es, wenn die Zahlen in 2 Zellen aufgelistet werden:

Zitat:Tabelle1

ABC
35115/6/7/8/9/10/11

Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8
Zitat:
Sub zahlen_zwischen_1()
Dim X As Variant
Dim Y As Variant
Dim I As Variant
Dim Text As String
X = Range("A3")
Y = Range("B3")
    For I = X To Y Step 1
        If I <> Y Then
            Text = Text & I & "/"
        Else
            Text = Text & I
        End If
    Next
    Range("C3") = Text
End Sub

Gruß
Marcus

Wissen ist Macht - es ist aber nicht schlimm nicht alles zu wissen.
Man muss nicht alles wissen - man muss nur wissen wo es steht, oder wo man Hilfe bekommt.
Antworten Top
#13
Hallo, nur am Rande sei erwähnt, dass das freilich auch mit PQ lösbar ist... Also auch für Versionen ab XL2013 - TEXTVERKETTEN() geht ja erst ab ... ohne VBA - m.E. einziger Nachteil man muss aktualisieren...

In einer Zelle steht die Spanne z.B. 45-67 (diese Zelle nenne ich "spanne") lade sie nach Power Query und dann (sieht schlimmer aus als es ist - man braucht nix zu programmieren, der Code wird durch Klicks generiert) ..:

PHP-Code:
let
    Quelle 
Excel.CurrentWorkbook(){[Name="spanne"]}[Content],
    #"Spalte nach Trennzeichen teilen" = Table.SplitColumn(Quelle, "Column1", Splitter.SplitTextByDelimiter("-", QuoteStyle.Csv), {"Column1.1", "Column1.2"}),
    #"Geänderter Typ" = Table.TransformColumnTypes(#"Spalte nach Trennzeichen teilen",{{"Column1.1", Int64.Type}, {"Column1.2", Int64.Type}}),
    #"Umbenannte Spalten" = Table.RenameColumns(#"Geänderter Typ",{{"Column1.1", "Start"}, {"Column1.2", "Stop"}}),
    #"Entfernte Spalten" = Table.RemoveColumns(#"Umbenannte Spalten",{"Stop"}),
    Start #"Entfernte Spalten"{0}[Start]
in
    Start 





PHP-Code:
let
    Quelle 
Excel.CurrentWorkbook(){[Name="spanne"]}[Content],
    #"Spalte nach Trennzeichen teilen" = Table.SplitColumn(Quelle, "Column1", Splitter.SplitTextByDelimiter("-", QuoteStyle.Csv), {"Column1.1", "Column1.2"}),
    #"Geänderter Typ" = Table.TransformColumnTypes(#"Spalte nach Trennzeichen teilen",{{"Column1.1", Int64.Type}, {"Column1.2", Int64.Type}}),
    #"Umbenannte Spalten" = Table.RenameColumns(#"Geänderter Typ",{{"Column1.1", "Start"}, {"Column1.2", "Stop"}}),
    #"Entfernte Spalten" = Table.RemoveColumns(#"Umbenannte Spalten",{"Start"}),
    Stop #"Entfernte Spalten"{0}[Stop]
in
    Stop 


PHP-Code:
Quelle = {start..stop},
    #"In Tabelle konvertiert" = Table.FromList(Quelle, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    #"Umbenannte Spalten" = Table.RenameColumns(#"In Tabelle konvertiert",{{"Column1", "werte"}}),
    #"Hinzugefügte benutzerdefinierte Spalte" = Table.AddColumn(#"Umbenannte Spalten", "Benutzerdefiniert", each 1),
    #"Gruppierte Zeilen" = Table.Group(#"Hinzugefügte benutzerdefinierte Spalte", {"Benutzerdefiniert"}, {{"Anzahl", each _ [werte]}}),
    #"Extrahierte Werte" = Table.TransformColumns(#"Gruppierte Zeilen", {"Anzahl", each Text.Combine(List.Transform(_, Text.From), ", "), type text}),
    #"Entfernte Spalten" = Table.RemoveColumns(#"Extrahierte Werte",{"Benutzerdefiniert"}),
    #"Umbenannte Spalten1" = Table.RenameColumns(#"Entfernte Spalten",{{"Anzahl", "Ergebnis"}})
in
    
#"Umbenannte Spalten1" 

Arbeitsblatt mit dem Namen 'Tabelle1'
AB
245-6745, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67
3
4Ergebnis
545-6745, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67

ZelleFormel
B2=TEXTVERKETTEN(", ";;ZEILE(INDIREKT(WECHSELN(A2;"-";":"))))
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg



.xlsx   20200107_TEXTVERKETTEN_PQ.xlsx (Größe: 18,82 KB / Downloads: 3)
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
#14
Erst mal großes Lob für das Posten von M-Code, Jockel.

Verstehen kann man den Code aber kaum ;), obwohl Du ihn vermutlich sogar hübsch gemacht hast, damit man ihn besser lesen kann.

Der Preis für die eierlegende Wollmilchsau ist wohl, dass das Vorgehen so sehr anders ist, als jeder gewöhnt ist.

SQL liest sich da ja noch relativ kommod.

Aus

schneide gekochte Kartoffel
piekse Gabel hinein
tunke in Soße
führe zum Mund

wird so etwas wie

Nenne die gekochte Kartoffel Schnittgut
Nenne die Soße Pampe
Packe Schnittgut in Pampe
Wähle aus zwischen Anheben, Durchstechen, Ansaugen, Wegbeamen
Ziehe eine Strecke Teller - Mund auf
Lasse Schnittgut fallen, sobald Streckenberührungstest Richtung nach unten Mund positiv

was aber fast noch lesbar dagegen ist.
Antworten Top
#15
Hallo,

@LCohen: mein Excel-Insider mit derselben Version hat keine Probleme. Allerdings habe ich jetzt kein
Surface sondern die Dateien auf einem Laptop mit Win 10 geöffnet.

Gruß
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) :: 2011-2019 & 2020-2022 :: 10 Awards
https://de.excel-translator.de/translator :: Online Excel-Formel-Übersetzer :: Funktionen :: Fehlerwerte :: Argumente :: Tabellenbezeichner
Antworten Top
#16
Oder ein UDF:

PHP-Code:
Function F_snb(c00)
   F_snb Join(Evaluate("transpose(row(" Replace(c00"-"":") & "))"), ", ")
End Function 

In Zelle B2:

PHP-Code:
=F_snb(A2
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
[-] Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:
  • Jockel
Antworten Top
#17
(08.01.2020, 07:18)LCohen schrieb: Erst mal großes Lob für das Posten von M-Code, Jockel.

Verstehen kann man den Code aber kaum ;) ...
...

Hallo, deswegen habe ich ja auch die Datei mitgeschickt. Da kann man ja den Editor öffnen und die Schritte nachvollziehen. Ist ja auch nur für die, die es interessiert. Ich weiß selbst, dass PQ hier sicher nicht die erste Wahl ist, wollte aber aufzeigen, dass es geht. Vorallem wenn man TEXTVERKETTEN() (noch) nicht zur Verfügung hat und kein VBA benutzen darf (oder kann - wie ich).
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
#18
Hallo Jörg,
Für Leute die sich gar nicht mit PQ auskennen ..., so wie ich es bin, da braucht man schon etwas mehr Infos.

Gruß
Marcus


Angehängte Dateien
.xlsx   Kopie von 20200107_TEXTVERKETTEN_PQ.xlsx (Größe: 19,31 KB / Downloads: 4)

Wissen ist Macht - es ist aber nicht schlimm nicht alles zu wissen.
Man muss nicht alles wissen - man muss nur wissen wo es steht, oder wo man Hilfe bekommt.
Antworten Top
#19
Hi

natürlich gibt es auch bei PowerQuery mehrere Lösungen. Für die die es interessiert.

Code:
let
    Quelle = Excel.CurrentWorkbook(){[Name="spanne"]}[Content],
    #"Spalte nach Trennzeichen teilen" = Table.SplitColumn(Quelle, "Column1", Splitter.SplitTextByDelimiter("-", QuoteStyle.Csv), {"Start", "Stop"}),
    #"Geänderter Typ" = Table.TransformColumnTypes(#"Spalte nach Trennzeichen teilen",{{"Start", Int64.Type}, {"Stop", Int64.Type}}),
    #"Hinzugefügte benutzerdefinierte Spalte" = Table.AddColumn(#"Geänderter Typ", "Alle", each List.Numbers([Start],[Stop]-[Start]+1)),
    #"Extrahierte Werte" = Table.TransformColumns(#"Hinzugefügte benutzerdefinierte Spalte", {"Alle", each Text.Combine(List.Transform(_, Text.From), "; "), type text}),
    #"Entfernte Spalten" = Table.RemoveColumns(#"Extrahierte Werte",{"Start", "Stop"})
in
    #"Entfernte Spalten"


Gruß Elex
[-] Folgende(r) 1 Nutzer sagt Danke an Elex für diesen Beitrag:
  • Jockel
Antworten Top
#20
Hallo Marcus, warum schickst du selbe Datei ..? Wenn du die Einfabezelle veränderst, musst du in die Ausgabezelle oder Tabelle uns wie schon schrieb... ... Nachteil man muss aktualisieren

(08.01.2020, 16:50)Elex schrieb: Hi

natürlich gibt es auch bei PowerQuery mehrere Lösungen. Für die die es interessiert.

Gruß Elex

Hallo, sehr schöne Lösung... :28: :43: :28:
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