2017-04-18 9 views
0

Hallo Ich möchte Werte in einer Tabelle basierend auf 2 Werte in einer anderen Tabelle generieren. Es ist schwierig, dieses Problem in Worten zu erklären, also werde ich versuchen, es mit einem Beispiel zu erklären. Beispiel: Daten in Tabelle 1 geht, werden verwendet zum Auffüllen Werte in Tabelle 2Wie erstelle ich eine Tabelle in Excel basierend auf 2 Werten in einer anderen Tabelle

Tabelle 1:

Building type    Number 
Hospital      4   
Fire station     2 
Hotel.      0 

Tabelle 2

Hospital 1 
Hospital 2 
Hospital 3 
Hospital 4 
Fire station 1 
Fire station 2 

Hinweis Wenn die Zahl 0 in Spalte 2 von Tabelle 1, in Tabelle 2 sollte kein entsprechender Wert erzeugt werden.

+0

Hey Danke @jnevill dafür. Das hat sehr gut für mich funktioniert. Was müsste ich im Code ändern, wenn Nummer nicht in Spalte 2 Bit in Spalte 10 ist. Auch was muss ich ändern, wenn ich eine andere Spalte addiere, sagen Sie Stadt und muss diese zu Tabelle 2 entsprechend dem Bautyp verschieben. – avni

Antwort

0

Sie können dies mit einigen VBA schnell machen:

Sub makenewtable() 
    Dim rngTable1 As Range 
    Dim rngTable2 As Range 
    Dim rngReadRow As Range 
    Dim intWriteRow As Integer 
    Dim intLoop As Integer 

    'set this to your first table 
    Set rngTable1 = Sheet1.Range("A2:B4") 

    'set this to the first row to write to: 
    Set rngTable2 = Sheet2.Range("A2") 
    rngWriteRow = 0 

    'Loop through the first table row by row 
    For Each rngReadRow In rngTable1.Rows 
     'Loop the number of times the first table says we should 
     For intLoop = 1 To rngReadRow.Cells(1, 2).Value 
      'write the value out to the second table 
      rngTable2.Offset(rngWriteRow, 0) = rngReadRow.Cells(1, 1).Value 
      rngTable2.Offset(rngWriteRow, 1) = intLoop 

      'increment the row to which we are writing 
      rngWriteRow = rngWriteRow + 1 
     Next 
    Next rngReadRow 

End Sub 
+0

Hey Danke @jnevill dafür. Das hat sehr gut für mich funktioniert. Was müsste ich im Code ändern, wenn Nummer nicht in Spalte 2 Bit in Spalte 10 ist. Auch was muss ich ändern, wenn ich eine andere Spalte addiere, sagen Sie Stadt und muss diese zu Tabelle 2 entsprechend dem Bautyp verschieben. – avni

+0

Ändern Sie Ihre 'rngTable1' in die Spalte J:' Setzen Sie rngTable1 = Sheet1.Range ("A2: J4") 'und ändern Sie dann, welche' Cells() 'Sie zur Bestimmung Ihrer Schleife verwenden:' Für intLoop = 1 To rngReadRow.Cells (1, 10) .Wert' – JNevill

Verwandte Themen