Saturday, 1 February 2025

Simple Script in Batch Programming Using IF and For Loop With Tableau part

@echo off

setlocal EnableDelayedExpansion


for /l %%i in (01, 01, 31) do (

    SET lday=%%i

    SET month=01

    SET year=2025


    IF !lday! EQU 08 (

        SET /a lday=010

    )


    IF !month! EQU 08 (

        SET /a month=010

    )


    IF !lday! EQU 09 (

        SET /a lday=011

    )


    IF !month! EQU 09 (

        SET /a month=011

    )


    set /A lday=!lday!-1

    set /A month=!month!-0


    IF !lday! LSS 1 IF !month! EQU 1 (

        SET lday=31

        SET /A month=!month!-1+12

        SET /A year=!year!-1

    )


    IF !lday! LSS 1 IF !month! EQU 2 (

        SET lday=31

        SET /A month=!month!-1

    )


    IF !lday! LSS 1 IF !month! EQU 3 (

        SET lday=28

        SET /A month=!month!-1

    )


    IF !lday! LSS 1 IF !month! EQU 4 (

        SET lday=31

        SET /A month=!month!-1

    )


    IF !lday! LSS 1 IF !month! EQU 5 (

        SET lday=30

        SET /A month=!month!-1

    )


    IF !lday! LSS 1 IF !month! EQU 6 (

        SET lday=31

        SET /A month=!month!-1

    )


    IF !lday! LSS 1 IF !month! EQU 7 (

        SET lday=30

        SET /A month=!month!-1

    )


    IF !lday! LSS 1 IF !month! EQU 8 (

        SET lday=31

        SET /A month=!month!-1

    )


    IF !lday! LSS 1 IF !month! EQU 9 (

        SET lday=31

        SET /A month=!month!-1

    )


    IF !lday! LSS 1 IF !month! EQU 10 (

        SET lday=30

        SET /A month=!month!-1

    )


    IF !lday! LSS 1 IF !month! EQU 11 (

        SET lday=31

        SET /A month=!month!-1

    )


    IF !lday! LSS 1 IF !month! EQU 12 (

        SET lday=30

        SET /A month=!month!-1

    )


    IF !lday! LEQ 9 (

        SET lday=0!lday!

    ) else (

        SET lday=!lday!

    )


    IF !month! LEQ 9 (

        SET month=0!month!

    ) else (

        SET month=!month!

    )


    echo !year!!month!!lday!

    pause

)


endlocal 

Tableau Calcuation/LOD & Parameter with IF condition

Use this calculated field as a filter (set to TRUE)






{

FIXED [year], [month]:

  SUM(

    IF [year] = RIGHT(STR(YEAR([DATEPARA])), 4)

    AND [month] =

      IF MONTH([DATEPARA]) < 10

      THEN "0" + STR(MONTH([DATEPARA]))

      ELSE STR(MONTH([DATEPARA]))

      END

    THEN [TotalEXPEN]

    ELSE 0

    END                                                                     

)

}



Using Parameters (Selection  In Tableau)

For a dynamic approach, create two parameters:

  1. Year Parameter (List of years, e.g., 2023, 2024)
  2. Month Parameter (List of months, e.g., January, February)

Then modify the LOD:

tableau

{FIXED [year], [month]:

    SUM(

        IF [year] IN ([Year Parameter]) AND

           [month] IN ([Month Parameter])

        THEN [user]

        END

    )

}

 Example#

{

FIXED [year],[month]: SUM( IF STR([year])=LEFT(STR([STARTDATEPARA]), 4) AND STR([month])= MID(STR([STARTDATEPARA]), 7,1) THEN [DimComFrmParaCAL] END )

}

//NOTE STR("01/03/2024") becomes "2024-03-01" (or "2024-01-03" depending on your locale) in Tableau

//sum(IF STR([year])=LEFT(STR([STARTDATEPARA]), 4) THEN [CustCtr] END)

//sum(IF STR([month])= MID(STR([STARTDATEPARA]), 7,1) THEN [CustCtr] END)

//{FIXED [year], [month]: SUM(IF [year] = 2024 AND [month] =3 THEN [CustCtr] END)}


No comments:

Post a Comment