Merging data with various criteria by dates in Excel - excel

I have some data in excel that are formulated as so:
I need the records with identical features to merge to one record with the oldest active date to the newest active date and the ones with changes to remain split. Basically, if there are no changes there should be one record with new active dates and if there is one change 2 records, 2 changes-3 records as so:
I'd really appreciate the help.
I tried ordering the data by id and date and applying an if statement where if there the id above or below are equal AND any of the features are not equal than return the same date and if they are equal than return the oldest and newest date for begin and end date respectively for that ID number so that they would have identical date ranges and then deleting the duplicates but resulted in the records and the records that were not sorted in a particular order not merging since it only compared the records to the ones above or below it.

Related

Excel Sheet: Count days a worker has worked

I work in Sales and I have to count how many days has a worker worked. I currently struggle to come up with formula to count it.
My thought proces is that I made a column with all the workers in the company and in second colum I want to get amount of days they worked. From data via Countifs I can pull TOTAL of entries there are with their name but I can't filter it with function to get specific amount of days they worked.
Example 1 of Data per one person if filtered manually:
Example 2 of Data per multiple workers:
As you can see our data is giving me multiple entries with one name, so like "Joe" has a certain date multiple times in the Data but I only need to count it once so I get the "1" that he worked in that day.
I don't want to mess with the original data input, I'm putting it ofcourse in different sheet since the Data sheet is just where I get my information from.
I used this formula to get total amount of entries from data per worker.
=COUNTIF(Data_All[Worker],[#Worker])
And then I tried to appoint it to a single date and make a whole table just for one worker and it would give me entries per day.
=COUNTIFS(Data_All[Worker],Sheet1!F2,Data_All[Datum],$H2)
Here as an example it showed like "Joe has 9 entries on that specific date"
So in the end what I'm looking for is a way or formula to be able to filter it and be able to count days a worker has worked from all the data given.
I also apologize if its difficult to understand what I'm looking for but my English is not that good and I'm pretty novice in Excel and its formulas.
Thank you anyway for any response to my issue.
Use Pivot table. Put Worker on "row", Date on "value", then right click on any date in Pivot table and choose "Summarize value by" and choose "count". Now you can see if any value is insert more then one time for any Worker. Then just Filer worker and count how many rows are inserted. Grand total is counted.

Excel: Order by date within multiple IDs

I have a huge epidemiological dataset containing registry data with pathology reports and clinical information. I have merged several files into one masterfile in order to get all information from one file. Every patient is assigned an unique ID-number. Each patient can have several reports and hence the same ID number can be repeated several times in the ID column. For each ID entry = new row (= pathology or clinical report) there is a date of that sample/information reported.
My goal is to be able to read all pathology/clinical info for a particular ID within one row.
By sorting the IDs, I get a clear picture of the number of each ID that has been entered. The problem arises when there are several reports = multiple rows with identical ID because the dates within this one patients with several IDs = rows do not match. The dates come from pathology (sample date, answer date, clinical info date etc). The dates from pathology and clinical within one patient does not have to match exactly on the day but still within a reasonable timeframe e.g. within 1-2 months. This is best illustrated with an example.
I want to sort the columns so that dates from a particular row match together. I am sure there is a way to do that but I cannot figure it out.
Thanks in advance
The issue of mismatching records seems to arise once the two separate tables are merged into one. In order to fix this, there are several options you can take:
Re-do the merge but strengthen the way in which the tables are joined on.
Instead of only merging based on ID, see if there is another field that could easily connect the records, perhaps a medical record #, case #, or event #, and merge the tables based on this new field AND ID. This would be the strongest solution, however it will only work if you can find said field to strengthen the link.
A separate solution would be to first sort the original tables based on the dates so that they match up and then re-merging them together.
In theory this should solve your problem as I assume currently when matching up the two separate tables it is grabbing the first instance of patient X01 from both tables and matching them together. This can be confirmed by checking the merged query and looking to see if the mismatched records are in the same order as presented in the original tables. This is not perfect, as it relies on no clinical dates occurring between pathology dates for the record, so I would proceed with caution.
And to address your concern about losing track of ID's with multiple rows, this should not matter as in the end result after merged you can then sort by ID, however you can add multiple levels of sort by selecting the data and going to Data -> Sort -> Add Level. You can change the order in which the data is sorted (First by ID and then by Date).

Pivot tables in excel - showing last values

I am having an issue with showing last value.
I have a source table, where is every single day (once) and for each day I have for item 1 total amount in stock.
I put it in pivot table. Column for total item in stock, for each day in month July for example, shows me balance for every day. When I group the month, it shows cumulative amount - which is wrong. I need to show last value.
Therefore I searched for a solution, I found on webpage ExcelJet this.
But when I tried it, for some reason, the date 31/07/2020 shows value 0 on top first, and on top second place the correct value for the last day of month.
Does anyone know why that happens? In source data there is 31/7/2020 with only 9.546.
You are applying the filter in the wrong field. You must apply it to your AMOUNT field, and you are applying it to your ITEM field (the field that holds the value VEL).
This is happening because you are working in the compact view of Pivot Table, and I think it's easier to work in tabular design.
Design the layout and format of a PivotTable
My Pivot Table is like this:
As you can see, ITEM and AMOUNT field are in the rows section. And DATE field in the Values section, set to MAX DATE and renamed as LATEST.
The filter is applied in the field AMOUNT.
I know what you mean, but actually the filter is applied on the correct field/row. See the prtscrn.
For the references, I attached the source table too.
btw, if I tried filtered out the column Note it still doesn't work properly

Excel - De-cumulate data in pivot table

Hope you'll be able to help me.
I have a table with 11 columns, the first one is a date, the next 9 ones are a way of uniquely identifying data and the 11th is a certain amount of money.
What I'm doing in a pivot table is showing the added amount according to one of the identifiers (lines) and dates (columns).
All is well and quite easy to do in a pivot table. Today though I was told that the amounts in my source table are actually cumulative since the beginning of the year.
What I mean is that there are recurring entries in that table and that if I have an entry with the 9 identifiers in january and the same in february and march for example, the value of the one in february is actually (february-january) and for march (march-february).
I could through the unique identifiers just add a column in my source table to identify and calculate the real amount, but I was wondering if there was a way to do so in the pivot table directly ?
Thanks !
Edit :
Here is a screenshot of a simplified version (only two identifiers)
In the fourth column is the amount I have, and in the fifth the real one, that I have to calculate, it is quite easy with only two columns as identifiers.
The goal here is that the pivot table at the bottom shows the "real" amount without me having to create a new column in my source table.
My example table
You can do it using Calculated Items. But it is cumbersome.
A Calculated Item is just another item that a Pivot Table field can take. It is defined in terms of the other items in the same field. For example, the field Date might have values of Jan17, Feb17, etc. A new calculated item called Difference can be added to the Date field and defined as =Feb17-Jan17. This new Difference item will appear whenever the Date field is used to provide row or column labels and the values displayed for it in the main body of the pivot table will be equal to the corresponding values for Feb17 less those for Jan17.
The discussion below is based (loosely) on the pivot table in the picture accompanying the question.
Calculated Items cannot be calculated on grouped fields, so it will be necessary to ungroup the Date field in the pivot table. This will cause the items in the field to be displayed in the same dd/mm/yyyy format as the source data. Changing these to the custom format of mmmyy makes them easier to work with. In English (rather than French) they get displayed as Jan17, Feb17, etc. using this format.
To add a new Calculated Item to the Date field, select any item in this field and locate the Calculated Item option via the ribbon. This has changed across versions of Excel, in Excel 2010 it is accessed via the "Fields, Items & Sets" button of the "Pivot Table Tools/Options" tab of the ribbon. In later versions it accessed via the "Calculations" button of the same tab. A dialog box will appear as illustrated below.
In the Name: box insert a suitable name such as Feb17Xand in the Formula: box enter =IF(Feb17=0,0,Feb17-Jan17). Click "Add" then "OK". The new Date item labelled Feb17X will appear in the pivot table and will show values of 20, 0 and 0 against projects A, B and C respectively.
Feb17X is the decumulated Date item for February. The IF is necessary because although the Amountvalues are cumulative, they only appear in the source data whenever a new Amount occurs in the month (for example Project B and Department IS has data showing for April and June but not for May).
Similar decumulated Date items can be defined in the same way for the other months.
For March, Mar17X is defined as
=IF(Mar17=0,0,Mar17-(Jan17+Feb17X))
and a new Mar17X item is added to the Date field. Unfortunately, this shows values of -28, 0 and 0 against projects A, B and C, respectively. To get the correct values displayed, it is necessary to add the Department field to the row labels in the pivot table (below the Project field) and then to use the "Collapse Entire Field" operation to stop the detail of the Department field from being visible.
The calculated items for the remaining months are added as expected - that for June is Jun17X and has formula
=IF(Jun17=0,0,Jun17-(Jan17+Feb17X+Mar17X+Apr17X+May17X))
Once the new items have been defined for the Date field, a filter is applied in the pivot table to remove the cumulative items ie, Feb17, Mar17, Apr17, May17 and Jun17. This results in the pivot table displaying the sum of the decumulated values as shown below.
A few points:
The zeroes in the pivot table can be suppressed from display by setting the number format of the Amount field to #
In the larger problem where each Amount is defined by a Date, Project and 8 further field values, the row labels of the pivot table will need to include Project and all 8 of the attribute fields. The latter 8 fields will need to be "collapsed out" of the display.
It is much, much simpler to add a decumulated Amount column to the
source data range rather than using the Calculated Item approach set
out here. Sorting the source data by the 9 attributes (Project
first then the remaining 8) and then by Date makes the task
of decumulation very easy. Simply compare the 9 attributes in a row
with the previous row: if the values are unchanged between the two
rows, subtract the previous row's Amount from the current row's,
otherwise leave the current row's Amount unchanged.

Excel lookup multiple values with multiple conditions

I have two tables that I need to compare return a true or false value, the challenge is the user ID appears multiple times in both tables which means my VLOOKUP gets stuck at the first value.
Table 1 relates to Messages sent to users
Table 2 relates to Orders made by users
I want to compare the two tables and see if a user has placed an order within 14 days of being sent each message.
I have tried using a Pivot for table 2 with UserID across the top and date down the left, then using Vlookup and Hlookup to return a value for the exact date but I can never get past looking at an exact date or the first value rather than all values.
Since you are just wanting to say "Yes" or "No" that a record exists based on multiple criteria, I think =COUNTIFS() is the way to go. COUNTIFS() lets you make a count of rows that match multiple conditions. – JNevill Mar 15 '16 at 17:33

Resources