I want to combine the resulting rows collected in a form response sheet according to the date of submission (e.g. 29/10/2017) into a single row.
How can I create the result as you can see in row 11 without using concatenate function? The problem is I have thousands of columns and around 40 rows to combine the result. Therefore, if I use concatenate, it will be very inefficient and error-prompt.
Thanks.
sample
Try QUERY
=QUERY(B2:N9,,500)
By using 500 as header argument, We essentially CONCATENATE all the columns.
Related
This might not be possible, but I was curious if there was a way to make functions like =FILTER() and =UNIQUE() to create new cells if they run into data they cannot overwrite? I have a database composed of items from multiple sheets and as of right now I'm only able to use one filter function because of the nature of what I'm doing. Would be most convenient if something like this does exist, but a rather extensive round of google searching turned up no results
no, this is not possible, however, if your formulae are of the same size you can stack them up so if your dataset will grow then new rows should be auto-added. for example, if you have FILTER that outputs 3 columns & 5 rows today but tomorrow it will output 10 rows and under it you got UNIQUE that also outputs 3 columns & n rows, then you can do:
={FILTER(A:C, A:A<>""); {"","",""}; UNIQUE(D:F)}
{"","",""} acts as empty row as separator
Hy Guys,
i'm triyng to merge two different Tab of the same Google SpreadSheet.
I'm using this formula in the first cell
={indirect(dynamicRange1);indirect(dynamicRange2)}
where dynamicRange 1 and 2 are:
FirstSheet!2:2606
SecondSheet!2:6598
But shomething does not work fine.
"In ARRAY_LITERAL, an Array Literal was missing values for one or more rows"
If i use just one dynamicRance everything works fine, both something goes wrong.
Number of columns in both sheets must be the same:
Try
={Sheet1!A2:D10;Sheet2!A2:D10}
This error is generated when the number of columns in two array is not the same:
In ARRAY_LITERAL, an array literal was missing values for one or more rows
You need same number of columns in all arrays.
You need same number of columns in all arrays. You should keep the same number of columns in all imported sheets, even if you have empty columns. Deleting empty column in at least one sheet will cause an error.
I have two sheets:
SheetA contains dates. It is the reference data.
SheetB contains dates and data on events that occurred on those dates. This sheet is updated regularly.
I am using IMPORTRANGE in SheetB to pull data from SheetA.
I sometimes need to insert rows into SheetB. For example, sometimes two events occur on the same date and I need a row for each.
However, when I insert a new row into the imported data in SheetB the new row is automatically filled with IMPORTRANGE data from SheetA.
I think there may be a solution with ADDRESS but I can't figure it out. Any help would be much appreciated!
As long as IMPORTRANGE returns a single array of multiple rows you are not going to be able to split those apart at all easily. Your best bet may be to convert the array into a standard range (Ctrl+C/Ctrl+Shift+V) and start the process all over if the source changes.
You might be able to combine two ranges (one from each sheet) in a QUERY that you sort by date.
I'm trying to do a couple of different things with a spreadsheet in Google and running into some problems with the formulas I am using. I'm hoping someone might be able to direct me to a better solution or be able to correct the current issue I'm having.
First off all, here is a view of the data on Sheet 1 that I am pulling from:
Example Spreadsheet
The first task I'm trying to accomplish is to create a sheet that lists all of these shift days with the date in one column and the subject ("P: Ben" or S: Nicole") in another column. This sheet would be used to import the data via a CSV into our calendar system each month. I tried doing an Index-Match where it used the date to pull the associated values however I found that I had to keep adjusting the formula offsets in order to capture new information. It doesn't seem like Index-Match works when multiple rows/columns are involved. Is there a better way to pull this information?
The second task I am trying to accomplish is to create a new tab which lists all the dates a specific person is assigned too (that way this tab will update in real time and everyone can just look at their own sheet to see what days they are on-call). However, I run into the same problem here because for each new row I have to change the formula to reflect the correct information otherwise it doesn't pull the correct cell when it finds a match.
I would appreciate any and all information/advice on how to accomplish these tasks with the formula combination I mentioned or suggestions on other formulas to use that I have not been able to find.
Thanks in advance!
Brandon. There are a few ways to attack your tasks, but looking at the structure of your data, I would use curly brackets {} to create arrays. Here is an excerpt of how Google explains arrays in Sheets:
You can also create your own arrays in a formula in your spreadsheet
by using brackets { }. The brackets allow you to group together
values, while you use the following punctuation to determine which
order the values are displayed in:
Commas: Separate columns to help you write a row of data in an array.
For example, ={1, 2} would place the number 1 in the first cell and
the number 2 in the cell to the right in a new column.
Semicolons: Separate rows to help you write a column of data in an array. For
example, ={1; 2} would place the number 1 in the first cell and the
number 2 in the cell below in a new row.
Note: For countries that use
commas as decimal separators (for example €1,00), commas would be
replaced by backslashes () when creating arrays.
You can join multiple ranges into one continuous range using this same
punctuation. For example, to combine values from A1-A10 with the
values from D1-D10, you can use the following formula to create a
range in a continuous column: ={A1:A10; D1:D10}
Knowing that, here's a sample sheet of your data.
First Task:
create a sheet that lists all of these shift days with the date in one
column and the subject ("P: Ben" or S: Nicole") in another column.
To organize dates and subjects into discrete arrays, we'll collect them using curly brackets...
Dates: {A3:G3,A7:G7,A11:G11,A15:G15}
Subjects: {A4:G4,A5:G5,A8:G8,A9:G9,A12:G12,A13:G13,A16:G16,A17:G17}
This actually produces two rows rather than columns, but we'll deal with that in a minute. You'll note that, because there are two subjects per every one date, we need to effectively double each date captured.
Dates: {A3:G3,A3:G3,A7:G7,A7:G7,A11:G11,A11:G11,A15:G15,A15:G15}
Subjects: {A4:G4,A5:G5,A8:G8,A9:G9,A12:G12,A13:G13,A16:G16,A17:G17}
Still with me? If so, all that's left is to (a) turn these two rows into two columns using the TRANSPOSE function, (b) combine our two columns using another pair of curly brackets and a semicolon and (c) add a SORT function to list the dates in chronological order...
=SORT(TRANSPOSE({{A3:G3,A3:G3,A7:G7,A7:G7,A11:G11,A11:G11,A15:G15,A15:G15};{A4:G4,A5:G5,A8:G8,A9:G9,A12:G12,A13:G13,A16:G16,A17:G17}}),1,TRUE)
Second Task:
create a new tab which lists all the dates a specific person is
assigned too (that way this tab will update in real time and everyone
can just look at their own sheet to see what days they are on-call).
Assuming the two-column array we just created lives in A2:B53 on a new sheet called "Shifts," then we can use the FILTER function and SEARCH based on each name. The formula at the top of Ben's sheet would look like this:
=FILTER(Shifts!A2:B53,SEARCH("Ben",Shifts!B2:B53))
Hopefully this helps, but please let me know if I've misinterpreted anything. Cheers.
I've been working on a multi tiered drop down program, and in filtering one of the tables I stumbled upon a problem I can't find any help on.
Basically, I have 2 sheets. Sheet1!A2:A has a set of values. In this example, A2=110, A3=114, A4=162. However, with each use of the program, there could be any number of values and the values could change.
In the second sheet, Sheet2! there is a table. The first row has the headers that I want to return from my search. Under each header is a series of numbers ranging from 3 to well over 50 values. And the number of columns is also unknown...(it will keep getting larger).
So I want to know which columns have all 3 values from Sheet1!A2:A in them.
Column 3 might have 6 numbers (95,110,114,125,150,162) and column 7 might have (80,110,114,125) so I would want to return the header from Column 3 but not from column 7.
Does any of this make sense? Again in simple terms, I want to query all of the columns in Sheet2 to see which contain all of the values from Sheet1!A2:A
Any help would be so greatly appreciated...
-Daniel
I set up an sheet using your example data:
https://docs.google.com/spreadsheets/d/169VrbWkTlRMzhNPe4G8hQL1MdfqQuTvjb87aRD9hiWo/edit#gid=1923440782
I've restricted the formula in cell D2 to 500 rows for the sake of speed but you can remove the references to make it work across the whole sheet:
=FILTER(Sheet2!1:1,ArrayFormula(TRANSPOSE(mmult(TRANSPOSE(COUNTIF(A2:A500,Sheet2!A2:Z500)),TRANSPOSE(split(rept("1,",COLUMNS(TRANSPOSE(COUNTIF(A2:A500,Sheet2!A2:Z500)))),",")))=count(A2:A500))))