S.I/Lisp/

SELECTCOLUMNS




=SELECTCOLUMNS(A1:Z100, "Name, Department")
-> A1:B100
        



DEFINE(
    SELECTCOLUMNS,
    LAMBDA(
        table_range,
        [columns],
        IF(
            OR(
                ISOMITTED(columns),
                MEMBER(
                    UPPER(DEFAULT(columns, "")),
                    VLIST(
                        "*",
                        "ALL"))),
            table_range,
            LET(
                column_names,
                    IF(
                        ISTEXT(columns),
                        TRIMSPLIT(
                            columns,
                            ","),
                        columns),
                column_indices,
                    INDICES(
                        column_names,
                        FIRSTROW(table_range)),
                IF(
                    ONE?(COUNT(column_indices)),
                    CHOOSECOLS(
                        table_range,
                        column_indices),
                    HSTACK(
                        CHOOSECOLS(
                            table_range,
                            FIRST(column_indices)),
                        SELECTCOLUMNS(
                            table_range,
                            REST(column_names))))))))
        



Help us optimize this function