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.

Die Zahl in einer Zelle gibt an wie oft ein bestimmter wert in anderen....
#1
Wink 
Hallo Leute,

ich bin neu und hoffe ich mach das hier gleich richtig.

Jetzt zu meinem Problem:

Ich benötige eine Formel die aus einer Zelle (Stückzahl) andere Zellen dementsprechend genauso oft einen Wert in andere Zellen schreibt.

Bsp: in Tabelle 1 in Zelle A1 stehen die vorhandenen Stücke zb. 5 Stück. In Zelle B1 steht ein Text (Generalschlüssel). jetzt soll in Tabelle 2 in Zelle A1-A5 Generalschlüssel stehen.
        in Tabelle 1 in Zelle A2 steht jetzt wieder eine Stückzahl und in Zelle B2 wiederum ein neuer Text. Jetzt soll unter dem ersten Ergebnis (Aus A1 und B1) das neue Ergebnis stehen

Zusätzlich soll die Funktion auch in Tabelle 2 in eine bestimmte Zelle die fortlaufende Nummer eintragen.

und so weiter.

ich hoffe es war soweit verständlich.

Ich bedanke mich jetzt schon mal bei euch :)
Antworten Top
#2
Servus!

Ich habe mich mal drangesetzt und folgende Formel für Tabelle2 Spalte A gebastelt. A1 =Tabelle1!B1
Ab A2 die Matrixformel {=WENN(ZÄHLENWENN($A$1:A1;A1)<INDEX(Tabelle1!A:A;VERGLEICH(A1;Tabelle1!B:B;0));A1;INDEX(Tabelle1!B:B;SUMME(1/ZÄHLENWENN($A$1:A1;$A$1:A1))+1))}

ohne {} und mit CSE abschließen.


Liebe Grüße
Alex
Antworten Top
#3
Moin!
Ich bin mir sehr sicher, dass da mit Formeln nix zu machen ist (selbst mit den neuen dynamischen aus Excel 365 nicht).
Schließlich sind die einzelnen Blöcke unterschiedlich hoch.
(für einen Block geht das, siehe Oldiefan)

Update:
Die geänderte Formel habe ich erst jetzt gesehen.

Das ist eher etwas für VBA.
Ich bastel gleich mal was …

Gruß Ralf

Mal aus dem Handgelenk:
Modul Modul1
Option Explicit 
 
Sub Reihe() 
Dim i&, k&, l& 
l = 1 
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row 
  For k = 1 To Cells(i, 1).Value 
    Cells(l, 4) = Cells(i, 2) 
    l = l + 1 
  Next k 
Next i 
End Sub 

Ergibt
ABCD
15BlaBla
23BluppBla
32KamelleBla
4Bla
5Bla
6Blupp
7Blupp
8Blupp
9Kamelle
10Kamelle
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#4
Das ging ja richtig fix!

Vielen Dank ich werde es später gleich mal testen!

Vielen vielen Dank das ganze hat mir schon richtig Kopfschmerzen verursacht ^^
Antworten Top
#5
Hi RPP63,

ich verstehe nicht so ganz wie ich das Tool von dir einsetzen kann könntest du mir das vielleicht erklären.
Bin was die VBA angeht ziemlich schwach unterwegs.

Vielen Dank!
Antworten Top
#6
Ich hab anbei mal mein Projekt angefügt damit man versteht was ich genau benötige

Ich habe hier ein Beispiel gebracht mit (die werte sind händisch eingetragen worden zur Veranschaulichung)

Folgendes soll passieren:

Die angegebenen Schlüssel aus Tabelle "Matrix L4" sollen so oft in Tabelle "importSchlüssel2 B4" übertragen werden wie die angegeben Stück aus Tabelle "Matrix L10"

Zugleich muss Stück aus Tabelle "Matrix L10" in Tabelle "importSchlüssel2 C4" mit einem Inkrement von 1 übertragen werden.

Ich hoffe es ist soweit verständlich

Danke nochmals!
Antworten Top
#7
Hallo tomcat,

Lösungen über pn sind in Foren nicht üblich. Es wollen ja alle etwas lernen oder ihren Senf zur Lösung beitragen.

Ich habe Ralfs Makro auf deine Datei umgeändert und um den Zähler erweitert:
Code:
Sub Reihe()
Dim SLese&, WH&, ZSchreib&
Dim wksLesen As Worksheet, wksSchreiben As Worksheet

Set wksLesen = ThisWorkbook.Worksheets("Matrix")
Set wksSchreiben = ThisWorkbook.Worksheets("import Schlüssel2")

ZSchreib = 4

For SLese = 12 To wksLesen.Cells(4, Columns.Count).End(xlToLeft).Column

  For WH = 1 To wksLesen.Cells(10, SLese).Value
   
    wksSchreiben.Cells(ZSchreib, 2) = wksLesen.Cells(4, SLese)
    wksSchreiben.Cells(ZSchreib, 3) = wksLesen.Cells(10, SLese).Value - (WH - 1)
    ZSchreib = ZSchreib + 1
 
  Next WH

Next SLese

End Sub

Den Code musst Du in den VBA-Editor einfügen (mit Alt+F11 öffnen, über Symbolleiste ein neues Modul einfügen, Code da einfügen).
Wenn Du den Code einmal brauchst einfach über die Play-Taste starten, ansonsten über einen Tastenkombination oder Button verknüpfen.

ACHTUNG: Der Ablauf eines Makros lässt sich über die Rückgängig-Taste nicht wieder rückgängig machen!!!

Gruß,
Lutz
[-] Folgende(r) 1 Nutzer sagt Danke an Lutz Fricke für diesen Beitrag:
  • tomcat
Antworten Top
#8
Thumbs Up 
TOPTOPTOP

Vielen Dank es funktioniert so wie es soll!

Und entschuldigt meine ungeduld aber das Thema hat mich schon verrückt gemacht.

Thema ist somit gelöst!
Antworten Top
#9
Jetzt hätte ich doch noch ne Frage wäre es möglich falls ich einen wert lösche dass dieser bei neu ausführen des Makros dann in meiner Tabelle gelöscht wird?
Antworten Top
#10
Hab es selbst noch hinbekommen.

Hier der Code:

Option Explicit


Sub Schlüssel_Folge_Übertragen()
Dim SLese&, WH&, ZSchreib&
Dim wksLesen As Worksheet, wksSchreiben As Worksheet

Set wksLesen = ThisWorkbook.Worksheets("Matrix")
Set wksSchreiben = ThisWorkbook.Worksheets("import Schlüssel2")

ZSchreib = 4

wksSchreiben.Range("B4:B47,C4:C47").ClearContents

For SLese = 12 To wksLesen.Cells(4, Columns.Count).End(xlToLeft).Column

  For WH = 1 To wksLesen.Cells(10, SLese).Value
 
    wksSchreiben.Cells(ZSchreib, 2) = wksLesen.Cells(4, SLese)
    wksSchreiben.Cells(ZSchreib, 3) = wksLesen.Cells(10, SLese).Value - (WH - 1)
    ZSchreib = ZSchreib + 1

  Next WH

Next SLese

End Sub



Vielen Dank jetzt endgültig erledigt!
Antworten Top


Gehe zu:


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