Converting Excel rows to columns (smarter than transpose) - excel

I have some data that has been output by an accounting system, but needs massaging.
Each Invoice is output on a row, but the categories of the products on the invoice are output as a column - I want all the data to be on a row.
(I've just discovered that as a new user to here I can't post an image, so this link links to a jpg that explains what I mean)
So the image shows how the data is currently output and how it needs to be. I assume that I need to use VBA to do this (there's actually 1000's of rows of data and a new sheet is generated every day), but I'm interested in any other ideas or samples of what functions to use in VBA (I'm a delphi developer and haven't written anything in VBA for many years, but I'm sure I can turn my hand to it with a few hints!)
Many Thanks
David

Related

Comparing data between two sheets in Powershell - how to find data after cells with specific values?

To start, unfortunately I cannot use Import-Excel (yet! organization is looking to implement the module "soon") or other outside modules, so am just working with excel objects manually.
I made an automated report that appends to an excel document every day. It looks something like the included picture. The servers and their data are not in the same cell position for each daily sheet, but are always grouped together (so Server1 and its data might be in the middle of today's sheet, but at the beginning yesterdays sheet). Databases can change, so I'll also be looking into error checking that a database actually exists on both sheets to compare them.
I want to check the most recent sheet (sheet labeled 2020-08-10) and compare each database with the same databases on the oldest sheet (sheet labeled 2020-08-08) to get a size % difference between each database, but I can't seem to figure out how to automate finding the multiple "Database" rows of each server, then going down and grabbing each database and size to compare.
Any help or guidance to get me researching in the right direction is appreciated.

Check For Matches And Import Data Into Specific Cells From An External Source

We are trying to track some online marketing metrics and I'm having some trouble. I have 2 tables in different tabs (one imports data from several external data sources, ultimately we want this to be a series of google sheets) and one is the working table.
I have rows on the imported data with month and other attributes defining the data and in the working data these are columns. The working data has a lot of other cells too that are not there with calculations, etc.
What I need to do is to check on the working sheet which month (for example) we are in, then go to the working data and scan all the data for matches with that month. Then I want to consolidate each of the data parameters into the working sheet. Ideally I wouldn't even have to import all the external data into a tab on the working spreadsheet, if I could find a way to work where it would check the external documents for the matches that would be great. The structure of the data in the external documents is the same as displayed here fore the imported data.
Note that in this case it is month but it could be anything random so DATE functions wouldn't work.
So I want to pickup the data from the external source above, and insert in the relevant places. But while the months will not change, other data can change the order in which is imported so we need to check that the headers from picture 2 match the row labels from the imported data.
I hope that makes sense. I would really appreciate any help. Was up until 4 AM trying to figure this out and I would hate to go back to my boss saying he's gonna need to get someone else to do this as I can't. :/
Thank you.
So I resolved this with a INDEX(array, MATCH(),MATCH()) function. First I selected the answer array from the cells with the info I wanted then used the MATCH Function to match the row and the columns I wanted in the matrix.
This created another problem where no answer existed as it threw an error so I had to envelop the whole expression in an IFERROR function.
The final solution was like this:
=IFERROR(INDEX(Table_Query_from_Excel_Files,MATCH(!H1:I1&A1,INDEX(Table_Query_from_Excel_Files[Month]&Table_Query_from_Excel_Files[User location],,),0),MATCH(!A1,Table_Query_from_Excel_Files[#Headers],0)), 0)

Looking for guidance on VB Code for Excel that will create action between two dynamic tables in each sheet.

I am trying to create a spreadsheet that allows me to keep track of a customer with general details (name, phone number, address...) bu then also keep a very specific list of all the products they have ordered. I want to be able to run reports on frequency of all details including what has been ordered. I have a bit of programming experience but not a whole lot of Excel experience so I know how I would write a program but not exactly how to do it in Excel. My thought is to have one sheet dedicated to the general specifications of the customer and then a second sheet that keeps track of the orders per customer. I want to be able to click on a hyperlink or something of the sort that will take me to the second sheet and automatically fill in the customer name. I want the first sheet to have the guest information running horizontally in rows but then the second sheet would have the names running horizontally on the top row and the orders would go down each column under the names. This way it keeps all of my sheets tidy and allows for me to run the type of reports I'm looking for. The main issue I'm having is figuring out a way to create a link that will do the action I want. I understand how to program but don't know Visual Basic very well but if someone was able to offer a similar code I would be able to decipher it and change it to my needs. Or if someone has a more efficient thought on how to set up the spreadsheet I'm all ears! Thanks a ton!
what you need is to create a pivot table with a data model.
The instructions are longer then what it actually takes!
here are few tutorials about the subject:
youTube video
MSDN instructions
PS don't write code in Excel unless strictly necessary. If it's a data issue, use data model

Google Script for spreadsheet to extract data from a PDF page linked on the sheet

I have a series of PDF files uploaded to Google Drive (and also stored on my computer here) in different rows of a Google or Excel spreadsheet. Each row has a distinct PDF file linked to it. What I want to figure out is a way to extract a 5 row of data (not a table) from the PDF and add it to certain columns on the sheet:
Here's a sample pdf:
https://www.dropbox.com/s/2j7pqeja38jxmzc/Sample.pdf?dl=0
The sheet looks like this:
https://www.dropbox.com/s/40u1n7umacd74kw/Sample%20sheet.xlsx?dl=0
So the process will be like Excel open linked file in Row 1, extracts data needed, then adds the data to certain columns in Excel/Google spreadsheet.
I was just wondering if this is possible.. The PDF has lots of pages, but I only need data from a single page in it.
If this doesn't work in Excel/Google spreadsheet, any suggestion how I can automate this process?
PS: I'm not asking for the exact way to do it, because I know that's a violation here, just wanted to know if this is something possible and can be done in Excel or Google spreadsheet. If not, any suggestion will greatly help. Thanks!
Yes, it's possible, but it depends a lot on the PDF, which I imagine would be the biggest hurdle. You'll probably find this answer is at least relevant, if not exactly what you're looking for.
Otherwise, if everything is stored in Drive, it's just a question of:
1) Looping through the sheet and opening the doc you want.
2) Getting the content of the PDF (Probably as a string).
3) Finding a consistent way to cut the relevant data from the PDF (This depends a lot on the content of the PDFs).
4) Pasting the data to the sheet.
Number 3 might be your biggest challenge, but once you get started you might find it to be a lot easier then you'd think.

Excel Formatting Report Using Macros

I am looking at formatting a report which has been automatically generated by a 3rd party system. As we have no access to the Database directly i would like to build a Macro which would format the report into a more readable format.
I had initially thought about ingesting this raw data into a database as i am pretty competent a writing the SQL queries, however i think it would be easier if someone could run this through a macro.
The initial report shows which users have attempted which training modules and their completion status.
N.b. A user may have completed a module several times, therefore will appear multiple times.
The link below is the spreadsheet with two sheets, sheet 1 is the raw data and sheet 2 is how i would like things to appear.
https://www.dropbox.com/s/p1hipx17q3mf3dm/Learning-Report.xlsx
Any help / ideas would be much appreciated as i am pretty new to the whole macro's in excel thing.
Many thanks
Ian
I am answering in the same manner the question is phrased so please bear with me...
Identify all unique employees (for rows)
Identify all unique courses (for columns)
Find all the attempts and compute
a. Highest Score
b. Status
Put the data in the second sheet.
See if the question has been precise... the answer would also be to the point.

Resources