
-----------------------------------------------------------------------------------------

Spread32 for Windows 95/98

Version 19991112 Beta

Written for and tested on Windows 98, but should work on Windows 95.

-----------------------------------------------------------------------------------------

Copyright 1999 by Bye Design Ltd. All rights reserved. The software is provided without any warranty, expressed or implied, including without limitiation warranties of merchantability or fitness for a particular purpose. In no case shall the above named company be liable for any loss of profits or any other commercial damage, including special, incidental, consequential or other damages occasioned by your use of this software.

For more information contact stephenbye@byedesign.freeserve.co.uk

-----------------------------------------------------------------------------------------

Features:
	256 columns x 65536 rows x 255 sheets
	supported operations: + - * / ^ % &
	300 functions (see below)
	cut, copy, paste, clear
	insert/delete rows and columns
	find text in formula or result
	goto specified cell
	sort selected cells, rows columns or whole sheet with multiple keys
	freeze panes
	sheet/column/row/cell formatting:
		column width
		row height
		number formats (general/fixed/currency/date/time/percent)
		alignment (horizontal:left/center/right, vertical:top/center/bottom)
		font (bold, italic)
		borders

-----------------------------------------------------------------------------------------

Supported functions ( [] indicates optional parameters ) :

	Database
		DAVERAGE(database_range,field,criteria_range)
		DCOUNT(database_range,[field],criteria_range)
		DCOUNTA(database_range,[field],criteria_range)
		DGET(database_range,field,criteria_range)
		DMAX(database_range,field,criteria_range)
		DMIN(database_range,field,criteria_range)
		DPRODUCT(database_range,field,criteria_range)
		DSTDEV(database_range,field,criteria_range)
		DSTDEVP(database_range,field,criteria_range)
		DSUM(database_range,field,criteria_range)
		DVAR(database_range,field,criteria_range)
		DVARP(database_range,field,criteria_range)

	Date/time
		DATE(year,month,day)
		DATEVALUE(date_text)
		DAY(serial_number)
		DAYS360(start_date,end_date,[method])
		EDATE(start_date,months)
		EOMONTH(start_date,months)
		HOUR(serial_number)
		MINUTE(serial_number)
		MONTH(serial_number)
		NETWORKDAYS(start_date,end_date,holidays)
		NOW()
		SECOND(serial_number)
		TIME(hour,minute,second)
		TIMEVALUE(time_text)
		TODAY()
		WEEKDAY(serial_number,[return_type])
		WEEKNUM(serial_number,[return_type])
		WORKDAY(start_date,number_days,holidays)
		YEAR(serial_number)
		YEARFRAC(start_date,end_date,[basis])

	Engineering
		BESSELI(x,n)
		BESSELJ(x,n)
		BESSELY(x,n)
		BIN2DEC(number)
		BIN2HEX(number,[places])
		BIN2OCT(number,[places])
		COMPLEX(real_num,imag_num,[suffix])
		CONVERT(number,from_unit,to_unit)
		DEC2BIN(number,[places])
		DEC2HEX(number,[places])
		DEC2OCT(number,[places])
		DELTA(number1,[number2])
		ERF(lower_limit,[upper_limit])
		ERFC(x)
		GESTEP(number,[step])
		HEX2BIN(number,[places])
		HEX2DEC(number)
		HEX2OCT(number,[places])
		IMABS(inumber)
		IMAGINARY(inumber)
		IMARGUMENT(inumber)
		IMCONJUGATE(inumber)
		IMCOS(inumber)
		IMDIV(inumber1,inumber2)
		IMEXP(inumber)
		IMLN(inumber)
		IMLOG10(inumber)
		IMLOG2(inumber)
		IMPOWER(inumber,number)
		IMPRODUCT(inumber1,[inumber2,...])
		IMREAL(inumber)
		IMSIN(inumber)
		IMSQRT(inumber)
		IMSUB(inumber1,inumber2)
		IMSUM(inumber1,[inumber2,...])
		OCT2BIN(number,[places])
		OCT2DEC(number)
		OCT2HEX(number,[places])

	Financial
		ACCRINT(issue_date,first_interest_date,settlement_date,rate,par,frequency,[basis])
		ACCRINTM(issue_date,maturity_date,rate,[par],[basis])
		AMORDEGRC(cost,purchase_date,first_period_date,salvage,period,rate,[basis])
		AMORLINC(cost,purchase_date,first_period_date,salvage,period,rate,[basis])
		COUPDAYBS(settlement_date,maturity_date,frequency,[basis])
		COUPDAYS(settlement_date,maturity_date,frequency,[basis])
		COUPDAYSNC(settement_date,maturity_date,frequency,[basis])
		COUPNCD(settlement_date,maturity_date,frequency,[basis])
		COUPNUM(settlement_date,maturity_date,frequency,[basis])
		COUPPCD(settlement_date,maturity_date,frequency,[basis])
		CUMIPMT(rate,nper,pv,start_period,end_period,type)
		CUMPRINC(rate,nper,pv,start_period,end_period,type)
		DB(cost,salvage,life,period,[month])
		DDB(cost,salvage,life,period,[factor])
		DISC(settlement_date,maturity_date,pr,redemption,[basis])
		DOLLARDE(fractional_dollar,fraction)
		DOLLARFR(decimal_dollar,fraction)
		EFFECT(nominal_rate,npery)
		FV(rate,term,[payment],[pv],[type])
		FVSCHEDULE(principal,schedule_range)
		INTRATE(settlement_date,maturity_date,investment_amount,redemption_amount,[basis])
		IPMT(rate,period,term,pv,[fv],[type])
		IRR(values_range,[guess])
		MIRR(values_range,finance_rate,reinvest_rate)
		NOMINAL(effect_rate,npery)
		NPER(rate,payment,pv,[fv],[type])
		NPV(rate,value1,[value2...])
		PMT(rate,term,[pv],[fv],[type])
		PPMT(rate,period,term,pv,[fv],[type])
		PRICE(settlement_date,maturity_date,rate,yield,redemption,frequency,[basis])
		PRICEDISC(settlement_date,maturity_date,discount,redemption,[basis])
		PRICEMAT(settlement_date,maturity_date,issue_date,rate,yield,[basis])
		PV(rate,term,[payment],[fv],[type])
		RATE(term,payment,pv,[fv],[type],[guess])
		RECEIVED(settlement_date,maturity_date,investment,discount,[basis])
		SLN(cost,salvage,life)
		SYD(cost,salvage,life,period)
		TBILLEQ(settlement_date,maturity_date,discount)
		TBILLPRICE(settlement_date,maturity_date,discount)
		TBILLYIELD(settlement_date,maturity_date,discount)
		XIRR(values_range,dates_range,[guess])
		XNPV(rate,values_range,dates_range)
		YIELD(settlement_date,maturity_date,rate,price,redemption,frequency,[basis])
		YIELDDISC(settlement_date,maturity_date,price,redemption,[basis])
		YIELDMAT(settlement_date,maturity_date,issue_date,rate,price,[basis])

	Information
		CELL(info_type,reference)
		COUNTBLANK(range)
		ERROR.TYPE(error_val)
		INFO(type_text)
		ISBLANK(value)
		ISERR(value)
		ISERROR(value)
		ISEVEN(number)
		ISLOGICAL(value)
		ISNA(value)
		ISNONTEXT(value)
		ISNUMBER(value)
		ISODD(number)
		ISTEXT(value)
		N(value)
		NA()
		TYPE(value)

	Logical
		AND(logical1,[logical2,...])
		FALSE()
		IF(logical_test,[value_if_true],[value_if_false])
		NOT(logical)
		OR(logical1,[logical2,...])
		TRUE()
		XOR(logical1,[logical2,...])

	Lookup/reference
		ADDRESS(row_num,column_num,[abs_num],[a1],[sheet_text])
		CHOOSE(index_num,value1,[value2,...])
		COLUMN([reference])
		COLUMNS(range)
		HLOOKUP(lookup_value,table_range,row_index_num,[range_lookup])
		INDIRECT(ref_text)
		LOOKUP(lookup_value,lookup_range,result_range)
		MATCH(lookup_value,lookup_range,[match_type])
		ROW([cell])
		ROWS(range)
		VLOOKUP(lookup_value,table_range,col_index_num,[range_lookup])

	Math/trigonometry
		ABS(number)
		ACOS(number)
		ACOSH(number)
		ASIN(number)
		ASINH(number)
		ATAN(number)
		ATAN2(x_num,y_num)
		ATANH(number)
		CEILING(number,significance)
		COMBIN(number,number_chosen)
		COS(number)
		COSH(number)
		COUNTIF(range,criteria)
		DEGREES(angle)
		EVEN(number)
		EXP(number)
		FACT(number)
		FACTDOUBLE(number)
		FLOOR(number,significance)
		GCD(number1,[number2,...])
		INT(number)
		LCM(number1,[number2,...])
		LN(number)
		LOG(number,[base])
		LOG10(number)
		MOD(number,divisor)
		MROUND(number,multiple)
		MULTINOMIAL(number1,[number2,...])
		ODD(number)
		PI()
		POWER(number,power)
		PRODUCT(number1,[number2,...])
		QUOTIENT(numerator,denominator)
		RADIANS(angle)
		RAND()
		RANDBETWEEN(smallest,largest)
		ROMAN(number,[form])
		ROUND(number,num_digits)
		ROUNDDOWN(number,[num_digits])
		ROUNDUP(number,[num_digits])
		SERIESSUM(x,n,m,coefficients)
		SIGN(number)
		SIN(number)
		SINH(number)
		SQRT(number)
		SQRTPI(number)
		SUM(number1,[number2,..])
		SUMIF(range,criteria,[sum_range])
		SUMPRODUCT(range1[,range2,...])
		SUMSQ(number1,[number2,...])
		SUMX2MY2(x_range,y_range)
		SUMX2PY2(x_range,y_range)
		SUMXMY2(x_range,y_range)
		TAN(number)
		TANH(number)
		TRUNC(number,[num_digits])

	Statistical
		AVEDEV(number1,[number2,...])
		AVERAGE(number1,[number2,...])
		AVERAGEA(number1,[number2,...])
		BETADIST(x,alpha,beta,[A],[B])
		BETAINV(probability,alpha,beta,[A],[B])
		BINOMDIST(number_successes,trials,probability,cumulative)
		CHIDIST(x,degrees_freedom)
		CHIINV(probability,degrees_freedom)
		CHITEST(actual_range,expected_range)
		CONFIDENCE(alpha,standard_deviation,size)
		CORREL(range1,range2)
		COUNT(value1,[value2,...])
		COUNTA(value1,[value2,...])
		COVAR(range1,range2)
		CRITBINOM(trials,probability_s,alpha)
		DEVSQ(number1,[number2,...])
		EXPONDIST(x,lambda,cumulative)
		FDIST(x,degrees_freedom1,degrees_freedom2)
		FINV(probability,degrees_freedom1,degrees_freedom2)
		FISHER(x)
		FISHERINV(y)
		FORECAST(x,y_range,x_range)
		GAMMA(x)
		GAMMADIST(x,alpha,beta,cumulative)
		GAMMAINV(probability,alpha,beta)
		GAMMALN(x)
		GEOMEAN(number1,[number2,...])
		HARMEAN(number1,[number2,...])
		HYPGEOMDIST(sample_s,number_sample,population_s,number_population)
		INTERCEPT(y_range,x_range)
		KURT(number1,[number2,...])
		LARGE(range,k)
		LOGINV(probability,mean,standard_dev)
		LOGNORMDIST(x,mean,standard_dev)
		MAX(number1,[number2,...])
		MAXA(value1,[value2,...])
		MEDIAN(number1,[number2,...])
		MIN(number1,[number2,...])
		MINA(value1,[value2,...])
		MODE(number1,[number2,...])
		NEGBINOMDIST(number_f,number_s,probability_s)
		NORMDIST(x,mean,standard_dev,cumulative)
		NORMINV(probability,mean,standard_dev)
		NORMSDIST(z)
		NORMSINV(probability)
		PEARSON(range1,range2)
		PERCENTILE(range,k)
		PERCENTRANK(range,x,[significance])
		PERMUT(number,number_chosen)
		POISSON(x,mean,cumulative)
		PROB(x_range,prob_range,lower_limit,[upper_limit])
		QUARTILE(range,quart)
		RANK(number,range,[order])
		RSQ(y_range,x_range)
		SKEW(number1,[number2,...])
		SLOPE(y_range,x_range)
		SMALL(range,k)
		STANDARDIZE(x,mean,standard_dev)
		STDEV(number1,[number2,...])
		STDEVA(value1,[value2,...])
		STDEVP(number1,[number2,...])
		STDEVPA(value1,[value2,...])
		STEYX(y_range,x_range)
		TDIST(x,degrees_freedom,tails)
		TINV(probability,degrees_freedom)
		TRIMMEAN(range,percent)
		VAR(number1,[number2,...])
		VARA(value1,[value2,...])
		VARP(number1,[number2,...])
		VARPA(value1,[value2,...])
		WEIBULL(x,alpha,beta,cumulative)
		ZTEST(range,x,[sigma])

	Text
		CHAR(number)
		CLEAN(text)
		CODE(text)
		CONCATENATE(text1,[text2,...])
		DOLLAR(number,[decimals])
		EXACT(text1,text2)
		FIND(find_text,within_text,[start_num])
		FIXED(number,[decimals],[no_commas])
		LEFT(text,[num_chars])
		LEN(text)
		LOWER(text)
		MID(text,start_num,num_chars)
		PROPER(text)
		REPLACE(old_text,start_num,num_chars,new_text)
		REPT(text,number_times)
		RIGHT(text,[num_chars])
		SEARCH(find_text,within_text,[start_num])
		SUBSTITUTE(text,old_text,new_text,[instance_num])
		T(value)
		TRIM(text)
		UPPER(text)
		VALUE(text)

-----------------------------------------------------------------------------------------

Some differences from Excel:
	No need to enter parentheses for functions with no parameters (e.g. today, pi, row, etc.).
	No need to precede formulas with '='.
	No 30-item list limit.
	No 7-function nesting limit.
	No 255-character formula length limit.

-----------------------------------------------------------------------------------------
