Excel

hwsw famulus hwsw at famulus.hu
Sun May 30 11:00:16 CEST 2004


> Excelbe olyan fuggvenyt keresek ami a beirt tartalmat (tobb cella mezoi osszefuzve) ugy ertelmezi, mintha az a cella fuggvenye lenne.
> 
> Pl.
> 
> Cella : tartalom
>  A1 : "A3"
>  A2 : "A5"
>  B1 : sum(A3:A1)  (ezt a fenti ketto cella alapjan osszehozva. Az osszefuzes csak kiirja a cellaban...)
> 
> Koszonom,
> Robi


A cella es az indirekt fuggvenyek a Te barataid.....a helpen kivul :-)

Nos, legyen egy ilyen tablazatod:

A1  tartalma D1
B1 tartalma D4

D1 tartalma 40
D2 tartalma 50
D3 tartalma 10
D4 tartalma 20

es ekkor ha a.....

C1 tartalma =SZUM(INDIREKT(CELLA("Tartalom";A1)):INDIREKT(CELLA("Tartalom";B1)))

akkor a C1 cellaban bizony ott vigyorog a neked a 120 !!!
azaz a ketszeresen indirekt hivatkozas szummaja a D1:D4 tartomanybol...

KJ

P.S.

Amugy osszetetteb vagy algoritmust igenylo esetekre javaslom 
a feladat megoldashoz a nagyon kenyelmesen hasznalhato 
sajat VBA (VisualBasicApplication) fuggveny irast amit az
excel alapbol tamogat mivel ugye szabadon programozhato, szegeny para...
(A sokat szidott MS "ajandeka" ez az office reszekhez)

Eszközök-Macro-VisualBasic es ott is a munkaablak elotted:-)

pl.  egy sajat fuggveny ami a hivatkozott cellaban levo vonalkodhoz kiszamolja az ellenorzo szamot
(uj modulba kell tenni es nem a munkalapra!)

ez van a B9299-es cellaban:
      599636207389 

es ezt teszi a hivott cellaba:
      5996362073897 
azaz a vonalkod vegere kiszamolja a 7-est

A cellabol igy hivodik a fuggveny:

=Format_UPC_String(B9299)

a forras kodja pedig:

Function Format_UPC_String(InString As String) As String
    
    Dim OutString As String
    Dim Multiplier As Integer, Sum As Integer, i As Integer
    Dim CheckDigit As Integer
    '
    '   Initialize the sum to zero
    '
    Sum = 0
    '
    '   Add up the values of digits in the odd-numbered positions
    '
    
    For i = 2 To Len(InString) Step 2
        Sum = Sum + Val(Mid$(InString, i, 1))
    Next i
    '
    '   Multiply this result by 3, then add in the values of
    '   the digits in the even-numbered positions
    '
    Sum = Sum * 3
    
    For i = 1 To Len(InString) Step 2
        Sum = Sum + Val(Mid$(InString, i, 1))
    Next i
    
    
    '
    '   Now calculate the Modulo 10 check digit
    '
    CheckDigit = Sum Mod 10
    CheckDigit = 10 - CheckDigit
    If CheckDigit = 10 Then
        CheckDigit = 0
    End If
    OutString = InString + Format$(CheckDigit)
    Format_UPC_String = OutString

End Function

(kod Copyright by WEB)



More information about the Elektro mailing list