簡體   English   中英

從數據項和乘數構建excel數組

[英]build excel array from data items and a multiplier

這個網站上的第一個問題。

多年來來到這里沐浴着所提供知識的熱情! 請對我好一點。 ;)

我不是程序員,但是可以繞過excel,但是我在excel中有一個問題,我一直在努力尋找解決方案。

我需要獲取一組數據並將其轉換為該數據所有出現的數組(或列表)。 例如,一組數據(A,B,C)和每個項目的實例值(2,1,3)。

我需要做的是將這兩項合並為所有出現的數組。

像這樣:-

Data,Instances

A,2
B,1
C,3
Total 6

Result
1,A
2,B
3,C
4,A
5,C
6,C

(我希望這很清楚-我的評分還不夠高,無法發布屏幕截圖)

因此,在此示例中,我有2個As,1個B和3個C,總共提供6個項目。 為了創建結果,我遍歷了列表6次,列出了每個數據項(如果仍然存在)(但是AABCCC的數組/列表同樣有效)。 對於完整的數據集,可以有多達12個不同的數據項,且出現次數從1到12。

我以某種方式認為我使一個簡單的過程變得過於復雜,但是對於我自己的一生,我無法全力以赴地實現所需的結果。

假設我們將您的數據放在A列中:

在此處輸入圖片說明

並運行以下簡短宏:

Sub croupier()
    Dim N As Long, K As Long, i As Long, ary(), bry()
    Dim v As String
    N = Cells(Rows.Count, "A").End(xlUp).Row
    ReDim ary(1 To N)
    ReDim bry(1 To N)

    For i = 1 To N
        v = Cells(i, "A").Value
        cry = Split(v, ",")
        ary(i) = cry(0)
        bry(i) = CLng(cry(1))
    Next i

    K = 1
    While Application.WorksheetFunction.Sum(bry) > 0
        For i = 1 To N
            If bry(i) <> 0 Then
                Cells(K, "B").Value = ary(i)
                bry(i) = bry(i) - 1
                K = K + 1
            End If
        Next i
    Wend
End Sub

我們的結果是這樣的:

在此處輸入圖片說明

我們反復運行A將值放在B列中,直到某項的計數達到零為止。

當項目總數為零時,我們停止。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM