How do you ruse Index Match functions in appsheet? - google-sheets

I created a rate chart for the prices of services and items provided.
generic chart:
In Sheets, I'm able to run an index and match function (see below) to fetch the corresponding price for each service (column) and item (row), however in appsheet, I'm not sure where to even put this:
INDEX(ratechart!$C$2:$K$14,MATCH($F2,ratechart!$A$2:$A$14,0),MATCH($Y2,ratechart!$C$1:$K$1,0))
appsheet doesn't seem to accept index() as a function or I'm doing it wrong (this fn does work in sheets). My spreadsheet will list thousands of rows and already has a number of formulas, so I'd really like appsheet to tackle this so my app and spreadsheet aren't slow.
(the results would display in Column F)

Related

referencing a grouped date column using GETPIVOTDATA in Google Sheets

I'm doing an analysis of sales data in Google Sheets and I'm building a dashboard with information about different sales reps. I'm trying to use the GETPIVOTDATA function to reference a year-quarter group in my pivot table, but I can't get the function to return the correct value.
In the pivot table, I have specific timestamps grouped by year-quarter and organised as columns. I have the individual sales reps and their teams organised as rows:
[Google Sheets pivot table]. I want to use GETPIVOTDATA to get the number of SQLs for a specific sales rep in a specific quarter.
The function will only return the Grand Total for the sales rep (column F in the picture), or if the Grand Total is disabled in the pivot table, it returns a #REF! error.
I tried many iterations of the GETPIVOTDATA function. I also tried making a helper column in the original data that lists the specific year and quarter instead of the timestamp. Neither of these worked.
I realise that I can use an INDEX MATCH or VLOOKUP instead, but I want to be able to change the pivot table later without having to change the formula.
If anyone knows what I'm doing wrong (or if what I'm trying to do is even possible with a GETPIVOTDATA function) I'd really appreciate advice! I can't seem to figure it out.

Formula for looking up and filtering data from a sheet

I want to do a complex formula using google sheets:
I have a list of place that will be visited by different people.
Some places are not to be visited, marked with /
Some places need to be assigned, marked with ?
Wanted outcome:
A list of cells that changes every day automatic.
An overview of who is going where that day and what needs to be assigned.
So I need a formula that can select a row based on today() and then filter out Persons in that row. Then for each person, another formula that looks up the first row in the table and puts duplicates together.
Example:
Wanted outcome:
Link to excel file, but it needs to work in google sheets too: xlsx
My solution is not the most elegant but it does the job.
First I build a column with date and unique persons or ? in this column:
=unique(sort(transpose(index(A1:H10,match(today(),A1:A10,0)))))
Then I find Places corresponding to these persons (I use filter function for it and then I use textjoin to keep them in single cell).
The formula is copied down as filter function does not accept a range and arrayformula as a filtering criterium.
My solution is available here:
https://docs.google.com/spreadsheets/d/1GTy_UaFP8LbA8OLnEhT_R_twpDCIWCuvQfBAigqtbR0/copy

Sorting QUERY output alongside user entered data in Google Sheets

I'm having trouble thinking about how to sort the results of a google sheets function alongside user entered data in adjacent cells.
Example sheet: https://docs.google.com/spreadsheets/d/1YfV93o8WEEgSG19WhbKOH1JBX5uIIz9YKVQLWSoA_Ik/edit?usp=sharing
For example, I've performed a case insensitive search function on a full list of raw data in columns Q to T using
=QUERY(Q:T, "WHERE (LOWER(Q) contains '"&LOWER(C12)&"')",2)
Image of implementation
This fills columns B,C,D,E as desired. In columns F,G I would like users to be able to add their name and the quantity of items they would like sent to them. I can sort the query results (let's say alphabetically by B) by just encapsulating it in SORT() or adding "order by" in the query, but the user entered data in columns F,G is not sorted along with this. Please could I have some ideas on how to achieve this? I'm at a loss after searching for existing questions.

Query to build list of components from product list

I'm working in Google Sheets. I have a table of products to be assembled, and the number of each type of components makes them up. I'm looking to create a different sheet where I can choose the products and have it build a list of the components that are needed to build the list of products.
For example: A florist makes bouquets out of a couple different flowers. Each bouquet is entered into a table:
I'm trying to set up a formula so when I build a list of all the bouquets being made that day, it will produce a list of all the flowers needed. Something that would look like this:
Is there a way to have a query look for a certain value in a header and then pull all the values that correspond to values that are >0 in that column? Or a good work around?
Thanks alot,
With for example, a matrix that shows what flowers (F) go into which bouquet (B):
and the day's (?) bouquet requirements in Row1, a simple SUMPRODUCT formula (here in F3):
=sumproduct(B$1:E$1,B3:E3)
and copied down to suit should suffice.

Google Spreadsheets: Use row of nth occurrence of value for other calculations?

I am using a combination of Google Forms and Google Spreadsheets for data entry and interpretation for scouting in a robotics competition (FRC). The user fills out a form for each match with the data from 6 different teams. That data is put into a spreadsheet by the form, and the sheet of data is used by other sheets for interpretation, and it outputs different stats.
One of the sheets is designed to show the progression of the team's stats over the course of their 9-10 matches. I want it to show the values for a certain stat in the same order as the matches that they played (Match 1: 10 points; Match 2: 15 points; etc.). The problem is that there are upwards of 40 teams, so teams don't play back-to-back. I am trying to create a function that searches for the nth occurrence, by row, in the 6 columns that contain team numbers. That function would then use that row to return a value for a stat by that team from that match.
My spreadsheet is here. The sheet of raw data is called "Games", and the sheet containing the progression data is called "Over Time". Within the "Games" sheet, each line is a match, and there is data for each of the 6 teams in each line. Each team gets a line on the "Over Time" sheet, and each stat would take up about 10 columns.
The function would search for the nth time (as specified by the number in row 2) that the team number (as specified in column A) occurs. It would then search that row number for the team number and return the value in the column specified by the function (eg. If the team number occurs in column C, return the value in column E of the same row.). In the sheet "Averages", I used mainly SUMIF and COUNTIF functions to return averages for each stat, but I can't figure out how to use the array functions that would be necessary for the first step of this function. I would prefer to avoid using hidden columns and rows, as that just gets messy, so it would be great if the entire function is in one cell. I would also prefer it to be a function, as opposed to a script.
This solution uses one function per row (not one function for the entire table). In 'Over Time'!B3:
=ArrayFormula(SPLIT(CONCATENATE(REPT('Games'!E$2:BW&CHAR(9);('Games'!C$2:BU=A3)*(MOD(COLUMN('Games'!C$2:BU$2);14)=3)));CHAR(9)))
which can be filled down to B8.
If it is absolutely necessary to have one formula for the entire table, then I'm sure it could be done, but it will be horribly complex. Further, as it is, these "concatenate then split" type formulae (which you need to resort to when the data isn't nicely vertical) are quite inefficient, depending on how big your source data gets. That may not be an issue in your case, but for big source data sets, I would prefer a custom function for performanc ein this case.

Resources