I have the following list
List for Users to select based on their choices, there should be a calculated formula between the Current Month versus the monthly period they indicated that the project would start to return a Tracking Status of "On Track", "Delayed" or "N/A". Could anyone please help me with the formula?
Tracking Result
In Excel this formula would work as: '=IF(AND(JUSTIFICATION="Not Started",MONTHLY PERIOD-5<CURRENT MONTH),"Delayed",IF(AND(CLEAR="Not Started",MONTHLY PERIOD-4<CURRENT MONTH),"Delayed",IF(AND(CONTRACT="Not Started",MONTHLY PERIOD-3<CURRENT MONTH),"Delayed",IF(AND(PO="Not Started",MONTHLY PERIOD-2<CURRENT MONTH),"Delayed",IF(AND(BILLING="Not Started",MONTHLY PERIOD-1<CURRENT MONTH),"Delayed","On Track")))))
or
Excel formula
Please following steps:
1.Create the below columns in the list
Period: Number
Justification: Choices
Clear: Choices
Contract: Choices
PO: Choices
Billing: Choices
First period with Spead: Number
Overall Execations Status: Calculated (calculation based on other columns)
2.Use the Formula:
=IF(AND([Justification]="Not Started",[First period with Spead]-5<[Period]),"Deplayed",IF(AND([Clear]="Not Started",[First period with Spead]-4<[Period]),"Deplayed",IF(AND([Contract]="Not Started",[First period with Spead]-3<[Period]),"Deplayed",IF(AND([PO]="Not Started",[First period with Spead]-2<[Period]),"Deplayed",IF(AND([Billing]="Not Started",[First period with Spead]-1<[Period]),"Deplayed","On Track")))))
3.Click on All Items >> Edit current view
4.On the Edit View page, scroll to "Group By" section
Related
I have the following dataset in tibco spotfire:
Original data
I want to bring the amount of item in the beginning of each month for each row and get the following result:
Image
Any suggestions?
The dataset looks like this: I have got maximum amount for previous month, but I want to get the amount of the last day of the previous month.
enter image description here
I could do it via an intermediate column (as Spotfire's OVER does not accept expressions).
First calculate the year and month like this:
(assuming the format of your date is known and stable)
[YearMonth] is :
Integer(Concatenate(Substring(String([Date]),7,4),Substring(String([Date]),4,2)))
then your [Previous Month] is:
Max([Amount]) over (Intersect(Previous([YearMonth]),[BRANCH],[CLASS]))
and your [Diff] is:
[Amount] - [Previous Month]
Revised after comment 19 August:
change the Max to ValueForMax and insert the day of the month, so that the formula calculates the value
corresponding to the last recorded day for that month:
ValueForMax(DayOfMonth([Date]),[Amount]) over (Intersect(Previous([YearMonth]),[BRANCH],[CLASS]))
Revised after comments 6 October:
if Substring(..) is not available, here is an alternative solution:
Create a new column (to make the expressions understandable): [StringMonth] as:
If(LongInteger(Month([Date]))>10,String(LongInteger(Month([Date]))), Concatenate('0',String(LongInteger(Month([Date])))))
Then calculate your [YearMonth] as:
Integer(Concatenate(Year([Date]),[StringMonth]))
I am trying to extract some data out of a large table of data in Excel. The table consists of the month, the agent's name, and either a 1 if they made a sale or a 0 if they did not.
What I would like to do is plug in a Month value into one cell, then have it spit out a count of how many agents made their first sale that month.
Sample Data and Input Output area
I found success by creating a secondary table for processing a minif and matching to agent name, then countif in that table's data how many sales months matched the input month. However I would like to not have a secondary table and do this all in one go.
=IF(MINIFS(E2ERawData[Date Group],E2ERawData[Agent],'Processed Data'!B4,E2ERawData[E2E Participation],1)=0,"No Sales",MINIFS(E2ERawData[Date Group],E2ERawData[Agent],'Processed Data'!B4,E2ERawData[E2E Participation],1))
=COUNTIFS(ProcessedData[Month of First E2E Sale],H4)
Formula in column F is:
=MAX(0;COUNTIFS($A$2:$A$8;E3;$C$2:$C$8;1)-SUM(COUNTIFS($A$2:$A$8;"<"&E3;$C$2:$C$8;1;$B$2:$B$8;IF($A$2:$A$8=E3;$B$2:$B$8))))
This is how it works (we'll use 01/03/2022 as example)
COUNTIFS($A$2:$A$8;E3;$C$2:$C$8;1) This counts how many 1 there are for the proper month (in our example this part will return 2)
COUNTIFS($A$2:$A$8;"<"&E3;$C$2:$C$8;1;$B$2:$B$8;SI($A$2:$A$8=E3;$B$2:$B$8)) will count how many 1 you got in previous months of the same agents (in our example, it will return 1)
Result from step 2, because it's an array formula, we sum up using SUM() (in our example, this return 1)
We do result from step 1 minus result from step 3 (so we get 1)
Finally, everything is inside a MAX function to avoid negative results (February would return -1 because there were no sales at all and agent B did a sale on January, so it would return -1. To avoid this, we force Excel to show biggest value between 0 and our calculation)
NOTE: Because it's an array formula, depending on your Excel version maybe you must introduce pressing CTRL+ENTER+SHIFT
If one has got access to the newest functions:
=LET(X,UNIQUE(C3:C9),VSTACK({"Month","Total of First time sales"},HSTACK(X,BYROW(X,LAMBDA(a,SUM((C3:C9=a)*(MINIFS(C3:C9,D3:D9,D3:D9,E3:E9,1)=C3:C9)))))))
I'm on my research project to find the last price for a security at IPO and 20 trading days after for 5 years. I use =BDP($A$1, "EQY_INIT_PO_DT") to get the IPO trading date and its fine. The issue happened when I use =BADDPERIODS(A2, "NumberOfPeriods", "20", "CDR", "ID JA", "BusDayAdj", "1") it still include the non trading days. So when I use =BDH($A$1, "PX_LAST", A6, A6) it shows #N/A N/A. I guess =baddperiods() function outputted the non trading days and the =bdh() unable to get the price. How can I obtain the correct 20 trading days (exclude weekends and any public / non-trading days) after a certain date?
Reference:
A1= Company Ticker
A2= IPO Date
A3= =BADDPERIODS(A2, "NumberOfPeriods", "20", "CDR", "ID JA", "BusDayAdj", "1")
...
A6= =BADDPERIODS(A5, "NumberOfPeriods", "20", "CDR", "ID JA", "BusDayAdj", "1")
The BDH() worksheet function has optional parameters that specify how the timeseries data is returned. These come after the start and end date parameters. One of these allows a calendar to be specified. Specifying a calendar prompts Bloomberg to look back and find the closest (but earlier) 'good' value for the date requested.
The short, but inefficient answer is to use this formula in cell B6:
=BDH($A$1,"PX_LAST",A6,A6,"CDR","JA")
It is inefficient because each cell is making a relatively expensive call to Bloomberg for one day's history. It is better to pull back all the history from the start date to today in a single call, and put it in some spare columns. Then look your date up (using INDEX/MATCH) to find the price value.
I am having problems building two formulas with 4 conditions to return the Sum of Squares and the Standard Deviation from a dataset:
First two conditions. Located in data validation cells outside of the data range:
KPI
Period of time
Second two conditions:
Campaign Name
Player Group = Target Vs Control
The basic idea is that a player will generate a value for a series of KPIs over different periods of time (7,14 and 28 days). Therefore the structure of the data sets will be defined as:
Columns:
Player ID
Campaign ID
Player Group: Target or Contol
Rest of the columns: Combinations of a KPI and a given period of time.
The objective is to calculate the SD and SUMSQ of a subset of data based on the following restrictions: the KPI, the period of time, the Campaign ID and the Group of the player. As the dataset is built, the conditions "KPI" and "Period" will determine the column from which the data is going to be taken and the conditions "Campaign" and "Player Group" will act as row filters.
I have tried the following... with little hope, since I don't even expect that an array formula can be nested in an "if" function:
=IF(AND(Test!$J$9="STAKES",Test!$M$9=7),STDEV.S(IF(DATA!$A$2:$A$9237=Test!$B$13,DATA!$AD$2:$AD$9237,0)))
Can someone come up with a solution, please?
It looks like you are getting close. The "0" is where your next "if statement" will go.
So if the first "AND" condition is false the next "if statement" in the position where "0" was will execute.
Instead of $J$9="STAKES" and $M$9=7 I changed it to $J$9="TACOS" and $M$9=9000.
=IF(AND(Test!$J$9="STAKES",Test!$M$9=7),STDEV.S(IF(DATA!$A$2:$A$9237=Test!$B$13,DATA!$AD$2:$AD$9237,IF(AND(Test!$J$9="TACOS",Test!$M$9=9000),STDEV.S(IF(DATA!$A$2:$A$9237=Test!$B$13,DATA!$AD$2:$AD$9237,0))))))
I'm using SUMIFS function to compute commissions based on invoice data. One of the fields I need to check has a product code with many meanings based on position of the data within the code.
For example, product code of "NCH - R - OTF - CH" indicates owner of product is NCH, R meaning Retail, OTF meaning Off the Shelf, and CH meaning commission on Chinese Herbs.
I need to add additional condition in my current SUMIFs function to check if the product code in column āDā has commission code of "CH". I need to only check the last two characters of the product item code.
=SUMIFS('Invoice Items'!$M$2:$M$30000,'Invoice Items'!$F$2:$F$30000,"Product",'Invoice Items'!$A$2:$A$30000,"=Paid")
You can add
'Invoice Items'!$D$2:$D$30000, "*CH"
as a set of criteria to SUMIFS
it will look like:
=SUMIFS('Invoice Items'!$M$2:$M$30000,'Invoice Items'!$F$2:$F$30000,"Product",'Invoice Items'!$A$2:$A$30000,"=Paid",'Invoice Items'!$D$2:$D$30000, "*CH")