Version Control of Spreadsheet containing Decision Tables - excel

We have used Drools for our business rules management .We have created decision tables in spreadsheets and use MS-Excel for it .
We use git as a version control system.We are a big team and are facing huge issues with merging our changes made to the decision table excel sheet .
We co-ordinate will all developers and make all the changes in one excel sheet and then check into GIT.
What is the most efficient way of handling and merging the decision tables spreadsheet into git ?
Any alternate solution which can make each developer in-dependently check in their changes made to the decision rules spreadsheet into git ?

I would try to version your decision tables in csv file that can be converted to xls.

Related

Is it possible to import Excel file into OBIEE or OAS and use it with other subject areas?

It is known that you could upload an Excel file in Visual Analyzer as a dataset and use that Excel file in Analysis as a separate Subject Area.
However, there was no way (or at least we couldn't find it) to make any connections between this Excel dataset and other subject areas, for example setting connectiong between Excel file's date column with OBIEE's Caledar.Day column, etc.
With new OAS, is there any update on this? Can we somehow make relationships between user-defined datasets and subject areas from rpd? Or is this feature not implemented?
Once you're on OAS you can create data sets which mash up any data source you want. Excel uploaded as a data set can be combined with other uploaded data sets, data sets created by data flows as well as Subject Areas. You have full freedom.
I believe only way to make relationship between data sources is to import them into repository of Analytics.
Maybe if you can import excel as data source into repository, you can manage to relate with other data sources. Here are some links :
https://datacadamia.com/dat/obiee/obis/obiee_excel_importation
https://www.ascentt.com/importing-excel-file-into-obiee-11g/
I hope these helps.
Hakan

Auto-generate excel file - VBA

I am sitting with an issue relating to VBA in excel - i have been trying to search for a solution but is unable to find one.
I have a global report that is continuously updated with site locations and data on a global scale - the report showcase the pipeline for the upcoming fiscal year. However, the German locations require an additional separate report containing the same data + historical data (previous updates to the global report).
Currently, this is a manual effort, copy pasting data from one report to the other - so my question is. Is there a way to auto-generate and auto-update the German excel file, based on the global excel file continuously adding new sites and updating the local file? And if so, how? I assume the solution would be related to VBA and macros, but this is not my strongest side.
Thank you in advance!

Same spreadsheet structure and formulas but different data

I have a dozen spreadsheets with identical structure and formulas, essentially tables, only the data differ, say one spreadsheet per country.
For example there is a spreadsheet to manage the US employees, another for the UK employees, and another for the Canada employees.
They are exactly the same except that each will store a different set of employees.
The spreadsheets act both as a database to store data and a user-interface to interact with data.
Each change (updating or adding a formula, updating some drop-downs values, changing style...) has to be replicated in all the spreadsheets which is time consuming and error-prone.
As an example I could change the formula to compute the seniority of each employee by editing the 3 spreadsheets.
I was wondering if there was a reasonably simple way to avoid duplicating the common parts, only having different data.
I'd like to avoid a full-blown development with plenty of VBA code, a complete database, some user input forms... but if really necessary I can write some VBA and build some database to fill in the blanks if there is no out-of-the-box solution.
With a full-blown development I would do something like:
store all the employees in a single SQL database table
develop a single spreadsheet
when opening the spreadsheet ask the user to choose a country to only load the this country's employees
save the data changes to the database
If you're effectively talking about an efficient way to handle version control so that input sheets that have previously been distributed to users match a master template, then I'm afraid there is no out-of-the-box solution.
I use something along the lines of http://datapigtechnologies.com/blog/index.php/building-version-control-in-excel/ to force users to download the latest template should they be using an older one.
In addition, I also place a big note at the top to prompt users to download a new template each time, rather than recycle an old one, because if a user didn't enable macros the automatic download of the latest template won't kick in.
Note that the above screenshot shows a form that I've built in Excel's grid itself, using shudder merged cells. (i.e. It is not a userform)
If the templates need to preserve user-submitted data that isn't held centrally, then you're probably going to need to develop an add-in along the lines of what the authors do in the book Professional Excel Development.

Save versions of Excel file on Git to reconcile differences manually later

I will be one month updating Excel files. These files are in a language other than English. I thought I could use Git too to manage what I want to do.
The situation (the initial commit)
I have an Excel file that is written in the other language.
I have to perform some work and fill an Excel file with data from that.
My plan
After an initial commit, create a branch called toEnglish. Then translate some text on the Excel files to English so that I feel more comfortable. Once I do this I will commit.
Then, the one-month work will start and I will fill the data in the Excel file. I will commit periodically.
After the one month finishes, I will commit, and so I will have the data filled in a Excel page where some labels are in English.
However the output of that one month work has to have those labels in the original language.
So I have a original branch with the original language labels but no data
and the toEnglish branch with the data but English labels.
The question
I can not merge (fast-forward merge) the branches since that will eliminate the original language labels, so how can I merge in order to produce conflicts (the labels in two different languages) that I will solve one by one so that the final merge will have both the data and the labels in the original language?
There is an even bigger problem with versioning Excel files in Git, which is that Excel files (xls and xlsx) are binary. Git doesn't generally handle binary very well. Each commit you make on an Excel file will likely record the entire file as the diff. In addition, comparing Excel files from two different commits/branches won't give you much insight.
One workaround which comes to mind would be to version plain text CSV versions of your Excel worksheets. Such CSV files would likely version well with Git. Of course, if the worksheets have lots of rich content on top of the data, then this option might not work as well.
There is an open-source Git extension that makes Excel workbook files diff- and mergeable: https://github.com/ZoomerAnalytics/git-xltrail (disclaimer, I'm one of the authors)
It installs a custom differ and merger for xls* types and configures Git accordingly so that it behaves the same way as if it were a text file.
For docs and a short video, have a look at https://www.xltrail.com/client
Excel is a bit useless in Git - it does not matter whether it is a binary (xlsb or not xlsx) - it will just copy the file and leave it as it is. Thus, it is a bit of a challenge to do a working source control for VBA developers - in general it is accepted that it does not exist and cannot be done (this is what I usually hear), but there are some ways for workaround - e.g., if you follow MVC and you do not put any business logic in the worksheets.
What you can do is simply to save the worksheets to a csv and proceed working as if it is normal plain text. At the end, even some "manual" merge with formulas is possible, based on the different worksheets (this is the bonus excel gives).

Sort text-based information into different sheets

I am creating a tracking document for artists' accommodation as part of an arts festival and would like to automate part of my work flow. Whilst we use event management/scheduling software for confirmed bookings, it's nice to do all my working in Excel.
I would like to have a master sheet (sheet 1), with a full list of artists and their respective accommodation - that can then be sorted into individual sheets (sheet 2, 3 etc) based on the name of the accommodation. The automatic sorting would also capture the other pieces of information in the row.
This would allow for each different sheet to show a report on who is staying in each type of accommodation and would be rather handy!
I would recommend one or more PivotTables as a simpler solution. Here a PT and two clones are shown on your Master Sheet, but they could each be on their own sheet:
Accom is in Report Filter, Company is in Row Labels and PAX (as Sum) is in Σ Values. Once having clicked on PivotTable in Insert > Tables - PivotTable and having chosen you range ('Master Sheet'!$A$2:$C$7A2:C7) and Location just drag the fields from the big box to the little ones.
This is feasible using Excel, but I don't recommend it; it is creating a maintenance nightmare in the long run.
From the question I can't gather whether the data is available in some kind of event management software package; if so you can use that one as a data source. Or create an Access or SQL database with a few tables. After that, you can use one of the following options to make the necessary overviews and as many more as you think up during the project:
Use Excel with ODBC or web query to retrieve data aggregated and
sorted as you like. Make changes in the event management package
allowing others to see the same facts. Or do it in Access. When you
change one thing, it automatically propogates also into the Excel.
Similarly, you can use an Excel add-in such as Invantive
Control (caution I work at a supplier) to retrieve the data from
the database using SQL or a webservice, change it from within Excel and
then synchronize the changes back assuming you have write access.
A similar solution is available as SQL*XL. Probably there are others too.
If the solution must be Excel only, I would recommend using vertical/horizontal lookups with the Excel function vlookup / hlookup (Dutch: vert.zoeken, horiz.zoeken). These function perform reasonable with a small amount of data and performance can be improved by sorting. And they resemble SQL joins, so the database you get within Excel more easily conforms to the relational model.
I hope the event is successfull and the people enjoy it.

Resources