Database Dynamics: Macro-Driven Analysis of Horse Racing Data

Screenshot (98)

In this Excel interface, I've set up a user-friendly Database Management System. It features two prominent buttons: 'IMPORT CSV' and 'TRANSFER DATA'. I've designed it to facilitate easy data importation and manipulation. There's also an instruction panel explaining the steps for using the system: importing a CSV report, verifying data structure in TempData sheet, and ensuring 'SplitTimes:Cumulative' is correctly formatted before transferring data to the DATABASE tab. This streamlines the process for the user, making data management straightforward and efficient.

Screenshot (99)

detailed spreadsheet that lists horse racing statistics, including horse names, owner details, and various performance metrics like race times at different furlong markers after trasering the data.

Screenshot (101)

This is a snapshot of the database tab in my Excel tool. It showcases an extensive list of races, with information like horse names, owners, odds, grades, and performance times on different track conditions. After the marcos has been enabled

Screenshot (102)

Here, I've displayed the macro dialog box with a list of custom macros I've written, such as 'Data Transaction' and 'Import Data'. This allows for efficient data processing and manipulation with a simple click.

Screenshot (136)

Here, the Excel sheet is organized to display a detailed race report. The sheet includes sorting and filtering options for better data navigation and analysis, with comprehensive details for each horse in every race listed.

Screenshot (137)

This screenshot shows the Excel tool after applying filters to the race data, allowing users to view and analyze specific subsets of the data based on criteria such as race name, date, and horse performance. Filtered by the left direction.

Screenshot (138)

Filtered by Dirt Surface

Screenshot (140)

Wider view of full database

Screenshot (175)

Filtered by Turf Surface


Variable Initialization: Defines and sets up variables for sheet names, row and column counts, and an array of column letters (varListA). Sheet Names Assignment: Assigns the names of two worksheets (Sheet5 and Sheet6) to tempSht and dataSht variables Data Transfer from tempSht to dataSht: The macro identifies specific sections of data in tempSht by using a function FindTextcell (not defined in the provided code). This function seems to return the row or column number where a specific text (like "Entrant Stats" or "Cumulative") is found. For each identified section, the macro copies data from tempSht and pastes it as values into the corresponding columns in dataSht. The data is copied and pasted column-wise. The columns to be transferred from tempSht are determined by the varListA array, and the destination columns in dataSht are found using the FindTextcell function with the column headers. Handling Different Data Sections: The macro handles different data sections separately (like "Entrant Stats", "Cumulative", "Split Times") and transfers the corresponding data to dataSht.


Dynamic Column Mapping: For each data section, the macro dynamically identifies the source and destination columns based on the headers (like "Cumulative [Column Name]" or "Split Times [Column Name]"). Looping Through Columns: It uses loops to iterate over the columns in tempSht and transfer the data to dataSht. In summary, Transfer_Data is a customized macro for transferring structured data from one worksheet to another, with specific logic for handling different sections and dynamically mapping source and destination columns. This is particularly useful in scenarios where data is organized in a consistent format across multiple sections, and there's a need to consolidate this data into a single sheet.