如何在 Excel 中將數字拆分為單獨的數字

如何在 Excel 中將數字拆分為單獨的數字

有誰知道相當簡單的方法將不同長度的數字分成單獨的數字,然後操作每個數字?可能可以在 Excel 本身中完成,但認為巨集會更好,因為我只對符合一些標準的結果清單感興趣。例:1234 被分為 1、2、3 和 4。當結果可以除以選定的數字(例如3)時,巨集才會用給定的數字及其對應的結果填入儲存格:A1 = 1234,A2 = 30。 10000,建立僅包含滿足限制條件的數字的清單。

謝謝

答案1

您想要 Excel VBA 中的巨集來執行此操作還是只是一個方向指標?

這可能不是最有效的方法,但它是一種方法。

遍歷數字範圍並將每個數字轉換為字串,例如 sValue = Trim(Str(I))

然後對於 LEN(sValue) 中的每個數字,您將得到值並對其求平方

例如,對於 J = 1 To Len(sValue) 結果 = Result + (Val(Mid(sText, J, 1)) ^ 2) Next J

獲得結果後,執行您要求的標準並確認它是整數(例如),例如(結果/除數)= Round(結果/除數,0)

並將結果放入所需的儲存格中。根據需要重複多次迭代(例如 10000)

這是我剛剛製作的範例,我認為它適合您的範例(給出 3711 行答案),只需根據您的要求更改 Const 值。

Sub SplitNumber()
Const StartRange = 1
Const EndRange = 10000
Const Divisor = 3
Const InputCol = 1
Const ResultCol = 2

Dim StartRow, Result As Integer
Dim sValue As String

StartRow = 1
I = StartRange
CurrentRow = StartRow

While I <= EndRange
    sValue = Trim(Str(I))
    Result = 0
    If Len(sValue) > 1 Then
        For J = 1 To Len((sValue))
            Result = Result + (Val(Mid(sValue, J, 1)) ^ 2)
        Next J
    Else
        Result = Val(sValue) ^ 2
    End If
    If (Result / Divisor) = Round(Result / Divisor, 0) Then
        Cells(CurrentRow, InputCol) = I
        Cells(CurrentRow, ResultCol) = Result
        CurrentRow = CurrentRow + 1
    End If
    I = I + 1
Wend

End Sub

答案2

為了完整起見,以下是不使用 VBA 的方法:

  1. B1使用Ctrl+ Shift+輸入此數組公式Enter

    {=SUMSQ(1*MID(ROW(),ROW(OFFSET($A$1,,,LEN(ROW()))),1))}

  2. 輸入此公式A1

    =IF(MOD(B1,3)=0,ROW(),0)

  3. 根據需要填寫任意多行。你的情況是 10,000。

  4. 篩選以隱藏0列中的值A或複製/貼上值,然後排序A並刪除值為 的所有行0

相關內容