Restrict sorting to defined range for Excel - excel

I need to distribute about 100 spreadsheets to different users, and get their feedback on each row.
I have say 120 columns by 2,000 rows, and that's 240,000 cells.
I want to lock down these 240,000 cells, so any sorting on the sheet does not happen unless the sorting is applied to the full 240,000 cells.... this is to prevent unexperienced users from selecting only a few columns or a few cells and apply the sorting, and corrupt the data. Anyone with best practice on this? I am afraid I will get fired if I do not find a solution... thanks to you all, gurus.

Embed a pivot table and use some slicers to automate the sorting. Link to the data on another sheet and then hide that sheet so the actual data cannot be directly accessed. If you have SharePoint, publish the workbook and just enable the one sheet with your "UI" on it by way of Browser Options in the backstage.

Related

Group By Sum & Sort several workbooks contained within a file

My Goal: I have a file (F) that contains several workbooks, each workbook has the same format and are around 40k rows.
the form of each workbooks is as follows:
I want to get this final output within a master worbook which contains one sheet per looped workbook (contained in F).
I know that a pivot table does very well the job. But I want it automatic and I have many files within F ...
What would be your strategy, would you still use pivot table and do a sort of loop for each files? Would you use SQL, other idea ...?
Many thanks for your feedback and approach on that.
I would at least give it a try. This went really fast to create and gives you an idea of the ability of power pivot. You can see how I arrange the Rows and Columns to the right in the PivotTable Fields.
So Power Pivot!

Spreadsheet design

I'm designing a file which will calculate a set of certain numbers for each account. Each account has at the moment 5,000 buckets (rows) and 20 selectable criteria (columns). I the future both will grow. I have now 70 accounts, hence use 70 sheets with identical calculation, but the number of accounts will also increase in the future.
Now, this design is terrible, i had to go and change the formula in all 70 sheets. Is there another way of designing the workbook? The rows and columns headings will always be identical for all accounts, but the number of rows and columns may change as well as the number of accounts. I researched the topic and there are lots of guidelines as to how not to design. Well I need a recipe of how to do it. Can someone please advise? PS I can do basic/mid level vba.
Initially, I would recommend writing a macro that would produce the current "template" (ie, column headers and formulas), and running that on any new sheet for new account creation. Then, when the data model changes and you need to change columns/formulas, you can change the template creation macro to match the new model and do a quick:
For Each sht in ThisWorkbook.Worksheets
CreateTemplate(sht)
Next
to change all the existing sheets.
If you structure the sheets so that doing that doesn't mess with your source data, you can keep them all tidy without a lot of work.

Comparison of data in Access

I have written some pretty lengthy VBA code in excel for the comparison of 2 worksheets. My code does the following:
Lets you import 2 sheets for comparison
arranges the columns
removes departments which require different comparisons into a new worksheet
In sheet 1 checks if the id's appear more than once then checks, which row of data to use for comparison based on the latest update, and deletes the old rows
compares the sheets based on the header and then the cell contents as header names are different, for different values it then highlights them red
finally giving me a breakdown per column per department of differences and any id's that are missing
I have now found that my data set is becoming to big and looking to use MS Access, is it possible to copy my VBA code over to access? What do you guys suggest for this?
Any advice would be helpful.
From the nature of your question it sounds like you may not have used a database before. If you were using access, you would need to totally re-write the code using SQL statements. eg An Aggregating SQL SELECT statement to find the most recently updated update and ignore the rest.
You can use conditional formatting in an access form, but it's no better than using it in excel. How many rows does your data have? Will it fit in an excel sheet?
You might use access to pre-process the data to remove the unwanted rows that you use in excel. OR use power query or sql directly from excel to remove them.
You have a way to go.
Harvy

How do I apply data filter to only the table range and not the whole row?

I have got two adjacent tables. When I apply data filter on first table, it filters the whole row hiding rows from 2nd table as well. How do I restrict filter to only the first table range?
To answer your direct question How do I restrict filter to only the first table range? the answer is - you can't.
Reading the comments it seems what you need is to display the filtered table data next to a chart and another table. There is a little know tool in Excel that you can use to achieve this - the Camera Tool. With this you can create a dynamic image of a range and place it where you want. The image updates when a filter is applied to the source range, without affecting the rows on the Dashboard sheet.
Screenshots to demonstrate:
Setup with tables on seperate sheets, and camera images beside chart on dashboard sheet
With Filter applied to Table A
The Camera tool is not on the Ribbon (Excel 2010) or the standard toolbars (Excel 2003). You need to add it using Customisation. (Add to Qucik Access Toolbar in 2010 or Tools/Customisation Menu in 2003)
Unfortunately you won't be able to do that. When you filter, it filters the entire row (something to think about would be how the row number would display if that weren't the case). You will need to restructure your setup if you wish to prevent that (not sure of your particular use case, so sorry I can't give a more specific suggestion).
I had a similar issue, where i had a table I wanted to remain static - like a key, but wanted to filter the main table.
To get around this, I copied the static table, and pasted it as an image. This way, when you filter on the main table, the image remains where you have put it.
A simple workaround for this general issue that others may have mentioned (but I don't see here):
You can't filter just a range (e.g. a few columns in a spreadsheet), but you can sort just a range. And by sorting the range, then deleting some blocks of unwanted cells in the range, then sorting the range back to the original order, you can fake a filter.
A bit clunky, but easy for some jobs if you're careful.

How to select entire excel spreadsheet for pivot table?

I want to be able to select and reference all of the tabs in my excel spreadsheet (to get totals of everything), but the data source only allows one tab to be selected... is there a way to select and use the entire workbook in the pivot table?
Thank you!
You actually just have a data formatting problem. You're using tabs to separate devices by departments instead of simply creating a department field/column and putting everything in one tab. The data was likely delivered to you that way, but don't let the delivery format define the true working format of the data.
Combine everything in one tab, and then you'll be able to use the data in a pivot table just fine.
If you have more data than will fit in a tab, put it in a database such as MS Access, MS SQLServer or mySQL, and then tell excel to use the database as the pivot table source.
I think Jonathan M has the best answer, but here's a way to do it using SQL that I've used successfully.
I don't know any easy way of doing this, but you could write a macro to copy and paste all your existing sheets onto a single new sheet (assuming there's enough room on a single sheet).
In 2007 Multiple Consolidated Ranges isn't in the default pivot table window. You need to create your pivot table, click on it, hit Alt + D, then P. Click back to step one and you'll have the option for multiple consolidated ranges.
Select the data on any of the one sheet and hit Alt D > P. It will show you Step 1 of 3 for PivotTable Wizard. Now select Multiple Consolidation Ranges and hit Next.
Select and add different fields from different tabs and it will create a consolidated range for your PivotTable and then you can run your PivotTable based on data located on different tabs of sheet at the same time.
Hope it helps.

Resources