I have a list of numbers outputted from a review of PI (the number 3.1415926535897932384......)
It looks like this:
8850838032 0621312483 8327044318 1257233570 9958940293 1391776730 2923888859 5836058683 5192760238 4694561699 : 110000000001
9312900154 4838526183 9375914106 9846458403 5847003707 2451543553 9394699328 5157228504 5434270590 6509736487 : 110000000002
1284090545 3175919151 4159855781 3410862263 2549812643 7600394225 7109902021 0694219181 6542482795 7164656581 : 110000000003
1367977800 8915483236 6072599505 1466161901 1090687303 7608155585 3289637107 6490574006 0401938787 7258319674 : 110000000004
the list is in notepad (.txt file)
set of 10 digits per number
set of 10 numbers per line (10 digits per x 10 numbers per line)
reference number at the end ( the : 110000000001 : 110000000002 etc numbers)
Heres what I would like to do:
to remove the reference numbers first ( the : 110000000001 : 110000000002 etc numbers)
to break each set of 10 digits into 5 sets of 2 digit numbers, with each 2 digit number appearing on a seperate line of its own - 0621312483 to 06 21 31 24 83
from this I want to remove all 2 digit numbers over 26, so that I am only left with numbers from 01 - 26 - from 06 21 31 24 83 to 06 21 24
Seems might only be (have been?) required the one time so may be simpler to give the results:
6 21 24 4 18 12 23 2 13 23 5 2 16
12 1 6 3 0 7 24 22 4 5 9
12 9 5 10 22 25 26 0 25 9 20 21 6 21
13 0 15 5 14 16 19 1 10 3 8 15 7 6 4 1
(which don't end in the way indicated in the question) but the process was, assuming 8850838032 .... in A1:
Text to Columns with : as the delimiter, delete ColumnB.
="'"&TRIM(SUBSTITUTE(A1," ","")) in ColumnB copied down to B4.
Select ColumnB, Copy, Paste Special, Values over the top.
Text to Columns on ColumnB with Fixed width (first one character then every second).
Delete ColumnB.
Select B1:AY4, HOME > Styles - Conditional Formatting, New Rule..., Use a formula to determine which cells to format and Format values where this formula is true::
=B1>26
Format..., select a colour fill, OK, OK.
Select and Copy B1:AY4, say to AZ2, with Paste Special, Transpose.
Filter ColumnAZ by colour to select those coloured and blank out each selection then reselecting (Select All).
Repeat for ColumnsBA, BB and BC.
Tidy up to suit, eg by selecting AZ>BC, HOME > Editing - Find & Select, Go To Special, Blanks, select, Delete..., Shift cells up and then moving the contents of BA under AZ, etc and deleting what is not required.
.
Related
I have a list of numbers that I need to map across two columns. Column A has a list of numbers that repeat every 1400 records, eg.
A
B
C
12
12
12
428
12
6
12
12
14
14
14
14
12
12
12
12
12
14
14
14
I need to auto fill column B based on column C's data.
Column B should look like:
A
B
C
12
12
12
12
12
428
12
12
6
12
12
12
12
14
12
14
12
14
12
14
12
12
428
12
428
12
428
12
428
12
428
14
428
14
428
14
428
Is there a formula that I can use to accomplish this? Column C has multiple records that I need to map to column A.
Every time Column A "REPEATS", in this case when 12 comes around again, I want column B to populate with the next number. In this case 428 then 6 ect.
If the number of the repeated elements is always the same you can just divide the row number by that and index the elements in the C Column accordingly.
I.e. you have the sequence 12,12,12,12,12,14,14,14,14,14 which is of size 10. Then you can do this for the entries in column B:
=INDIRECT(ADDRESS(QUOTIENT(ROW()-ROW(B$1),N)+1,3))
Here ROW() is the row value of the cell. I supposed your numbers started from cell A1 and B1, otherwise you need to replace ROW(B$1) with the starting cell. The $1 prevents the 1 to increment when you drag the list. Then, you take the quotient of that value with N, where N is the size of the sequence, in your case it is 10. The quotient gives you the integer part of the division. To that number you need to add 1, since excel starts indexing from 1 and not from 0. Then you need to find the reference for the right address of the values you want to put in column B, this is done with ADDRESS(ROW_NUMBER,COLUMN_NUMBER), where COLUMN_NUMBER here is 3, since C is the third letter. (Change accordingly if you use a different column for the input) The ROW_NUMBER is the number we calculated. INDIRECT(ADDRESS) is a function that puts the value of the address that we got with the ADDRESS function.
This should work if your sequence of 12s and 14s is always of the same length. Otherwise, I suggest you leave excel and start using some programming language, such as python.
I have a form, thanks to user JamTay317, That lists data depending on folder number (bold number in form). I need to copy it for all 1500 folders (about 400 pages)
Form is divided on 4 labels on a page for easier printing
form overview
Form get it's folder number (nr teczki) from list with all folders from another sheet called "lista teczek":
list of folders
For first 4 folder numbers I use formula:
A2='lista teczek'!A1
J2='lista teczek'!A2
A21='lista teczek'!A3
J21='lista teczek'!A4
When I copy whole page underneath it increments by 36 (number of rows between)
A38='lista teczek'!A37
J38='lista teczek'!A38
A57='lista teczek'!A39
J38='lista teczek'!A40
Instead of A5, A6, etc.
Is there any way to override excel's incrementation to force it to use consecutive numbers? Or at least formula which will make it easier to follow folders list?
So I would use offset() to get the correct position
=A2=OFFSET('lista teczek'!$A$1;ROW(A1)-INT(ROW(A1)/36)*36+4*INT(ROW(A1)/36)-1;0)
So this will offset from A1 in the list sheet.
Below are row numbers a resultant lookup row numbers
Note the formula I used in the offset has an extra "-1" as this is an OFFSET so to get 1 from 1 we need to offset by 0
1 1
2 2
3 3
4 4
37 5
38 6
39 7
40 8
73 9
74 10
75 11
76 12
109 13
110 14
111 15
112 16
145 17
146 18
147 19
----LOGIC--- (edit)
So the idea is that you work out the occurrence you are on. Int(row()/36) gives us this. For example
int(1/36)=0
Int(363/36)=10
First part gives us the offset from the start of the occurrence
3-int(3/36)*36=3
378-Int(363/36)*36=3
Second part give the total of the previous occurrence
4*int(3/36)=0
4*Int(363/36)*36=40
So you need to change the 36 to the gap between the occurrences and the 4 to the length of occurrences Not sure if that helps to explain
Based on the picture that I have uploaded, how should I create it in Excel with three different level?
Thanks!
Grades Bins Frequency Intervals
9 9 0 0-9
6 19 2 10-19
1 29 1 20-29
7 39
5
5
2
4
6
2
10
11
15
18
20
21
23
25
26
27
29
To create a histogram in Excel you would use FREQUENCY
This is no diferent in using something such as the groups for colours.
The difference is that you would use an IF statement referring to the group column.
=FREQUENCY(IF(GroupRange="GroupName",DataRange),BinRange)
So if your data was in B2:B40 and your group delimiter in C2:C40 and your bin sizes was in E2:E12 you would use a formula such as:
=FREQUENCY(IF($C$2:$C$40="B",$B$2:$B$40),$E$2:$E$12)
Then pop each group next to each other changing the "B" (or whatever) as you go.
Hopefully this will get oyu on the right track.
(note: with FREQUENCY you must array enter into all cells in line with the bin range... [ctrl]+[shift]+[enter])
I am currently using the following formula (i.e. =IF(A9<>"0";COUNTIF(A9:L9;"0");" ")) in a range "Jan to Dec" to get the number of zeros from left to right only and it is giving me 3 for 1st row, second & third rows as well. But what I want is, it should count zeros only from left to right (only in first and third cases). Only in second case it should not count zeros, because they are coming after some value, but it should count in 1st case and 3rd cases.
Can someone please help me with the formula?
Jan Feb Mar Apr May Jun Jul
0 0 0 5 10 15 20
10 15 20 25 0 0 0
50 0 0 0 30 35 40
Per comment conversation with OP vbalearner, assuming your data setup and desired results look something like this:
Then the formula in the cell and copied down is:
=IF(A9=0,IFERROR(MATCH(TRUE,INDEX(A9:L9>0,),0)-1,12),IF(B9=0,IFERROR(MATCH(TRUE,INDEX(B9:L9>0,),0)-1,12),0))
Shortened version:
=IF(OR(A9=0,B9=0),IFERROR(MATCH(TRUE,INDEX(IF(A9=0,A9:L9,B9:L9)>0,),0)-1,12),0)
With a helper row inserted at the top (may be hidden) with month numbers (1 for Jan etc) and assuming Jan is then in A2 please try:
=MIN(IF(A3:G3<>0;A$1:G$1))-1
entered with Ctrl+Shift+Enter and copied down to suit.
I'm sorry if this has been answered. I've been searching around for awhile now.
I have a times series dataset that I need to perform calculations on based on the previous x time (last hour,day, etc).
My issues is that I don't know how to run these calculations since the time deltas are not standardized.
Example:
Column A - Time (in seconds lets say)
Column B - Value
Time Value Result(5)
01 3 0
02 5 3
04 4 8
07 8 9
09 6 12
13 4 6
14 4 10
15 1 8
22 9 0
33 7 0
How could I return the Result(5) column by summing the last 5 seconds from that one instance (row) (not including it)?
Thank you.
EDIT:
To clear up what I'm trying to do:
1) Find the previous 5 secs of data using column A and return that range of rows
2) Using that range of rows for the 5 previous secs, sum column B
3) Output in Column C (formula)
The following formula should do what you need (paste into C2 and drag down):
=SUMIFS($B$2:$B$11,$A$2:$A$11,">="&A2-5,$A$2:$A$11,"<"&A2)
Where YourTime is the time in the row you wish to look back and sum over.
I've tested and it works for the data you provided - expand the ranges as appropriate.