How to hide measure value from table but show value? - tableau-desktop

I am very new to tableau and I would like to somehow hide from this example the 2nd and 4th row, but put the value behind the 1st and 3rd row.
So the % values should stay but basically, I do not need the tag of it.
Any help would be very appreciated.

Related

Change cell value based on checkbox in Google sheets

I'm using Google sheet to manage my budget (see sample below) where I add each of my expenses as a single entry (yes, sounds like a lot of work). I sometimes split the expense with my roommate but then I have to add the value and divide by 2 everytime.
I was thinking if I could use a checkbox next to the value that will automatically divide the expense number by 2 when I check it. Is this possible?
I'm open to simple suggestions other than the checkbox to automatically update the value. Thank you.
Using simple IF formula you can just check if the checkbox is true, if it is then it will divide the current value on column C by 2. Otherwise it will remain blank.
Formula:
=IF(D1,C1/2,"")
Drag down to other cells.
Result:
Suggestion, Alternate solution:
If you'd like you can make a table with a column for your roommate, instead of editing the actual column so you can see both values. And use this formula:
=if(NOT(D2=""),E2/2,E2)
You have a column for per head contribution/split. If the cell on roommate is blank then it will stay as the total value, if roommate has an additional then it will be added to total and split it by 2.
Or using arrayformula:
=arrayformula(if(NOT(D2:D=""),E2:E/2,E2:E))
Works the same as above you just have to fill the enter the formula in the first cell no need to drag down and it will automatically expand to rows/cells below just make sure that below cells are empty or it will return an error.
Additional - Using same cell
As you've mentioned in the comments. Here's a way to divide the original value without using another cell to store it. (Not recommended)
Formula:
=VALUE/IF(D1,2,1)
example:
=1000/IF(D1,2,1)
Result:
However, I do not recommend this. It is still best to make use of another cell to store the original value before making calculations to it.
Also, using this formula you have to change the value from the formula and not on the cell otherwise you will replace the actual formula.
You can try array approach-
=ArrayFormula(IF(D1:D,C1:C/2,C1:C))

How can I fix the range of a Google Sheet MATCH function when using a move rows apps script?

I have a Google Sheet with a script to move rows at a set interval. The last row is moved to the top and all consecutive rows move down one, thus creating a loop. This sheet feeds a dynamic gallery of 10 stores which appear in consecutive blocks, managed by left and right arrows. Each block has a button which takes the value of the particular store of the block being viewed.
I want to register the row a store is on when this button is clicked so, in order to identify it, I have placed a MATCH function in a cell of each row with a formula like this: =MATCH("Store 10",B2:B11,0). All's fine up to this point however, when the row moves, the range also shifts. For example, when Store 10 moves from the last row to the first, the above formula changes to =MATCH("Store 10",B3:B11,0). This obviously renders the whole idea useless since Store 10, which now resides in the first row (B2), is not even found, since B2 is not included in the formula's range anymore!
Is there a fix to this or a better way to achieve my goal?
Try this in G1
={"title of column";arrayformula(MATCH(offset(B1,1,,10),offset(B1,1,,10),0))}

How can I get to know when a user switches from editing any column on one row of ui-grid to any column on another row

I have tried finding any related event in docs, but there seems to be no such event. So is there any way I can trigger my code when user switches rows while editing.
My use case is :
On a particular combination of values in 2 cols of a row, I want to make 3rd col mandatory (otherwise its optional).
So whenever user changes any of first 2 cols and the combination matches, I want to show a message to fill 3rd column, but only if user switches to next row (Do not want to show the message in case users already were headed to fill the 3rd col themselves).
Did you try using afterCellEdit?
Refer http://ui-grid.info/docs/#/api/ui.grid.edit.api:PublicApi

Angular UI-grid, how to tell what the next column in the scroll is

I have a ui grid that has 20 columns, and I would like to be able to tell what the next column will be as I scroll through the horizontal axis so that I can have some text that will tell the users what the names of all the columns they can't see are.
Anyone know if this is possible? As I watch the the inspector and scroll through the columns, I see html attributes changing.
---UPDATE 1----
This is what is all looks like (where it says "home #" is dynamic and will change to show the next column that is out of site)
Based on the ui-grid configuration that you use to render the grid, you already know the order of the columns. You can use this information together with the visible on each column added by the gird itself.
What you need to do is bind a event handler on scroll to iterate over the columns on each change and check the visibility of them. Then the first one with visible === false is the upcoming.
Here is a working Plunker where is used this flag.

Angular ui-grid - how to tell if I am on the last row

I'm using the latest version of Angular UI Grid and am struggling with how to determine if the focus is currently on the last displayed row of the grid.
The data array is not sorted the way it is on-screen, so I cannot use that info. I read that the visible row cache should be sorted as it is on-screen, but I think that might be related to the old ng-grid. At any rate, if I look at gridApi.core.getVisibleRows(myGrid) it still has the sorting as per the raw data.
I am currently handling the event gridApi.cellNav.on.navigate(newRowCol, oldRowCol). I can see the column and row that the user has the focus on, but I cannot see any values in this event (or elsewhere) that I can use to determine if the row is the last-displayed on-screen. I'd appreciate any tips!!
You should use gridApi.grid.renderContainers.body.visibleRowCache which is an array sorted the way the rows are visible on the screen. You can then check if the row is the last row with something like:
oldRowCol.row.uid == $scope.gridApi.grid.renderContainers.body.visibleRowCache[$scope.gridApi.grid.renderContainers.body.visibleRowCache.length-1].uid

Resources