Forum Discussion

SandeA's avatar
SandeA
Helper III
4 years ago
Solved

Creating tables

I have a table that has columns of Date, FileName, DatabaseName, and Size. Some of the FileName fields have a "_log" at the end of the name. I'm trying to split this table into two separate tables: one for the regular databases and one for the log files.

 

I thought I was creating the first one using the below. However, I realize that just returned all the same data, it did not filter out the file names that have _log. 😞  

 

DatabaseInfo = SELECTCOLUMNS(FILTER(Servers,NOT(RIGHT(Servers[Filename]) = "_log")),
"Date", Servers[Date],
"File Name", Servers[FileName],
"Database", Servers[DatabaseName],
"Size", Servers[Size])

 

Logically, I figured if I removed the word "NOT" it would then create a table for those that contained "_log". I was wrong!  I don't get an error but the table is empty.  I haven't been in the DAX world for a while and my brain is totally overthinking this. Help! 🙂

  • SandeA,

     

    You're missing the second parameter of the RIGHT function that specifies the number of characters.

     

    DatabaseInfo =
    SELECTCOLUMNS (
        FILTER ( Servers, NOT ( RIGHT ( Servers[Filename], 4 ) = "_log" ) ),
        "Date", Servers[Date],
        "File Name", Servers[FileName],
        "Database", Servers[DatabaseName],
        "Size", Servers[Size]
    )

     

    You can also do this in Power Query. Create a query that references the main query, and filter using "does not end with":

     

     

     

2 Replies

  • SandeA,

     

    You're missing the second parameter of the RIGHT function that specifies the number of characters.

     

    DatabaseInfo =
    SELECTCOLUMNS (
        FILTER ( Servers, NOT ( RIGHT ( Servers[Filename], 4 ) = "_log" ) ),
        "Date", Servers[Date],
        "File Name", Servers[FileName],
        "Database", Servers[DatabaseName],
        "Size", Servers[Size]
    )

     

    You can also do this in Power Query. Create a query that references the main query, and filter using "does not end with":