Automatically update date and time data in column A when updating data in the range from B to Z.
Suppose I have a table of data located in the range B1:Z100, when I update the data in cell B1, the date and time in A1 will automatically update, and will automatically lock that data cell every time I press enter in case I accidentally pressed the wrong button. And when I update the data in cell B1, when I press Enter, it will display a message board whether I want to update new data to replace the old data. If agree, then press yes, and data cell B1 will be update the new data, and in cell A1 will update the date and time of the latest update at the same time.
Hope everyone can help me, thank you so much.
Consider using the Worksheet_Change event. This will fire every time a change is made to the worksheet. In this sub, you can check for the row that was editted, and then you can ask the user the question about updating data. Here's the official documentation
initially, i use sumifs to generate daily report, but its problematic as our staffs have to change dates daily within the formula, i want a formula that can automatically pull out data for each day.
I already Tried today() function , but it i wont be able to save data for daily sheet, the second sheet shows exactly what i want using sumifs formula. is there any query formula that can pull out the data on daily basis? i already solved the weekly report using query formula.
here is a link to my google sheet
={QUERY(A1:I," select A, B, sum(D),sum(F),sum(H),sum(F)-sum(H) WHERE A =date '2021-08-02' and B is not null group by A,B order by sum(D) desc limit 1000 label A 'Dates',B 'Customers',sum(D) 'TOTAL RMB', sum(F) 'Total Naira',sum(H) 'Total Received',sum(F)-sum(H)'Net Balance' "); {" ","Total",sumif(A2:A,date(2021,8,2),D2:D),sumif(A2:A,date(2021,8,2),F2:F),sumif(A2:A,date(2021,8,2),H2:H),sumif(A2:A,date(2021,8,2),F2:F)-sumif(A2:A,date(2021,8,2),H2:H)}}
how can i possibly automatically generate daily report using query formula without having to manually edit the date daily
It seems that maybe you just need a cell reference where users can input any date then retrieve the desired results:
I've chosen J1, but you can have the user enter a date wherever you want:
WHERE A =date '"&TEXT(J1,"yyyy-mm-dd")&"'
This method does not required users to modify the formula, in fact you can even protect the formula from editing and let user edit J1 only (if necessary)
(Same thing for your SUMIF)
Formulas are recalculated frequently, you have to pass a constant date to it.
I am using an excel sheet which I have design looks like an excel calendar. The Outlook of this sheet is as under.
The 1 is representing the Time which I am getting from system using =time() function, while the No.2 is the date which I am getting from system using today(). I have written the formula using if for range C4:D21 which is working good. The formula is as under.
=IF(AND($C$3=K8,B4=K7),C4,IF(AND($C$3=K8,B5=K7),C5,IF(AND($C$3=K8,B6=K7),C6,IF(AND($C$3=K8,B7=K7),C7,IF(AND($C$3=K8,B8=K7),C8,IF(AND($C$3=K8,B9=K7),C9,IF(AND($C$3=K8,B10=K7),C10,IF(AND($C$3=K8,B11=K7),C11,IF(AND($C$3=K8,B12=K7),C12,IF(AND($C$3=K8,B13=K7),C13,IF(AND($C$3=K8,B14=K7),C14,IF(AND($C$3=K8,B15=K7),C15,IF(AND($C$3=K8,B16=K7),C16,IF(AND($C$3=K8,B17=K7),C17,IF(AND($C$3=K8,B18=K7),C18,IF(AND($C$3=K8,B19=K7),C19,IF(AND($C$3=K8,B20=K7),C20,IF(AND($C$3=K8,B21=K7),C21,IF(AND($D$3=K8,B4=K7),D4,IF(AND($D$3=K8,B5=K7),D5,IF(AND($D$3=K8,B6=K7),D6,IF(AND($D$3=K8,B7=K7),D7,IF(AND($D$3=K8,B8=K7),D8,IF(AND($D$3=K8,B9=K7),D9,IF(AND($D$3=K8,B10=K7),D10,IF(AND($D$3=K8,B11=K7),D11,IF(AND($D$3=K8,B12=K7),D12,IF(AND($D$3=K8,B13=K7),D13,IF(AND($D$3=K8,B14=K7),D14,IF(AND($D$3=K8,B15=K7),D15,IF(AND($D$3=K8,B16=K7),D16,IF(AND($D$3=K8,B17=K7),D17,IF(AND($D$3=K8,B18=K7),D18,IF(AND($D$3=K8,B19=K7),D19,IF(AND($D$3=K8,B20=K7),D20,IF(AND($D$3=K8,B21=K7),D21))))))))))))))))))))))))))))))))))))
This is a too long function which is only working for two columns I want to know the formula which will match the running time and date within the row date C3:I3 and time B4:B21 and then populate only concerned cell value within the K4 Cell where "False" is written. This formula is working good but I want to a shorter one. Thanks
Try below formula.
=INDEX(C4:G11,XMATCH(K7,B4:B11,-1,1),MATCH(K8,C3:G3,0))
Here XMATCH() parameter [match_mode] -1 means search next smaller time if time is not exactly same as Column B.
I have a pivot table on excel that automatically updates with values every day.
I have columns next to the pivot table for EACH DAY that grabs data from the updated pivot table using a simple formula, for example I11-V11.
However, when the date for today passes, i want the cell in the specific column for that date to change to a value i.e be fixed.
Is there a way that this could be done?
You want a snapshot of the data. Manually, you could copy and paste the data over itself with Paste Special > Values.
You can create a VBA macro for that, but the trigger for the macro would still have to be manual. Because if it is dynamic, once the header date is in the past, any formula will have already updated dynamically and yesterday's values will be gone.
So, either manually copy/paste values (or fire up the macro to do that), or add a date column to the data source, so a formula can associate a value with the correct date.
I have a spreadsheet which takes in certain parameters that I update every day. This is then inserted into a separate worksheet which holds all inserted data. I then use this data to take an average of the latest 5 entries to smooth out day to day variation: e.g.
=((B1*(100-(AVERAGE(Data!G$2:G$6))))/(343.805764))
When I insert a new data line, my formula updates to:
=((B1*(100-(AVERAGE(Data!G$3:G$7))))/(343.805764))
How can I prevent this update?
If you really need to "fix" a range - regardless of the default behaviour of Excel to change row-numbers if you insert new rows - try working with hard-coded ranges using INDEX
=((B1*(100-(AVERAGE(INDEX(Data!G:G,2):INDEX(Data!G:G,6)))))/(343.805764))