...Continue from previous post, experiment with imperial mod, quotient, division.
##**********************************************************************************************
## 45 UDF/ Excel name: impaMQD() - Similar Excel MOD() function with optional parmeters,
## return quotient or division [opt_1Quotient_or_2Division].
##
## Note: This function uses todec() & toimpa() as sub-functions.
##
## Notes with optional parameters:
##
## [opt_1Quotient_or_2Division] = 1 , Similar Excel QUOTIENT() function - Returns the integer
## portion of a division
## [opt_1Quotient_or_2Division] = 2 , division calculation (varDividend/varDivisor)
##
## Optional parameters other than 1 & 2 will return error #N/A
##
## Rev. 1.0 - 9/2/2025
##**********************************************************************************************
=LAMBDA(varDividend,varDivisor,[opt_1Quotient_or_2Division],
LET(optN,IF(ISOMITTED(opt_1Quotient_or_2Division),0,
IF(AND(opt_1Quotient_or_2Division<=2,opt_1Quotient_or_2Division>0),opt_1Quotient_or_2Division,NA())),
varD1,todec(varDividend),
varD2,todec(varDivisor),
answrM,varD1-(varD2*INT(varD1/varD2)),
answrQ,ROUNDDOWN(varD1/varD2,0),
answrD,varD1/varD2,
SWITCH(TRUE,
optN=0,IF(AND(ISNUMBER(varDividend),ISNUMBER(varDivisor)),answrM,IF(OR(AND(ISTEXT(varDividend),ISTEXT(varDivisor)),ISNUMBER(varDivisor)),toimpa(answrM),"Error!")),
optN=1,IF(OR(AND(ISNUMBER(varDividend),ISNUMBER(varDivisor)),AND(ISTEXT(varDividend),ISTEXT(varDivisor))),answrQ,IF(ISNUMBER(varDivisor),toimpa(answrQ),"Error!")),
optN=2,IF(OR(AND(ISNUMBER(varDividend),ISNUMBER(varDivisor)),AND(ISTEXT(varDividend),ISTEXT(varDivisor))),answrD,IF(ISNUMBER(varDivisor),toimpa(answrD),"Error!")),
NA()
)
)
)