webForumDet fria alternativet

Excel problem.

5 svar · 509 visningar · startad av lego

legoMedlem sedan aug. 200417 inlägg
#1

Hej

Jag har en cell där jag har en serie med heltal i följande format: =tal+tal+tal osv. (tex =3+7+45+4+3+6+7).

Jag vill nu i en annan cell få fram antalet tal. Sedan vill jag även få fram största respektive minste tal i två olika celler.

Går detta?

Jag använder mig av excel2000.

M@gnusMedlem sedan jan. 20061 808 inlägg
#2

Min och max får du fram med =MIN(D8:D15) och =MAX(D8:D15), givetvis med ditt eget intervall.

legoMedlem sedan aug. 200417 inlägg
#3

M@gnus skrev:

Min och max får du fram med =MIN(D8:D15) och =MAX(D8:D15), givetvis med ditt eget intervall.

Det funkar inte när jag har alla tal i en ruta/cell (tex D8)

legoMedlem sedan aug. 200417 inlägg
#4

Jag gjorde en egen funktion för detta men jag har ett litet problem kvar. När jag referar till en cell så tar funktionen in summan istället för uträkningen. Hur löser man det? (=1+1+1 istället för 3)

Jag behöver komma självaste källan utan förenklingar eller uträkningar.

M@gnusMedlem sedan jan. 20061 808 inlägg
#5

lego skrev:

Det funkar inte när jag har alla tal i en ruta/cell (tex D8)

Det var ju så det skulle vara ja... :r

MindreVetandeMedlem sedan okt. 2005371 inlägg
#6

Ok, det där var en av de märkligare upläggen jag sett....

Hursom. Den här funktionen låter dig ta fram formeln som en sträng

Public Function VisaFormelSomText(Cell As Range) As String
   If Cell.HasFormula Then VisaFormelSomText= Cell.Formula
End Function

Antalet tal kan du då få genom att räkna "+"-tecken:

=LÄNGD(VisaFormelSomText(A1))-LÄNGD(BYT.UT(VisaFormelSomText(A1);"+";""))+1

Hmmm, nej det var inte snygg. Peta in i en matris istället?

Public Function SplittaFormel(Cell As Range) As Variant

Dim arrVarTmp() As Variant
Dim strTmp As String
Dim arrStrTmp() As String
Dim i As Integer

strTmp = Cell.Formula
strTmp = Replace(strTmp, "=", "")
arrStrTmp() = Split(strTmp, "+", -1)
ReDim arrVarTmp(UBound(arrStrTmp))

For i = 0 To UBound(arrStrTmp)
arrVarTmp(i) = CInt(arrStrTmp(i))
Next i

SplittaFormel = arrVarTmp

End Function

Nu borde det gå att använda Min, max antal osv
=MIN(SplittaFormel(A1))
=ANTAL(SplittaFormel($A$1))
=MAX(SplittaFormel($A$1))
Ähhh, du fattar principen.

Men du. Varför????

130 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)