A family of Microsoft spreadsheet software with tools for analyzing, charting, and communicating data.
Check out the acceptable value range of the integer data type. It is less than your 100K values.
Here's a UDF that I think will do what you want:
==========================
Option Explicit
Function StdDevSpecial(rMult As Range, rVal As Range) As Double
Dim c As Range
Dim i As Long, j As Long
Dim v() As Double
If rMult.Columns.Count <> 1 Or rVal.Columns.Count <> 1 Then
MsgBox ("Ranges must be single columns")
Exit Function
End If
If rMult.Rows.Count <> rVal.Rows.Count Then
MsgBox ("Ranges must be the same size")
End If
With WorksheetFunction
ReDim v(1 To WorksheetFunction.Sum(rMult))
j = 1
For i = 1 To rVal.Rows.Count
For j = j To j + rMult(i) - 1
v(j) = rVal(i)
Next j
Next i
StdDevSpecial = .StDevP(v)
End With
End Function
================================
Edit: Worksheet function solution
By the way, I think the following will also give the same result as STDEVP, assuming that your data is in A1:B100000 laid out as above.
=SQRT(SUMPRODUCT($A$1:$A$100000,($B$1:$B$100000-SUMPRODUCT(
$A$1:$A$100000,$B$1:$B$100000)/SUM($A$1:$A$100000))^2)/SUM($A$1:$A$100000))