Nach einigen Fehlversuchen habe ich nach Übersetztungsdateien in OO gesucht und auch was gefunden. Das einzige, was auf anhieb funktionierte war NOW().
Ein mageres Ergebnis...
Hier sind die Gegenüberstellungen:
Code: Alles auswählen
Calc-Funktionen --> Funktionsname (englisch)
ABRUNDEN (ROUNDDOWN); ABS (ABS); ACHSENABSCHNITT (INTERCEPT); ADRESSE (ADRESS); AKTUELL (CURRENT); ANZAHL (COUNT); ANZAHL2 (COUNTA); ANZAHLLEEREZELLEN (COUNTBLANK); ARCCOS (ACOS); ARCCOT (ACOT); ARCOSHYP (ACOSH); ARCOTHYP (ACOTH); ARCSIN (ASIN); ARCTAN (ATAN); ARCTAN2 (ATAN2); ARSINHYP (ASINH); ARTANHYP (ATANH); AUFRUNDEN (ROUNDUP); B (B); BEREICHE (AREAS); BESTIMMTHEITSMASS (RSQ); BETAINV (BETAINV); BETAVERT (BETADIST); BINOMVERT (BINOMDIST); BW (PV); CHIINV (CHIINV); CHITEST (CHITEST); CHIVERT (CHIDIST); CODE (CODE); COS (COS); COSHYP (COSH); COT (COT); COTHYP (COTH); DATUM (DATE); DATWERT (DATEVALUE); DBANZAHL (DCOUNT); DBANZAHL2 (DCOUNTA); DBAUSZUG (DGET); DBMAX(DMAX); DBMIN (DMIN); DBMITTELWERT (DAVERAGE); DBPRODUKT (DPRODUCT); DBSTDABW (DSTDEV); DBSTDABWN (DSTDEVP); DBSUMME (DSUM); DBVARIANZ (DVAR); DBVARIANZEN (DVARP); DDE (DDE); DEG (DEGREES); DIA (SYD); DM (DOLLAR); EFFEKTIV (EFFECTIVE); EINHEITSMATRIX (MUNIT); ERSETZEN (REPLACE); EXP (EXP); EXPONVERT (EXPONDIST); FAKULTAET (FACT); 0(FALSE); FEHLERTYP (ERRORTYPE); FEST (FIXED); FINDEN (FIND); FINV (FINV); FISHER (FISHER); FISHERINV (FISHERINV); FTEST (FTEST); FVERT (FDIST); GAMMAINV (GAMMAINV); GAMMALN (GAMMALN); GAMMAVERT (GAMMADIST); GANZZAHL (TRUNC); GAUSS (GAUSS); GDA (DDB); GDA2 (DB); GEOMITTEL (GEOMEAN); GERADE (EVEN); GESTUTZTMITTEL (TRIMMEAN); GGT (GCD); GLAETTEN (TRIM); GROSS (UPPER); GROSS2 (PROPER); GTEST (ZTEST); HAEUFIGKEIT (FREQUENCY); HARMITTEL (HARMEAN); HEUTE (TODAY); HYPGEOMVERT (HYPGEOMDIST); IDENTISCH (EXACT); IKV (IRR); INDEX (INDEX); INDIREKT (INDIRECT); ISTBEZUG (ISREF); ISTFEHL (ISERR); ISTFEHLER (ISERROR); ISTFORMEL (ISFORMULA); ISTGERADE (ISEVEN); ISTKTEXT (ISNONTEXT); ISTLEER (ISBLANK); ISTLOG (ISLOGICAL); ISTNV (ISNA); ISTTEXT (ISTEXT); ISTUNGERADE (ISODD); ISTZAHL (ISNUMBER); JAHR (YEAR); JETZT (NOW); KALENDERWOCHE (WEEKOFYEAR); KAPZ (IPMT); KGROESSTE (LARGE); KGV (LCD); KKLEINSTE (SMALL); KLEIN (LOWER); KOMBINATIONEN (COMBIN); KOMBINATIONEN2 (COMBINA); KONFIDENZ (CONFIDENCE); KORREL (CORREL); KOVAR (COVAR); KRITBINOM (CRITBINOM); KUERZEN (INT); KUMKAPITAL (CUMIPMT); KUMZINSZ (CUMPPMT); KURT (KURT); LAENGE (LEN); LAUFZEIT (DURATION); LIA (SLN); LINKS (LEFT); LN (LN); LOG (LOG); LOG10 (LOG10); LOGINV (LOGINV); LOGNORMVERT (LOGNORMDIST); MAX (MAX); MDET (MDETERM); MEDIAN (MEDIAN); MIN (MIN); MINUTE (MINUTE); MINV (MINVERSE); MITTELABW (AVEDEV); MITTELWERT (AVERAGE); MMULT (MMULT); MODALWERT (MODE); MONAT (MONTH); MTRANS (MTRANS); N (N); NBW (NPV); NEGBINOMVERT (NEGBINOMDIST); NICHT (NOT); NOMINAL (NOMINAL); NORMINV (NORMINV); NORMVERT (NORMDIST); NV (NA); OBERGRENZE (CEIL); ODER (OR); PEARSON (PEARSON); PHI (PHI); PI (PI); POISSON (POISSON); POTENZ (POWER); PRODUKT (PRODUCT); QUADRATESUMME (SUMSQ); QUANTIL (PERCENTILE); QUANTILSRANG (PERCENTRANK); QUARTILE (QUARTILE); RAD (RADIANS); RANG (RANK); RECHTS (RIGHT); REST (MOD); RGP (LINEST); RKP (LOGEST); RMZ (PMT); RUNDEN (ROUND); SAEUBERN (CLEAN); SCHAETZER (FORECAST); SCHIEFE (SKEW); SEKUNDE (SECOND); SIN (SIN); SINHYP (SINH); SPALTE (COLUMN); SPALTEN (COLUMNS); STABW (STDEV); STABWN (STDEVP); STANDARDISIERUNG (STANDARDIZE); STANDNORMINV (NORMSINV); STANDNORMVERT (NORMSDIST); STEIGUNG (SLOPE); STFEHLERYX (STEYX); STUNDE (HOUR); SUCHEN (SEARCH); SUMME (SUM); SUMMENPRODUKT (SUMPRODUCT); SUMMEWENN (SUMIF); SUMMEX2MY2 (SUMX2MY2); SUMMEX2PY2 (SUMX2DY2); SUMMEXMY2 (SUMXMY2); SUMQUADABW (DEVSQ); SVERWEIS (VLOOKUP); T (T); TAG (DAY); TAGE (DAYS); TAGE360 (DAYS360); TAN (TAN); TANHYP (TANH); TEIL (MID); TEILERGEBNIS (SUBTOTAL); TEXT (TEXT); TINV (TINV); TREND (TREND); TTEST (TTEST); TVERT (TDIST); TYP (TYPE); UND (AND); UNGERADE (ODD); UNTERGRENZE (FLOOR); VARIANZ (VAR); VARIANZEN (VARP); VARIATION (GROWTH); VARIATIONEN (PERMUT); VARIATIONEN2 (PERMUTA); VDB (VDB); VERGLEICH (MATCH); VERKETTEN (CONCATENATE); VERSCHIEBUNG (OFFSET); VERWEIS (LOOKUP); VORLAGE (STYLE); VORZEICHEN (SIGN); WAHL (CHOOSE); 1(TRUE); WAHRSCHBEREICH (PROB); WECHSELN (SUBSTITUTE); WEIBULL (WEIBULL); WENN (IF); WERT (VALUE); WIEDERHOLEN (REPT); WOCHENTAG (WEEKDAY); WURZEL (SQRT); WVERWEIS (HLOOKUP); ZAEHLENWENN (COUNTIF); ZEICHEN (CHAR); ZEILE (ROW); ZEILEN (ROWS); ZEIT (TIME); ZEITWERT (TIMEVALUE); ZGZ (ZGZ); ZINS (RATE); ZINSZ (PPMT); ZUFALLSZAHL (RAND); ZW (FV); ZZR (NPER); AMORDEGRK (AMORDEGRC ); AMORLINEARK (AMORLINC ); ARBEITSTAG (WORKDAY ); AUFGELZINS (ACCRINT ); AUFGELZINSF (ACCRINTM ); AUSZAHLUNG (RECEIVED ); BESSELI (BESSELI ); BESSELJ (BESSELJ ); BESSELK (BESSELK ); BESSELY (BESSELY ); BININDEZ (BIN2DEC ); BININHEX (BIN2HEX ); BININOKT (BIN2OCT ); BRTEILJAHRE (YEARFRAC ); DELTA (DELTA ); DEZINBIN (DEC2BIN ); DEZINHEX (DEC2HEX ); DEZINOKT (DEC2OCT ); DISAGIO (DISC ); DURATION (DURATION ); EDATUM (EDATE ); EFFEKTIV_ADD (EFFECT_ADD ); GAUSSFEHLER (ERF ); GAUSSFKOMPL (ERFC ); GGANZZAHL (GESTEP ); GGT_ADD (GCD_ADD ); HEXINBIN (HEX2BIN ); HEXINDEZ (HEX2DEC ); HEXINOKT (HEX2OCT ); IMABS (IMABS ); IMAGINÄRTEIL (IMAGINARY ); IMAPOTENZ (IMPOWER ); IMARGUMENT (IMARGUMENT ); IMCOS (IMCOS ); IMDIV (IMDIV ); IMEXP (IMEXP ); IMKONJUGIERTE (IMCONJUGATE ); IMLN (IMLN ); IMLOG10 (IMLOG10 ); IMLOG2 (IMLOG2 ); IMPRODUKT (IMPRODUCT ); IMREALTEIL (IMREAL ); IMSIN (IMSIN ); IMSUB (IMSUB ); IMSUMME (IMSUM ); IMWURZEL (IMSQRT ); ISTGERADE_ADD (ISEVEN_ADD ); ISTSCHALTJAHR (ISLEAPYEAR); ISTUNGERADE_ADD (ISODD_ADD ); JAHRE (YEARS); KALENDERWOCHE_ADD (WEEKNUM_ADD); KGV_ADD (LCM_ADD ); KOMPLEXE (COMPLEX ); KUMKAPITAL_ADD (CUMPRINC_ADD ); KUMZINSZ_ADD (CUMIPMT_ADD ); KURS (PRICE ); KURSDISAGIO (PRICEDISC ); KURSFÄLLIG (PRICEMAT ); MDURATION (MDURATION ); MONATE (MONTHS); MONATSENDE (EOMONTH ); NETTOARBEITSTAGE (NETWORKDAYS ); NOMINAL_ADD (NOMINAL_ADD ); NOTIERUNGBRU (DOLLARFR ); NOTIERUNGDEZ (DOLLARDE ); OKTINBIN (OCT2BIN ); OKTINDEZ (OCT2DEC ); OKTINHEX (OCT2HEX ); POLYNOMIAL (MULTINOMIAL ); POTENZREIHE (SERIESSUM ); QUOTIENT (QUOTIENT ); RENDITE (YIELD ); RENDITEDIS (YIELDDISC ); RENDITEFÄLL (YIELDMAT ); ROT13 (ROT13); TAGEIMJAHR (DAYSINYEAR); TAGEIMMONAT (DAYSINMONTH); TBILLKURS (TBILLPRICE ); TBILLRENDITE (TBILLYIELD ); TBILLÄQUIV (TBILLEQ ); UMWANDELN_ADD (CONVERT_ADD ); UNREGER.KURS (ODDFPRICE ); UNREGER.REND (ODDFYIELD ); UNREGLE.KURS (ODDLPRICE ); UNREGLE.REND (ODDLYIELD ); VRUNDEN (MROUND ); WOCHEN (WEEKS); WOCHENIMJAHR (WEEKSINYEAR); WURZELPI (SQRTPI ); XINTZINSFUSS (XIRR ); XKAPITALWERT (XNPV ); ZINSSATZ (INTRATE ); ZINSTERMNZ (COUPNCD ); ZINSTERMTAGE (COUPDAYS ); ZINSTERMTAGNZ (COUPDAYSNC ); ZINSTERMTAGVA (COUPDAYBS ); ZINSTERMVZ (COUPPCD ); ZINSTERMZAHL (COUPNUM ); ZUFALLSBEREICH (RANDBETWEEN ); ZW2 (VSCHEDULE ); ZWEIFAKULTÄT (FACTDOUBLE );
Eigentlich sollten sich alle Funktionen in Basic prinzipiell so aufrufen lassen (ein Teil der Funktionen ist ohnehin in Basic enthalten und direkt zu verwenden):
Code: Alles auswählen
Function funktionAufrufen ( value as Double ) As Double
' Variablen deklarieren
Dim oFunktion as Object
' com.sun.star.sheet.FunctionAccess holen
oFunktion = createUnoService("com.sun.star.sheet.FunctionAccess")
' als Argumente ein Array mit numerischen Werten.
' Sinnloserweise wird als Summanden einfach zweimal
' das Argument value verwendet
Dim aArgumente(1) As Variant
aArgumente(0) = value
aArgumente(1) = value
' Aufruf der SUM-Funktion mit Übergabe des Arrays
' mit den Werten die zu addieren sind
funktionAufrufen = oFunktion.callFunction( "SUM", aArgumente() )
End Function
Für SUMME() geht das auch.
Für TAGEIMMONAT() geht es mit deutschsprachigen Versionen von OOo offensichtlich nicht:
http://www.oooforum.org/forum/viewtopic ... tionaccess
Was ich wirklich brauche, sind Datumsfunktionen in Basic.
Ja, die gibt es doch, siehe Online-Hilfe.
Es wäre nun eigentlich kein Problem eine TAGEIMMONAT-Funktion in Basic zu erstellen (--> wandele das Datum in serielle Zahl, verringere die in einer Schleife schrittweise um 1 und prüfe wann sich der Monat ändert, zähle dann wieder in einser Schritten hoch bis sich der Monat erneut ändert und die Anzahl der letzteren Schleifendurchläufe entsprechen den gesuchten Tagen) ich stoße nur gerade im Forum auf eine andere Lösung, also nimm die dann brauche ich nicht soviel nachdenken:
http://www.oooforum.org/forum/viewtopic ... =leap+year
Code: Alles auswählen
...
Select Case Month( startDate )
case 1
numberOfDays = 31
case 2
If startYear mod 400 = 0 Then
numberOfDays = 29
Elseif startYear mod 100 = 0 Then
numberOfDays = 28
Elseif startYear mod 4 = 0 Then
numberOfDays = 29
Else
numberOfDays = 28
End If
case 3
numberOfDays = 31
case 4
numberOfDays = 30
case 5
numberOfDays = 31
case 6
numberOfDays = 30
case 7
numberOfDays = 31
case 8
numberOfDays = 31
case 9
numberOfDays = 30
case 10
numberOfDays = 31
case 11
numberOfDays = 30
case 12
numberOfDays = 31
End Select
...
kann man sich die ZellenID geben lassen?
Sprich pos. 0,0 zu "A1"
mit Zellformel so:
=WECHSELN(ADRESSE(1;1);"$";"")
(1;1 entspricht 0;0)
in Basic so:
Code: Alles auswählen
Function GetAddress (x, y As INTEGER)
Dim nb,i As Integer
Dim AdrStr As String
AdrStr = ""
nb= (x+1) / 26
if ( nb >= 1 ) then
AdrStr = Chr(64 + Fix(nb))
end if
AdrStr = AdrStr+Chr((x mod 26)+65)
AdrStr = AdrStr+Cstr(y+1)
GetAddress=AdrStr
End Function
Gruß
Stephan