Microsoft Excel

Herbers Excel/VBA-Archiv

Doppelte Zahlen in einer Zelle entfernen

Betrifft: Doppelte Zahlen in einer Zelle entfernen von: Rudolf
Geschrieben am: 27.09.2014 18:41:34

Hallo an alle, in diesem Forum. Ich habe ein Problem mit einer Zahlenkette in einer Zelle, die viele doppelte Zahlen hat.
Dabei ist jede Zahl auch noch mit einem Komma zur nächsten Zahl getrennt.
Ich möchte jetzt diese Zahlenkette auseinandernehmen und jede der doppelten zahlen dabei entfernen, so das zum Schluss eine Zahlenreihe wieder mit Kommas zwischen den Zahlen in einer Zelle sind.
Ach ja, ganz wichtig. Das ganze soll und muss ohne VBA funktionieren. Meine Frage: ist das machbar?
Danke schon mal im voraus.

  

Betrifft: AW: Doppelte Zahlen in einer Zelle entfernen von: Matze Matthias
Geschrieben am: 28.09.2014 00:34:02

Hallo Rudolph,
ohne Makro weis ich keine Lösung, eventuell die Formelspezies.

In ein Modul: 'markierte Zelle ohne doppler

Option Explicit

Sub DoppelteAusZelleWeg()
 Dim dict As Object
 Dim Zelle As Range
 Dim Werte() As String
 Dim i As Long
 Const TRKz As String = ","

 For Each Zelle In Selection
     Werte = Split(Zelle.Value, TRKz)
     Set dict = CreateObject("Scripting.Dictionary")
     For i = 0 To UBound(Werte)
         dict(Trim(Werte(i))) = 0
     Next
     Zelle.Value = Join(dict.Keys, TRKz)
 Next
 End Sub
Gruß Matze


  

Betrifft: Bitte Profi ansehen zwecks Formellösung, danke. von: Matze Matthias
Geschrieben am: 28.09.2014 00:38:36




  

Betrifft: Doppelte Zahlen in einer Zelle entfernen ohne VBA von: {Boris}
Geschrieben am: 28.09.2014 08:50:34

Hi Rudolf,

hier noch eine Formellösung.
Dein kommagetrennter Zahlenstring steht in Tabelle1!A1.
Definiere den Namen x (Strg+F3) mit Bezug auf:

=AUSWERTEN("{"&WECHSELN(Tabelle1!$A1;",";".")&"}")

Jetzt schreibe in B1:

=x

und in C1:

=WENN(ZÄHLENWENN($B1:B1;INDEX(x;SPALTEN($A:A)))+(SPALTEN($A:A)>ANZAHL2(x));"";INDEX(x; SPALTEN($A:A)))

Kopiere diese Formel soweit nach rechts, wie es maximal Zahlen in Deinem String gibt.

Jetzt in B2:

=B1

und in C2:

=WENN(C1="";B2;B2&","&C1)

und genauso weit nach rechts kopieren wie die Formel aus C1.

Am rechten Ende in Zeile 2 findest Du dann Deinen gewünschten kommagetrennten String mit den Unikaten.

VG, Boris


  

Betrifft: und eine Formellösung ganz ohne VBA ... von: neopa C (paneo)
Geschrieben am: 28.09.2014 10:35:01

Hallo Rudolf,

... der Lösungsvorschlag von Boris, erfordert in Excel 2010, dass Du die Datei als XLSM-Datei abspeichern musst, wenn Du auf die Formel wieder zurückgreifen musst.

Nachfolgende Lösungsvorschlag erfordert zwar eine weitere Hilfsspalte ist aber als XLSx-Datei abspeicherbar.

Die Formeln B1, C2 und D2 einfach nach unten ziehend kopieren. Die Formel in E1 ergibt dann die gewünschte Lösung. Die Formeln in Spalte G können alternativ zu den in Spalte B genutzt werden. Dort werden die Zahlen nur der Größe nach gelistet, was etwas einfachere Formeln erfordert.

 ABCDEFG
112,34,-765,12,45,-5,4567,12,123,345,12,-76512121212,34,-765,12,45,-5,4567,12 -765
2 343412,34  -5
3 -765-76512,34,-765  12
4 124512,34,-765,12  34
5 45-512,34,-765,12,45  45
6 -5456712,34,-765,12,45,-5  123
7 456712312,34,-765,12,45,-5,4567  345
8 1234512,34,-765,12,45,-5,4567,12  4567
9 123     
10 345     
11 12     
12 -765     
13       

Formeln der Tabelle
ZelleFormel
B1=WENNFEHLER(--LINKS(TEIL(WECHSELN(","&A$1;",";"#";ZEILE(A1)); FINDEN("#";WECHSELN(","&A$1;",";"#";ZEILE(A1)))+1;999); FINDEN(",";TEIL(WECHSELN(","&A$1;",";"#";ZEILE(A1)); FINDEN("#";WECHSELN(","&A$1;",";"#";ZEILE(A1)))+1;999)&",")-1); "")
C1=B1
D1=B1
E1=VERWEIS(9;1/(D1:D18<>""); D:D)
G1=MIN(B1:B19)
C2{=WENN(C1="";"";INDEX(B:B;MIN(WENN(ISTNV(VERGLEICH(B$1:B$19;C$1:C1;)); ZEILE(B$1:B$19)))))}
D2=WENN(C2="";"";D1&","&B2)
G2{=WENN(MAX(G$1:G1)=MAX(B$1:B$18); "";MIN(WENN(B$1:B$18>G1;B$1:B$18)))}
Enthält Matrixformel:
Umrandende
{ } nicht miteingeben,
sondern Formel mit STRG+SHIFT+RETURN abschließen!
Matrix verstehen


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4


Gruß Werner
.. , - ...


  

Betrifft: AW: und eine Formellösung ganz ohne VBA ... von: Rudolf
Geschrieben am: 28.09.2014 15:28:51

Ein Hallo und Danke für die Super schnellen Antworten. Klasse und Danke
Leider habe ich ein --- Aber. ---
Das ist aber nur meiner Dummheit zuzuschreiben, weil ich nicht mit einer so ausführlichen Reaktion gerechnet hatte.
Also zu meine eigentlichen Problem, ich möchte mir ein Sudoku machen --- was ich zum Teil auch schon fertig habe. Ja, bis auf die Zahlenfelder die ich neben dem eigentlichen Spielfeld als Kontrollfelder noch einmal gemacht habe.
In diesem sollen dann die noch möglichen Zahlen angezeigt werden.
Wenn ich jetzt wüsste wie es schafft das so eine Excel Seite hier anzuzeigen könnte ich es Euch zeigen was ich schon gemacht habe.
Kurzbeschreibung:
Ich habe ein 9*9 Kasten als Box1 im Namenfeld gemacht.
Wobei die Box1 bei B2 beginnt. In K1 sind die möglichen Grundzahlen: 1,2,3,4,5,6,7,8,9
drunter die Formel.
' =WENN($B2="";$K$1;ERSETZEN($K$1;WENN(SUCHEN(B2;$K$1;1)=17;SUCHEN(B2;$K$1;1)-1;SUCHEN(B2;$K$1;1));2;""))
genau drunter:
' =WENN(B3="";G7;ERSETZEN(G7;WENN(SUCHEN(B3;G7;1)=15;SUCHEN(B3;G7;1)-1;SUCHEN(B3;G7;1));2;""))
usw. 7 mal weiter runter kopiert.
Egal welche Zahl ich jetzt im Bereich B2:D4 eingebe, stehen in der letzten Zeile die noch möglichen letzten Zahlen. Das gleiche habe ich dann mit Zeile 2 und Spalte 2 gemacht.
Wenn ich jetzt die Zahlen aus den letzten drei Zeilen von Box1 Zeile2 und Spalte2 zusammensetze bekomme ich natürlich die möglichen Zahlen.
' =WENN(ISTZAHL(FINDEN(F7;$G$15));WENN(ISTZAHL(FINDEN(F7;$N$15));"J";ERSETZEN(G15;F7;2;"")))
Sicher sind Euch ja die möglichkeiten des Sudokus bekannt.
Ich hoffe jetzt etwas mehr Licht ins dunkel meiner Sorgen gebracht zu haben.
Ein solches Spiel habe ich mit VBA schon vor zehn Jahren gemacht. Da ich aber seither nichts mehr mit Excel gemacht habe, habe ich eine Unmenge vergessen. Wenn ich jetzt so sehe was Ihr hier so macht -- alle Achtung -- toll.


  

Betrifft: das ist wirklich was ganz anders ... von: neopa C (paneo)
Geschrieben am: 28.09.2014 15:44:12

Hallo Rudolf,

... ohne jetzt auf Deine neu eingestellten Formeln weiter einzugehen, mit Komma getrennte Zahlen sind für Sudoku-Excel-Lösungen mE nicht sinnvoll. Hier ist ein anderes herangehen zweckmäßiger. Aber auch darauf will ich hier nicht weiter eingehen sondern nur darauf verweisen, dass es sicherlich schon viele Excel-Sudoku-Lösungen gibt. Google doch mal.

Nur noch zu Deiner konkreten Frage: "Wenn ich jetzt wüsste wie es schafft das so eine Excel Seite hier anzuzeigen könnte". Dafür gibt es mehrere (kostenfreie) Angebote. Eine davon ist: http://www.excel-jeanie-html.de/

Gruß Werner
.. , - ...




  

Betrifft: Sudoku ist auch eines der Hobbies des ... von: Luc:-?
Geschrieben am: 28.09.2014 18:43:34

…Forumsbetreibers (HWH), Rudolf;
dazu bietet er auch Freeware auf den Service-Seiten des Forums in form einer Zip-Datei an. Du musst das also nicht unbedingt noch mal erfinden… ;-)
Gruß, Luc :-?


  

Betrifft: AW: Sudoku ist auch eines der Hobbies des ... von: Rudolf
Geschrieben am: 29.09.2014 00:32:53

Ich möchte das auch nicht neu erfinden -- nein --'aber alle die, die es gibt sind verschlossen. Ich möchte aber sehr gern sehen wie es die anderen gemacht haben. Mir geht es nicht um das Spiel selber. Das gibt es echt genug. Nicht aber ohne Makro für z.B. Kingsoft was ich auf meinem Tablett habe. Viele grüße.


 

Beiträge aus den Excel-Beispielen zum Thema "Doppelte Zahlen in einer Zelle entfernen"