<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Automate field calculation for all fields in data model in App Development</title>
    <link>https://community.qlik.com/t5/App-Development/Automate-field-calculation-for-all-fields-in-data-model/m-p/2484907#M101201</link>
    <description>&lt;P&gt;&lt;STRONG&gt;Problem&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;In Qlik data load editor, I am trying to calculate the null count and non-null count for all fields in the data model and produce a table that contains those summary statistics. How can I repeat the following code for all fields (&amp;gt;40 fields) in my data model so that I don't end up with an unnecessarily long script.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Section of the code to automate for all fields:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;```&lt;/P&gt;
&lt;P&gt;,NullCount(field1) as null_count_field1&lt;BR /&gt;,Count(field1) - NullCount(field1) as non_null_count_field1&lt;/P&gt;
&lt;P&gt;,NullCount(field2) as null_count_field2&lt;BR /&gt;,Count(field2) - NullCount(field1) as non_null_count_field2&lt;/P&gt;
&lt;P&gt;...&lt;/P&gt;
&lt;P&gt;,NullCount(fieldN) as null_count_fieldN&lt;BR /&gt;,Count(fieldN) - NullCount(field1) as non_null_count_fieldN&lt;/P&gt;
&lt;P&gt;```&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Reprex script:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;// Create sample data&lt;BR /&gt;LET vToday = Today();&lt;/P&gt;
&lt;P&gt;sample_data:&lt;BR /&gt;LOAD * INLINE [&lt;BR /&gt;batch_date, field1, field2, field3&lt;BR /&gt;$(vToday), 10, 9, 2&lt;BR /&gt;$(vToday), 12, 11, 3&lt;BR /&gt;$(vToday), , , &lt;BR /&gt;$(vToday)-1, 9, 8, 1&lt;BR /&gt;$(vToday)-1, 11, 10, 2&lt;BR /&gt;$(vToday)-1, , 9, &lt;BR /&gt;];&lt;/P&gt;
&lt;P&gt;// Calculate null and non-null counts&lt;BR /&gt;field_counts:&lt;BR /&gt;LOAD&lt;BR /&gt;batch_date&lt;BR /&gt;,NullCount(field1) as null_count_field1&lt;BR /&gt;,Count(field1) - NullCount(field1) as non_null_count_field1&lt;BR /&gt;,NullCount(field2) as null_count_field2&lt;BR /&gt;,Count(field2) - NullCount(field2) as non_null_count_field2&lt;BR /&gt;,NullCount(field3) as null_count_field3&lt;BR /&gt;,Count(field3) - NullCount(field3) as non_null_count_field3&lt;BR /&gt;RESIDENT sample_data&lt;BR /&gt;GROUP BY batch_date;&lt;/P&gt;
&lt;P&gt;// Use CrossTable to reshape the data&lt;BR /&gt;counts_xtable:&lt;BR /&gt;CrossTable(field_name_t, value, 1)&lt;BR /&gt;LOAD *&lt;BR /&gt;RESIDENT field_counts;&lt;BR /&gt;DROP TABLE field_counts;&lt;/P&gt;
&lt;P&gt;// Process the reshaped data&lt;BR /&gt;counts:&lt;BR /&gt;LOAD &lt;BR /&gt;batch_date&lt;BR /&gt;,subfield(field_name_t, '_count_', -1) as field_name&lt;BR /&gt;,subfield(field_name_t, '_count_', 1) as count_type&lt;BR /&gt;,value&lt;BR /&gt;RESIDENT counts_xtable;&lt;BR /&gt;DROP TABLE counts_xtable;&lt;/P&gt;
&lt;P&gt;// Display the results&lt;BR /&gt;counts_display:&lt;BR /&gt;LOAD&lt;BR /&gt;batch_date,&lt;BR /&gt;field_name,&lt;BR /&gt;count_type,&lt;BR /&gt;value&lt;BR /&gt;RESIDENT counts;&lt;/P&gt;
&lt;P&gt;// Clean up&lt;BR /&gt;DROP TABLE sample_data;&lt;BR /&gt;DROP TABLE counts;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
    <pubDate>Wed, 02 Oct 2024 13:40:52 GMT</pubDate>
    <dc:creator>prayner</dc:creator>
    <dc:date>2024-10-02T13:40:52Z</dc:date>
    <item>
      <title>Automate field calculation for all fields in data model</title>
      <link>https://community.qlik.com/t5/App-Development/Automate-field-calculation-for-all-fields-in-data-model/m-p/2484907#M101201</link>
      <description>&lt;P&gt;&lt;STRONG&gt;Problem&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;In Qlik data load editor, I am trying to calculate the null count and non-null count for all fields in the data model and produce a table that contains those summary statistics. How can I repeat the following code for all fields (&amp;gt;40 fields) in my data model so that I don't end up with an unnecessarily long script.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Section of the code to automate for all fields:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;```&lt;/P&gt;
&lt;P&gt;,NullCount(field1) as null_count_field1&lt;BR /&gt;,Count(field1) - NullCount(field1) as non_null_count_field1&lt;/P&gt;
&lt;P&gt;,NullCount(field2) as null_count_field2&lt;BR /&gt;,Count(field2) - NullCount(field1) as non_null_count_field2&lt;/P&gt;
&lt;P&gt;...&lt;/P&gt;
&lt;P&gt;,NullCount(fieldN) as null_count_fieldN&lt;BR /&gt;,Count(fieldN) - NullCount(field1) as non_null_count_fieldN&lt;/P&gt;
&lt;P&gt;```&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Reprex script:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;// Create sample data&lt;BR /&gt;LET vToday = Today();&lt;/P&gt;
&lt;P&gt;sample_data:&lt;BR /&gt;LOAD * INLINE [&lt;BR /&gt;batch_date, field1, field2, field3&lt;BR /&gt;$(vToday), 10, 9, 2&lt;BR /&gt;$(vToday), 12, 11, 3&lt;BR /&gt;$(vToday), , , &lt;BR /&gt;$(vToday)-1, 9, 8, 1&lt;BR /&gt;$(vToday)-1, 11, 10, 2&lt;BR /&gt;$(vToday)-1, , 9, &lt;BR /&gt;];&lt;/P&gt;
&lt;P&gt;// Calculate null and non-null counts&lt;BR /&gt;field_counts:&lt;BR /&gt;LOAD&lt;BR /&gt;batch_date&lt;BR /&gt;,NullCount(field1) as null_count_field1&lt;BR /&gt;,Count(field1) - NullCount(field1) as non_null_count_field1&lt;BR /&gt;,NullCount(field2) as null_count_field2&lt;BR /&gt;,Count(field2) - NullCount(field2) as non_null_count_field2&lt;BR /&gt;,NullCount(field3) as null_count_field3&lt;BR /&gt;,Count(field3) - NullCount(field3) as non_null_count_field3&lt;BR /&gt;RESIDENT sample_data&lt;BR /&gt;GROUP BY batch_date;&lt;/P&gt;
&lt;P&gt;// Use CrossTable to reshape the data&lt;BR /&gt;counts_xtable:&lt;BR /&gt;CrossTable(field_name_t, value, 1)&lt;BR /&gt;LOAD *&lt;BR /&gt;RESIDENT field_counts;&lt;BR /&gt;DROP TABLE field_counts;&lt;/P&gt;
&lt;P&gt;// Process the reshaped data&lt;BR /&gt;counts:&lt;BR /&gt;LOAD &lt;BR /&gt;batch_date&lt;BR /&gt;,subfield(field_name_t, '_count_', -1) as field_name&lt;BR /&gt;,subfield(field_name_t, '_count_', 1) as count_type&lt;BR /&gt;,value&lt;BR /&gt;RESIDENT counts_xtable;&lt;BR /&gt;DROP TABLE counts_xtable;&lt;/P&gt;
&lt;P&gt;// Display the results&lt;BR /&gt;counts_display:&lt;BR /&gt;LOAD&lt;BR /&gt;batch_date,&lt;BR /&gt;field_name,&lt;BR /&gt;count_type,&lt;BR /&gt;value&lt;BR /&gt;RESIDENT counts;&lt;/P&gt;
&lt;P&gt;// Clean up&lt;BR /&gt;DROP TABLE sample_data;&lt;BR /&gt;DROP TABLE counts;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 02 Oct 2024 13:40:52 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Automate-field-calculation-for-all-fields-in-data-model/m-p/2484907#M101201</guid>
      <dc:creator>prayner</dc:creator>
      <dc:date>2024-10-02T13:40:52Z</dc:date>
    </item>
    <item>
      <title>Re: Automate field calculation for all fields in data model</title>
      <link>https://community.qlik.com/t5/App-Development/Automate-field-calculation-for-all-fields-in-data-model/m-p/2484936#M101206</link>
      <description>&lt;P&gt;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/220099"&gt;@prayner&lt;/a&gt;&amp;nbsp; try below&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="javascript"&gt;Fields:
Load * Inline [
Junk ];

let vToday = date(Today(),'DD-MM-YYYY');

// Loop through fields of the table. Change the table name as per your data
for i=1 to NoOfFields('Data')

let vFieldName = FieldName($(i),'Data');

let vCountRows = NoOfRows('Data');

// load non null count values within loop
Concatenate(Fields)
Load  date(Today(),'DD-MM-YYYY') as batch_date,
     '$(vFieldName)' as field_name,
     count([$(vFieldName)]) as value,
     'non_null_values' as count_type
Resident Data;

Next

// Substract previous count from No of rows. Count only ignores actual null values.
Concatenate(Fields)
Load  batch_date,
      field_name,
     '$(vCountRows)' - value as value,
     'null_values' as count_type
Resident Fields;

Drop Field Junk;

// store daywise QVD
Store Fields into lib://DataFiles/TableName_Fields_Metadata_$(vToday).qvd(qvd);

Drop Table Fields;

// Load all Metadata QVDs with *
Metadata:
LOAD *
FROM lib://DataFiles/TableName_Fields_Metadata_*.qvd(qvd);
&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 02 Oct 2024 15:24:23 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Automate-field-calculation-for-all-fields-in-data-model/m-p/2484936#M101206</guid>
      <dc:creator>Kushal_Chawda</dc:creator>
      <dc:date>2024-10-02T15:24:23Z</dc:date>
    </item>
    <item>
      <title>Re: Automate field calculation for all fields in data model</title>
      <link>https://community.qlik.com/t5/App-Development/Automate-field-calculation-for-all-fields-in-data-model/m-p/2487901#M101593</link>
      <description>&lt;P&gt;Validated, thanks again&lt;/P&gt;</description>
      <pubDate>Fri, 18 Oct 2024 11:59:29 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Automate-field-calculation-for-all-fields-in-data-model/m-p/2487901#M101593</guid>
      <dc:creator>prayner</dc:creator>
      <dc:date>2024-10-18T11:59:29Z</dc:date>
    </item>
  </channel>
</rss>

