diff --git a/feidlambda-v-0-2.md b/feidlambda-v-0-2.md new file mode 100644 index 0000000..eb9b127 --- /dev/null +++ b/feidlambda-v-0-2.md @@ -0,0 +1,46 @@ +# NEW FUNCTIONS IN FEIDLAMBDA v0.2 + +NEW FUNCTIONS: +- `feid.utils.COMPAREVECTOR`: Memeriksa apakah setiap elemen di LEFT VECTOR merupakan bagian (_equal_ / `=`) dari RIGHT VECTOR. Return: BOOLEAN VECTOR. +- `feid.utils.MULTICHECK`: Memeriksa apakah pada setiap kolom _equal_ / `=` dengan SEARCH VECTOR. Dan diproses setiap barisnya menggunakan AND atau OR. Return: BOOLEAN VECTOR. +- `feid.utils.DROPROWS`: Menghapus baris ke-n dari suatu array. Return: ARRAY. +- `feid.utils.DROPCOLS`: Menghapus kolom ke-n dari suatu array. Return: ARRAY. +- `feid.utils.COUNTMULTICHECK`: Menghitung jumlah `TRUE` dari `MULTICHECK`. Return: INTEGER. + +## COMPAREVECTOR + +```=feid.utils.COMPAREVECTOR(left_vector, right_vector)``` + +![](./v02/feidlambda-v0-2-comparevector.gif) + +## MULTICHECK + +```=feid.utils.MULTICHECK(array, search_vector, [check_condition])``` + +CATATAN: check_condition diisi "OR" atau "AND", jika tidak diisi dianggap "AND". + +![](./v02/feidlambda-v0-2-multicheck.gif) + +## DRPOPROWS + +```=feid.utils.DROPROWS(array, index_to_drop)``` + +![](./v02/feidlambda-v0-2-droprows.gif) + +## DRPOPCOLS + +```=feid.utils.DROPCOLS(array, index_to_drop)``` + +![](./v02/feidlambda-v0-2-dropcols.gif) + +## COUNTMULTICHECK + +```=feid.utils.COUNTMULTICHECK(array, search_vector, [check_condition])``` + +CATATAN: check_condition diisi "OR" atau "AND", jika tidak diisi dianggap "AND". + +![](./v02/feidlambda-v0-2-countmulticheck.gif) + +--- + +author: @taruma diff --git a/lambda/feid.utils.lambda b/lambda/feid.utils.lambda index 7c7e362..1c9ea96 100644 --- a/lambda/feid.utils.lambda +++ b/lambda/feid.utils.lambda @@ -1,14 +1,15 @@ /* -fiako.utils v0.1.0 +fiako.utils v0.2.0 LOGIC / UTILITIES FUNCTIONS BY FIAKO ENGINEERING GIST LOGIC/UTILITIES (feid.utils): https://gist.github.com/taruma/60610672a9bd94724cba46f68b5614fa REPOSITORY: https://github.com/fiakoenjiniring/feidlambda -AUTHOR: @taruma, @iingLK -TESTED: v2208 +AUTHOR: @taruma, LKO +TESTED: Microsoft 365 Business v2209 (Build 15629.20156) */ // INDEPENDENT FUNCTIONS +// NEW IN v0.1 REPEATCOLS = LAMBDA( vector, [num_repeat], @@ -36,8 +37,48 @@ SORTCOLS = LAMBDA( ) ); +// NEW IN v0.2 +COMPAREVECTOR = LAMBDA( + left_vector, + right_vector, + LET( + left_vector, TOCOL(left_vector), + right_vector, TOCOL(right_vector), + BYROW( + left_vector, LAMBDA( + left, + OR(BYROW( + right_vector, LAMBDA( + right, + left=right + ) + )) + ) + ) + ) +); + +MULTICHECK = LAMBDA( + array, + search_vector, + [check_condition], + LET( + searchvector, TOROW(search_vector), + nrows, ROWS(array), + repeatarray, CHOOSEROWS(searchvector, SEQUENCE(nrows,,1,0)), + boolarray, MAP(array, repeatarray, LAMBDA(x, y, x=y)), + checkcondition, IF(ISOMITTED(check_condition), "AND", check_condition), + SWITCH(LOWER(checkcondition), + "and", BYROW(boolarray, LAMBDA(x, AND(x))), + "or", BYROW(boolarray, LAMBDA(x, OR(x))), + "INVALID CHECK CONDITION" + ) + ) +); + // DEPENDENT FUNCTIONS (USING PREVIOUS FUNCTIONS) +// NEW IN v0.1 REPEATROWS = LAMBDA( vector, [num_repeat], @@ -89,6 +130,40 @@ FINDINDEX2D = LAMBDA( ) ); +// NEW IN v0.2 +DROPROWS = LAMBDA( + array, + index_to_drop, + LET( + nrows, ROWS(array), + indexdrop, TOCOL(index_to_drop), + indexdropclean, FILTER(indexdrop, NOT(ISBLANK(indexdrop))), + seqvector, SEQUENCE(nrows), + boolvector, NOT(COMPAREVECTOR(seqvector, indexdropclean)), + FILTER(array, boolvector) + ) +); + +DROPCOLS = LAMBDA( + array, + index_to_drop, + LET( + transarray, TRANSPOSE(array), + droparray, DROPROWS(transarray, index_to_drop), + TRANSPOSE(droparray) + ) +); + +COUNTMULTICHECK = LAMBDA( + array, + search_vector, + [check_condition], + LET( + result, MULTICHECK(array, search_vector, check_condition), + SUM(INT(result)) + ) +); + /* MIT License @@ -111,4 +186,4 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -*/ \ No newline at end of file +*/ diff --git a/v02/feidlambda-v0-2-comparevector.gif b/v02/feidlambda-v0-2-comparevector.gif new file mode 100644 index 0000000..5b72fe6 Binary files /dev/null and b/v02/feidlambda-v0-2-comparevector.gif differ diff --git a/v02/feidlambda-v0-2-countmulticheck.gif b/v02/feidlambda-v0-2-countmulticheck.gif new file mode 100644 index 0000000..bf401c2 Binary files /dev/null and b/v02/feidlambda-v0-2-countmulticheck.gif differ diff --git a/v02/feidlambda-v0-2-dropcols.gif b/v02/feidlambda-v0-2-dropcols.gif new file mode 100644 index 0000000..1156f88 Binary files /dev/null and b/v02/feidlambda-v0-2-dropcols.gif differ diff --git a/v02/feidlambda-v0-2-droprows.gif b/v02/feidlambda-v0-2-droprows.gif new file mode 100644 index 0000000..32005f9 Binary files /dev/null and b/v02/feidlambda-v0-2-droprows.gif differ diff --git a/v02/feidlambda-v0-2-multicheck.gif b/v02/feidlambda-v0-2-multicheck.gif new file mode 100644 index 0000000..7b420a2 Binary files /dev/null and b/v02/feidlambda-v0-2-multicheck.gif differ