Transpose and repeat column header on rows - excel

I've got a list with a huge amount of columns. I want to repeat the column header on each row and put all the columns into just two.
I start with this:
The result should be:
Does anyone have any idea if how I can do this? Thanks

Assuming Person1 is in A1, insert and label a new ColumnA then unpivot (eg as described in detail under Convert matrix to 3-column table ('reverse pivot', 'unpivot', 'flatten', 'normalize') and filter to delete rows blank under Value.

I solved this using a method described here: http://www.extendoffice.com/documents/excel/2461-excel-reverse-pivot-table.html

Related

split delimited row into multiple rows

I hope you can give me some guidance.
I have this first table with two comma delimited cells:
=>I separated the delimited values of the last column with power query. Split rows and remove the pivot (https://exceloffthegrid.com/power-query-split-delimited-cells-into-rows/):
=>My question is for the second column, how can I avoid that it generates the matrix product and only put a single value in the cell?
I want to get the table like this:
You could add 2 more steps:
Between first and second table above you may create and process a new column with combined values „d-1, e-2, f-3“ and “y-4, x-5” before unpivot.
After unpivot split the columns with the combined values to 2 columns back.

How to sum all values based on match value?

Question: How to sum all values based on matching values in a range?
(I would like to avoid using Pivot Table)
Hence, all "Volume" in Table 2 should be summed based on "dest_ctry" in Table 1.
Thank you.
Use simple SUMIF() like-
=SUMIF(C5:C100,F5,D5:D100)
If your data in true table object then use-
=SUMIF(Table1[dest_ctry],[#Destination],Table1[Volume])

How to show columns that have more than x non empty rows

I have the following pivot table and I would like to see only the columns that have more than x non empty rows(months).
For example, I want to see only columns which have more than 4 non empty rows.
Hence, columns 70672, 1014006 and 1014015 should not be visible.
Is that possible?
Thanks in advance.
If you can add a helper column to your original data, you could do something like:
=COUNTIFS($C$2:$C$193,">0",$B$2:$B$193,B2)>4
And then use it as a filter in your pivot table:

New Column based on formula (Excel or Pandas)

[1]: https://i.stack.imgur.com/ESmJ4.png
I want to create new column based on formula on values of other columns. Col-C is the most important and Col-A is the least. Need a formula in excel or pandas to get result as in image. Any help is much appreciated.
First forward fill all mising values and then select last column by position by iloc:
df = pd.read_excel('file.xlsx')
df['Result']= df[['ColA','ColB','Colc']].ffill(axis=1).iloc[:, -1]
This formula checks whether the cell in the column is empty one by one, and returns the value of the first non-blank cell from C to A. If it finds no data, the cell remains empty.
=IF(ISBLANK(C1);IF(ISBLANK(B1);IF(ISBLANK(A1);"";A1);B1);C1)
Maybe it's not too elegant, but it works - you fill null values with each column's values, one by one, starting with the most important.
import pandas as pd
df = pd.read_excel('....xlsx')
df['Result']=df['Result'].fillna(df['ColC'])
df['Result']=df['Result'].fillna(df['ColB'])
df['Result']=df['Result'].fillna(df['ColA'])

Excel: Search Series of Values from Large Table

I have a large Excel table (with circa 9133 rows) which contains 4 columns. On a separate column, i have a series of values (300 cells to be exact) which i wanna search on the larger table and return the rows which have those values in the first column. What is the simplest way to achieve this instead of applying the filter and having to select the values manually?
You can Use INDEX, MATCH formula.
=INDEX($B$3:$E$7,MATCH($G3,$B$3:$B$7,0),COLUMNS($B$3:C$3))
As screenshot enter formula in H3 cell and drag and drop both down and right.
You can use VLOOKUP to get this. Assuming your original list is in A2:D9134
and your shorter list is in G1:G300,
in the next column write
=VLOOKUP(G1, $A$2:$D$9134, 2, false)
in subsequent columns,use the same formula,but change 2 to 3 or 4.
You should get all the results.
If you want to show blanks where no match is found, use IFERROR().

Resources