右 - 這是一個棘手的詞組,因此我將使用幾個圖像來幫助我。Excel公式根據其他變量空出範圍
在A欄和B欄中列出了球隊名稱和每個球隊的球員人數。
D列包含所需的輸出。
我需要一個公式,將其插入到單元格D2中,並將其拖至列B的總數中,以返回團隊名稱 - 但至關重要的是,以允許其下的多個行返回空白。下面的空行數量實際上等於1 - 該團隊中的玩家數量。
我已經給它一些思考,但不能拿出一個合適的公式。有任何想法嗎?
也歡迎提出更好的標題建議。
右 - 這是一個棘手的詞組,因此我將使用幾個圖像來幫助我。Excel公式根據其他變量空出範圍
在A欄和B欄中列出了球隊名稱和每個球隊的球員人數。
D列包含所需的輸出。
我需要一個公式,將其插入到單元格D2中,並將其拖至列B的總數中,以返回團隊名稱 - 但至關重要的是,以允許其下的多個行返回空白。下面的空行數量實際上等於1 - 該團隊中的玩家數量。
我已經給它一些思考,但不能拿出一個合適的公式。有任何想法嗎?
也歡迎提出更好的標題建議。
以下VBA函數將完全按照您的要求進行操作。讓我知道它的任何部分是不是很清楚。
Sub teamRows()
Dim colDRowNumber As Integer
Dim i As Integer
Dim teamName As String
Dim numberOfRows As Integer
Dim HowFar As Integer
' Loop through the teams in column A
HowFar = Application.WorksheetFunction.CountA(Range("A:A"))
' Variable to keep count of rows in column D
colDRowNumber = 2
For i = 2 To HowFar
' Get the team's name and number of rows
teamName = Range("A" & i).Value
numberOfRows = Range("B" & i).Value
' Fill in the team's name in column D
Range("D" & colDRowNumber).Value = teamName
' Increase the row number by the number of empty rows required
colDRowNumber = colDRowNumber + numberOfRows
Next i
End Sub
一個複雜但短暫的嘗試 - 我想避免循環。下面
例適用於A2到A20
y = Split(Join(Application.Transpose(Application.Evaluate("=index(substitute(substitute(substitute(REPT(A2:A20 &"","",B2:B20),A2:A20&"","",""X"",1),A2:A20,""""),""X"",A2:a20),0,1)")), ","), ",")
[d2].Resize(UBound(y)) = Application.Transpose(y)
你可以使用VBA呢? – NavkarJ
我不會反對它,我想,只是認爲一個公式可能會更好。 –
我認爲一個公式,如果可能的話,會太複雜。相反,去一個VBA功能。 – NavkarJ