how to update a values in hashmap - hashmap

i have stored a Serialno, name, price, quantity in a dynamic listview using hashmap.
something like this.
sno name price quantity
1 xyz 1 2
2 xys 2 2
3 xxx 3 3
I am deleting the element on a button click. But when i delete the element of first row the serial number of the first row remains same(2). I want to auto update the serial number such that the serial number(2) becomes 1 and serial number 3 becomes 2.
Pls anybody tell me how to do it.

Related

Trying to automate the numbering of Excel rows, but only semi sequentially, based on conditions

I'm trying to get a system set up on a data compilation sheet in excel. Going in and adding all the new information, and then deleting the old information has become extraordinarily tedious. I'll type out what I'm trying to accomplish, as an example.
A
B
C
Name
Date
Desired AutoNumber
Item 1
01/17/23
1
Item 1
01/17/23
1
Item 1
01/17/23
1
Item 1
01/06/23
2
Item 1
01/02/23
3
Item 1
01/02/23
3
Item 2
01/17/23
1
Item 2
12/24/22
2
Item 2
12/16/22
3
Item 2
11/18/22
4
Item 3
01/16/23
1
Item 3
01/16/23
1
Item 3
01/13/23
2
Item 3
01/11/22
3
Item 3
01/08/23
4
Item 3
12/26/22
5
Item 3
12/26/22
5
Wanting to use this format, as the most recent 5-7 dates per item are needed to remain. (This is for an online games' external assistant system)
What I've found either only numbers the rows based on item name, or based on the dates per item name, which isn't what I'm trying to make happen. What I've used so far is:
=countif($A$2:A2,A2) (which numbers based on item name) or
=countifs($A$2:A2,A2, $C$2:C2, C2) (which numbers based on the dates per item name, which is closer to what I'm looking for, but not in the right format)
By also adding in offset, it does the same thing.
=countif(offset($A$2:A2,0,0),A2)
I'm not sure if there's even a way to number it the way I'm looking to, since it's not numbering within a specified date parameter. I've been trying to do this without using a macro, since the information is going into a larger database, and certain information can't be deleted. Is there a way to do this using a formula?

Excel Vlookup to loop through values until Value is not 0

I have this data,
Roots data
ID Amount
1 *Blank*
1 10
2 20
3 30
transactions data
ID BID
1 ?
2 ?
3 ?
I vlookup the ID into a different sheet to find the Amount for a particular ID. Butt its current only displaying the Amount at the first instead of the ID.
I am using: =vlookup(A2,'Roots data'!F2:G1855,2,FALSE) at the moment.
Give this a try:
=INDEX('Roots data'!$G$2:$G$1855,MATCH(1,INDEX(('Roots data'!$F$2:$F$1855=A2)*('Roots data'!$G$2:$G$1855<>"")*('Roots data'!$G$2:$G$1855<>0),),0))
EDIT: Formula will now ignore results that are 0 as well as blanks.

In Excel how do subtract values from list table when I preform a transaction?

If I have two tables where I have list of things in 1 table and the other table serves as a transaction table. But every time I do a transaction the value of units in the transaction should be subtracted from the lists table. Can anyone please help?
Let's say table 1 looks like this:
A B C
1 Item Start Value Current Value
2 ---- ----------- -------------
3 1 20
4 2 100
5 3 95
and table 2 has transactions recorded as a list of Item numbers in column E and associated value movements in column F, then the formula in C3 should be:
=B3-SUMIF(E:E,A3,F:F)
This formula can then be copied down for the other entries in table 1

Excel: Return a single value based on two references

I have two values that a person would enter information for in column B:
Spreadsheet Name: Info
A B
1 Level 2
2 Class Class 2
In a second spreadsheet within the Workbook, i have a data spreadsheet with various tables.
So when a person enters information in !InfoB2 data validation drop down, it would return the name of the table the formula should use to search for the value in the Data table that's level is related to !InfoB2.
Spreadsheet Name: Data
Table Name: Class 1
A B
1 Level BAB
2 --------------------
3 1 8
4 2 3
Table Name: Class 2
A B
1 Level BAB
2 --------------------
3 1 2
4 2 7
So when someone enters Level: 2, and Class2, i would like it to return the value in the BAB column, how can i do this?
Edit
As ghetto as this is, it feels like it's on the right track, however it's returning #VALUE!
VLOOKUP(B1,VLOOKUP(B2,Class,2,FALSE),2,FALSE)
Table Class
Table Name: Class
A B
1 Class Name Table Name
2 Class 1 Class1Table
3 Class 2 Class2Table
You could try the following formula:
=INDEX(INDIRECT(B2&"[#All]"), MATCH(B1,INDIRECT(B2&"[[#All],[Level]]"),0), 2)
This takes the value of B2 (Class2 note I removed the space since table names can't contain spaces) and concatenates it with [#All] so you get: Class2[#All] (this is the table reference). INDIRECT converts the text into a valid range.
INDIRECT(B2&"[[#All],[Level]]") similarly gives the range Class2[[#All],[Level]].
MATCH(B1,Class2[[#All],[Level]],0) gives the row number in which the value in B1 is found (i.e. gives the row in which 2 is found, meaning the result is 4)
=INDEX(Class2[#All], 4, 2) then returns the value from range Class2[#All] in the 4th row and 2nd column.
If I understand correctly you will want to use INDIRECT and/or the structured reference syntax for this one.
I don't have access to Excel at the moment so I can't check to see if this would work. I'll update this answer once I try some stuff out.

Excel - Finding Max value in a column

I have an Summary sheet set up data set up as follows-
Cat A Cat B Cat C Cat D
Name 1 0 0 0 0
Name 2 2 3 2 2
Name 3 2 2 2 2
Name 4 3 2 2 3
Name 5 2 3 2 3
I also then have separate tabs for each of Name1 through to Name 5.
The summary sheet contains the maximum values for each category from each tab. So the Cell at Cat A Name 1 should show the maximum value on Sheet(Name1) in the Cat A column.
So far so good. However each tab may not contain the same categories, so therefore I would like teh summary sheet to check the maximum value in each column by doing a search on the Cat name.
So far I have this-
=MATCH(Overview!S$1,Name1!$C$1:$V$1,0)
Which returns the column number with the right Category, in this case 13. So I can find the right column. What I am struggling with is to now find the maximum value in the column.
Can anyone help?
Thanks
IAssuming your search range goes to row 1000:
=MAX(INDEX(Name1!$C$2:$V$1000,0,MATCH(Overview!S$1,Name1!$C$1:$V$1,0)))
The 0 Row argument in Index means to select the entire column.
The Offset function is your key here.
After you've got the value from the match, you can pass it to the offset to get the correct column.
So, for example, you probably want something like:
=Max(Name1!$C1:$C2000)
But you don't know whether you should use the C column or the D column or whatever, in this case, it was 13, so is that the P column? (c=3, the match was 13 so 3+13 = 16 = P?), so I think you want something like this:
=Max(Offset(Name1!$C$1:$C$2000, 0, [result of your match expression] - 1))
Here's an example of what I think you want in GoogleDocs:
https://docs.google.com/spreadsheet/ccc?key=0Ai45AJPc2AWMdGRlZXNIdlZBaHJxc01qVlJWa1N1WXc

Resources