webForumDet fria alternativet

Excel problem.

Kontorsprogram

5 svar · 511 visningar · startad av lego

Medlem sedan aug. 200417 inlägg
Frågan#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.

Medlem sedan jan. 20061 807 inlägg
#2

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

Medlem 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)

Medlem 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.

Medlem sedan jan. 20061 807 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

Medlem 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????

263 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)