Looking to index some data based on multiple criteria, then index further data based on the 1st indexed data results

freeb1893

Board Regular
Joined
Jul 30, 2012
Messages
233
Office Version
  1. 365
Platform
  1. Windows
I have a set of data / records regarding changes to a list of tickets

  • My ticket #’s are in Column B
  • My change date/time stamp is in Column O
  • The old value of that data point that changed is in Column Q
  • The new value of that data point that changed is in Column R
  • Some records indicate a particular ticket went to “External Block” status in Column R
  • Other records in this data set indicate a particular ticket went from “External Block” status to some other status in Column Q

I’d like to do some indexing of this data

1st set of indexing:

To start, I’d like to index all the tickets where a change record exists where the new value has changed to “External Block”, identified via that value being found in Column R, in another column I’d like to index the change data/time stamp from Column O that’s associated to the record of when the new value was changed to “External Block”

2nd set of indexing:

Then with that data I just indexed, I’d like to also index IF another record is found that matches the ticket #, and has a record for the new value changed to External Block, and is after the change date/time stamp I just indexed for when a record changed to External Block, but before the next change date/time stamp I just indexed for when a record change to External Block (if applicable – if there is another record of that for the ticket number – won’t always be applicable), where the record changed from External Block (via Column Q) to some other status

Logic considerations with the 2nd set of indexing, sometimes there may be a record for a ticket moving to External Block priority status indexed via my 1st set of indexing, but not a record for it being moved from External Status afterwards at some point to another priority status, where I’d want n/a returned in those cases for the 2nd indexing results

Also logic considerations-wise, I may have multiple cases of External Block being set on a ticket, as well

Anyone able to help me put this into indexing formulas? Thanks in advance!

Here is some sample data:
LABELPKEYNUMSUMMARYPNAMEPNAME_1'STORYPOINTS'NUMBERVALUECREATEDUPDATEDRESOLUTIONDATEREPORTERASSIGNEECURRENT STATUSCHANGE AUTHORCHANGE DATEFIELD CHANGEDOLDSTRINGNEWSTRING
EDGE-13901StoryTrivialStory Points
1​
7/27/2022 12:51:16​
statusGathering RequirementsCancelled
EDGE-13901StoryTrivialStory Points
1​
7/27/2022 12:52:30​
statusCancelledCancelled
EDGE-13901StoryTrivialStory Points
1​
11/8/2022 07:55:42​
statusOpenCancelled
EDGE-13904StoryMinorStory Points
6/30/2022 07:30:21​
statusPre-GroomingCancelled
EDGE-13905StoryMajorStory Points
7/6/2022 09:18:07​
priorityMajorExternal Block
EDGE-13905StoryMajorStory Points
7/18/2022 08:03:37​
priorityExternal BlockMajor
EDGE-13905StoryMajorStory Points
7/18/2022 12:55:47​
statusGathering RequirementsCancelled
EDGE-13906StoryMinorStory Points
11/8/2022 07:56:05​
statusOpenCancelled
EDGE-13907StoryMinorStory Points
7/19/2022 09:16:50​
statusGathering RequirementsCancelled
EDGE-13908StoryMinorStory Points
7/25/2022 11:00:25​
statusGathering RequirementsCancelled
EDGE-13908StoryMinorStory Points
7/26/2022 13:33:00​
statusCancelledCancelled
EDGE-13908StoryMinorStory Points
7/27/2022 10:41:39​
statusCancelledCancelled
EDGE-13908StoryMinorStory Points
7/27/2022 12:57:57​
statusCancelledCancelled
EDGE-13909StoryMajorStory Points
7/5/2022 13:29:16​
statusMerge DoneCancelled
EDGE-13910StoryMinorStory Points
7/11/2022 09:15:54​
statusGathering RequirementsCancelled
EDGE-13911StoryMinorStory Points
8/2/2022 12:56:23​
statusOpenCancelled
EDGE-13952StoryCriticalStory Points
7/18/2022 09:24:14​
statusGathering RequirementsCancelled
EDGE-13987StoryExternal BlockStory Points
7/18/2022 09:27:52​
priorityCriticalExternal Block
EDGE-13987StoryExternal BlockStory Points
7/28/2022 11:52:57​
statusGathering RequirementsCancelled
EDGE-13998StoryCriticalStory Points
7/18/2022 09:26:01​
statusGathering RequirementsCancelled
EDGE-14003StoryCriticalStory Points
7/18/2022 09:26:27​
statusGathering RequirementsCancelled
EDGE-14008StoryMajorStory Points
45103.47​
6/26/2023 11:14:24​
statusReady for ReleaseCompleted
EDGE-14009StoryCriticalStory Points
44797.54​
8/24/2022 12:53:57​
statusReady for ReleaseCompleted
EDGE-14026StoryMajorStory Points
45103.47​
7/19/2022 13:17:09​
statusReady for Code ReviewCancelled
EDGE-14026StoryMajorStory Points
45103.47​
6/26/2023 11:11:27​
statusReady for ReleaseCompleted
EDGE-14027StoryMajorStory Points
44771.38​
7/29/2022 09:12:41​
statusReady for ReleaseCompleted
EDGE-14028StoryMajorStory Points
8/8/2022 09:08:29​
statusGathering RequirementsCancelled
EDGE-14035StoryMajorStory Points
44770.49​
7/28/2022 11:52:22​
statusReady for ReleaseCompleted
EDGE-14038StoryMajorStory Points
44768.56​
7/26/2022 13:32:41​
statusReady for ReleaseCompleted
EDGE-14041StoryMajorStory Points
45103.46​
6/26/2023 11:03:52​
statusReady for ReleaseCompleted
EDGE-14042StoryMajorStory Points
45103.46​
6/26/2023 11:01:15​
statusReady for ReleaseCompleted
EDGE-14043StoryMajorStory Points
45103.47​
6/26/2023 11:11:44​
statusReady for ReleaseCompleted
EDGE-14049StoryMajorStory Points
8/23/2023 14:14:05​
statusOpenCancelled
EDGE-14050StoryMajorStory Points
8/23/2023 14:12:31​
statusOpenCancelled
EDGE-14052StoryMajorStory Points
8/23/2023 14:22:06​
statusOpenCancelled
EDGE-14054StoryMajorStory Points
44862.51​
10/28/2022 12:16:55​
statusReady for ReleaseCompleted
EDGE-14055StoryMajorStory Points
8/24/2023 18:21:42​
statusOpenCancelled
EDGE-14056StoryMajorStory Points
8/16/2022 14:19:17​
statusOpenCancelled
EDGE-14061StoryMinorStory Points
2/13/2023 10:48:28​
statusOpenCancelled
EDGE-14064StoryMinorStory Points
44775.42​
8/2/2022 09:58:17​
statusReady for ReleaseCompleted
EDGE-14065StoryCriticalStory Points
8​
45103.46​
6/26/2023 11:07:30​
statusReady for ReleaseCompleted
EDGE-14074StoryMajorStory Points
3​
9/22/2022 13:58:41​
priorityMajorExternal Block
EDGE-14074StoryMajorStory Points
3​
10/19/2022 09:06:51​
priorityExternal BlockMajor
EDGE-14074StoryMajorStory Points
3​
10/19/2022 10:18:28​
statusDevelopmentCancelled
EDGE-14102StoryMajorStory Points
8/23/2023 14:23:42​
statusOpenCancelled
EDGE-14110StoryMajorStory Points
5/24/2023 09:01:36​
statusOpenCancelled
EDGE-14111StoryMajorStory Points
8/23/2023 14:25:18​
statusOpenCancelled
EDGE-14125StoryCriticalStory Points
8/24/2023 18:11:10​
statusOpenCancelled
EDGE-14139StoryCriticalStory Points
5​
44845.59​
10/11/2022 14:02:54​
statusReady for ReleaseCompleted
EDGE-14146StoryCriticalStory Points
45103.47​
6/26/2023 11:12:17​
statusReady for ReleaseCompleted
EDGE-14173StoryCriticalStory Points
44788.6​
8/15/2022 14:21:57​
statusReady for ReleaseCompleted
EDGE-14180StoryCriticalStory Points
44790.53​
8/17/2022 12:49:01​
statusReady for ReleaseCompleted
EDGE-14181StoryCriticalStory Points
44782.63​
8/9/2022 15:07:30​
statusReady for ReleaseCompleted
EDGE-14188StoryCriticalStory Points
44782.68​
8/9/2022 16:16:03​
statusReady for ReleaseCompleted
EDGE-14199StoryMajorStory Points
45103.47​
8/23/2022 08:25:52​
priorityMajorExternal Block
EDGE-14199StoryMajorStory Points
45103.47​
8/23/2022 08:31:09​
priorityExternal BlockBlocker
EDGE-14199StoryMajorStory Points
45103.47​
8/23/2022 08:31:23​
priorityBlockerExternal Block
EDGE-14199StoryMajorStory Points
45103.47​
9/1/2022 16:17:50​
priorityExternal BlockMajor
EDGE-14199StoryMajorStory Points
45103.47​
6/26/2023 11:13:10​
statusReady for ReleaseCompleted
EDGE-14215StoryMinorStory Points
44816.39​
9/12/2022 09:14:36​
statusReady for ReleaseCompleted
EDGE-14222StoryCriticalStory Points
44791.35​
8/18/2022 08:22:08​
statusReady for ReleaseCompleted
EDGE-14239StoryCriticalStory Points
44798.37​
8/25/2022 08:48:34​
statusReady for ReleaseCompleted
EDGE-14240StoryCriticalStory Points
3​
10/10/2022 17:38:13​
priorityCriticalExternal Block
EDGE-14240StoryCriticalStory Points
3​
10/12/2022 11:45:30​
priorityExternal BlockCritical
EDGE-14241StoryCriticalStory Points
44798.37​
8/25/2022 08:51:10​
statusReady for ReleaseCompleted
EDGE-14242StoryCriticalStory Points
8/26/2022 09:27:04​
priorityCriticalExternal Block
EDGE-14242StoryCriticalStory Points
9/19/2022 09:27:24​
priorityExternal BlockCritical
EDGE-14242StoryCriticalStory Points
10/3/2022 09:21:10​
statusDevelopmentCancelled
EDGE-14259StoryCriticalStory Points
44812.47​
9/8/2022 11:21:32​
statusReady for ReleaseCompleted
EDGE-14260StoryCriticalStory Points
44805.43​
9/1/2022 10:19:54​
statusReady for ReleaseCompleted
EDGE-14271StoryMajorStory Points
45103.45​
6/26/2023 10:41:43​
statusReady for ReleaseCompleted
EDGE-14286StoryCriticalStory Points
5​
44854.92​
10/20/2022 22:03:41​
Fix VersionEDGE Monthly October 2022 / COV Phase 1.16 Release -- 2022-10-20
EDGE-14286StoryCriticalStory Points
5​
44854.92​
10/20/2022 22:03:51​
statusReady for ReleaseCompleted
EDGE-14289StoryCriticalStory Points
8​
44854.92​
10/20/2022 22:04:43​
statusReady for ReleaseCompleted
EDGE-14289StoryCriticalStory Points
8​
44854.92​
10/20/2022 22:04:43​
Fix VersionEDGE Monthly October 2022 / COV Phase 1.16 Release -- 2022-10-20
EDGE-14292StoryCriticalStory Points
8/31/2022 13:50:30​
LinkThis issue relates to EDGE-14233
EDGE-14292StoryCriticalStory Points
8/31/2022 13:51:25​
summaryRevert Code Changes made in EDGE-14233 - Group to Group TransfersEDGE to Cloud - Revert Code Changes made in EDGE-14233 - Group to Group Transfers
EDGE-14292StoryCriticalStory Points
8/31/2022 15:22:19​
labelsE2C_Development
EDGE-14292StoryCriticalStory Points
9/2/2022 09:06:04​
LinkThis issue relates to EDGE-14301
EDGE-14292StoryCriticalStory Points
9/14/2022 17:09:45​
WorkflowJira Status Simplification POC V2EFM Story Workflow
EDGE-14292StoryCriticalStory Points
1/16/2023 11:02:32​
WorkflowEFM Story WorkflowEFM Story Workflow Beta
EDGE-14292StoryCriticalStory Points
3/14/2023 17:55:15​
Epic LinkEDGE-15288
EDGE-14292StoryCriticalStory Points
4/27/2023 16:07:54​
WorkflowEFM Story Workflow BetaEFM Story Workflow
EDGE-14292StoryCriticalStory Points
8/14/2023 10:04:25​
labelsE2C_DevelopmentE2C E2C_Development
EDGE-14292StoryCriticalStory Points
11/1/2023 14:18:32​
labelsE2C E2C_DevelopmentE2C E2C_Development WS2
EDGE-14305StoryCriticalStory Points
11/7/2022 16:39:16​
statusOpenCancelled
EDGE-14311StoryCriticalStory Points
3​
44854.92​
10/20/2022 22:05:14​
Fix VersionEDGE Monthly October 2022 / COV Phase 1.16 Release -- 2022-10-20
EDGE-14311StoryCriticalStory Points
3​
44854.92​
10/20/2022 22:05:14​
statusReady for ReleaseCompleted
EDGE-14319StoryCriticalStory Points
45040.69​
4/24/2023 16:35:27​
Fix VersionRLS_04.2023
EDGE-14319StoryCriticalStory Points
45040.69​
4/24/2023 16:35:33​
statusReady for ReleaseCompleted
EDGE-14336StoryMinorStory Points
10/10/2022 09:09:59​
priorityMinorExternal Block
EDGE-14336StoryMinorStory Points
10/19/2022 09:27:31​
priorityExternal BlockMinor
EDGE-14336StoryMinorStory Points
10/21/2022 14:06:07​
priorityMinorExternal Block
 

Excel Facts

What is the last column in Excel?
Excel columns run from A to Z, AA to AZ, AAA to XFD. The last column is XFD.
If at all possible, you should provide your table via the XL2BB add-in. After cleaning up a cut-and-paste operation from the html-based table, I managed to get some data to work with. I converted the entire table range into an official Excel table (with headers) and called this source table "Table4". This conversion then allows use of structured references so that table column headings can be used in formulas rather than referencing ranges based on cell addresses. It is not clear what you want to achieve by "indexing". I would interpret that operation to mean you want to create a new field (column), perhaps called "index1", and the field will contain a unique value so that each of those records can be referenced later. But I suspect you simply want to identify the relevant ticket #'s that satisfy certain criteria.

In the example below, I show how to extract a list of ticket #'s (PKEYNUM) satisfying the filter criterion described for the 1st indexing...this creates a list (an array) of ticket #'s where the [NEWSTRING] column contains "External Block". A simple FILTER function can be used to extract these ticket #'s, but because there may be multiple records where the same ticket # has "External Block" in the [NEWSTRING] column, I've wrapped FILTER with a UNIQUE function to trim down the list to only unique ticket #'s of interest. See the results spilled down from X4.

Then confusion sets in: I don't understand what is meant by...
...and is after the change date/time stamp I just indexed for when a record changed to External Block, but before the next change date/time stamp I just indexed for when a record change to External Block (if applicable – if there is another record of that for the ticket number – won’t always be applicable), where the record changed from External Block (via Column Q) to some other status
A formula in Z4 spills results of a FILTER/MATCH combination, where all records associated with the ticket #'s previously identified in X4# are shown. Could you refer to this list (Z4#) and explain what should be returned, please? If we take ticket EDGE-14199 as an example, we have 5 records shown, and 2 of them have [NEWSTRING]="External Block", but the timestamps ([CHANGE DATE]) are different. What should happen with this list? Similarly, what do you want to see for the other ticket #'s where multiple records are shown for each?
EDGE-141998/23/22 8:25:52External Block
EDGE-141998/23/22 8:31:09Blocker
EDGE-141998/23/22 8:31:23External Block
EDGE-141999/1/22 16:17:50Major
EDGE-141996/26/23 11:13:10Completed


MrExcel_20231113.xlsx
XYZAAAB
21st indexing2nd indexing
3PKEYNUMPKEYNUMCHANGE DATENEWSTRING
4EDGE-13905EDGE-139057/6/22 9:18:07External Block
5EDGE-13987EDGE-139057/18/22 8:03:37Major
6EDGE-14074EDGE-139057/18/22 12:55:47Cancelled
7EDGE-14199EDGE-139877/18/22 9:27:52External Block
8EDGE-14240EDGE-139877/28/22 11:52:57Cancelled
9EDGE-14242EDGE-140749/22/22 13:58:41External Block
10EDGE-14336EDGE-1407410/19/22 9:06:51Major
11EDGE-1407410/19/22 10:18:28Cancelled
12EDGE-141998/23/22 8:25:52External Block
13EDGE-141998/23/22 8:31:09Blocker
14EDGE-141998/23/22 8:31:23External Block
15EDGE-141999/1/22 16:17:50Major
16EDGE-141996/26/23 11:13:10Completed
17EDGE-1424010/10/22 17:38:13External Block
18EDGE-1424010/12/22 11:45:30Critical
19EDGE-142428/26/22 9:27:04External Block
20EDGE-142429/19/22 9:27:24Critical
21EDGE-1424210/3/22 9:21:10Cancelled
22EDGE-1433610/10/22 9:09:59External Block
23EDGE-1433610/19/22 9:27:31Minor
24EDGE-1433610/21/22 14:06:07External Block
freeb1893
Cell Formulas
RangeFormula
X4:X10X4=UNIQUE(FILTER(Table4[PKEYNUM],Table4[NEWSTRING]="External Block"))
Z4:AB24Z4=CHOOSECOLS(FILTER(Table4,ISNUMBER(MATCH(Table4[PKEYNUM],X4#,0))),2,15,18)
Dynamic array formulas.
 
Upvote 0
If at all possible, you should provide your table via the XL2BB add-in. After cleaning up a cut-and-paste operation from the html-based table, I managed to get some data to work with. I converted the entire table range into an official Excel table (with headers) and called this source table "Table4". This conversion then allows use of structured references so that table column headings can be used in formulas rather than referencing ranges based on cell addresses. It is not clear what you want to achieve by "indexing". I would interpret that operation to mean you want to create a new field (column), perhaps called "index1", and the field will contain a unique value so that each of those records can be referenced later. But I suspect you simply want to identify the relevant ticket #'s that satisfy certain criteria.

In the example below, I show how to extract a list of ticket #'s (PKEYNUM) satisfying the filter criterion described for the 1st indexing...this creates a list (an array) of ticket #'s where the [NEWSTRING] column contains "External Block". A simple FILTER function can be used to extract these ticket #'s, but because there may be multiple records where the same ticket # has "External Block" in the [NEWSTRING] column, I've wrapped FILTER with a UNIQUE function to trim down the list to only unique ticket #'s of interest. See the results spilled down from X4.

Then confusion sets in: I don't understand what is meant by...

A formula in Z4 spills results of a FILTER/MATCH combination, where all records associated with the ticket #'s previously identified in X4# are shown. Could you refer to this list (Z4#) and explain what should be returned, please? If we take ticket EDGE-14199 as an example, we have 5 records shown, and 2 of them have [NEWSTRING]="External Block", but the timestamps ([CHANGE DATE]) are different. What should happen with this list? Similarly, what do you want to see for the other ticket #'s where multiple records are shown for each?
EDGE-141998/23/22 8:25:52External Block
EDGE-141998/23/22 8:31:09Blocker
EDGE-141998/23/22 8:31:23External Block
EDGE-141999/1/22 16:17:50Major
EDGE-141996/26/23 11:13:10Completed


MrExcel_20231113.xlsx
XYZAAAB
21st indexing2nd indexing
3PKEYNUMPKEYNUMCHANGE DATENEWSTRING
4EDGE-13905EDGE-139057/6/22 9:18:07External Block
5EDGE-13987EDGE-139057/18/22 8:03:37Major
6EDGE-14074EDGE-139057/18/22 12:55:47Cancelled
7EDGE-14199EDGE-139877/18/22 9:27:52External Block
8EDGE-14240EDGE-139877/28/22 11:52:57Cancelled
9EDGE-14242EDGE-140749/22/22 13:58:41External Block
10EDGE-14336EDGE-1407410/19/22 9:06:51Major
11EDGE-1407410/19/22 10:18:28Cancelled
12EDGE-141998/23/22 8:25:52External Block
13EDGE-141998/23/22 8:31:09Blocker
14EDGE-141998/23/22 8:31:23External Block
15EDGE-141999/1/22 16:17:50Major
16EDGE-141996/26/23 11:13:10Completed
17EDGE-1424010/10/22 17:38:13External Block
18EDGE-1424010/12/22 11:45:30Critical
19EDGE-142428/26/22 9:27:04External Block
20EDGE-142429/19/22 9:27:24Critical
21EDGE-1424210/3/22 9:21:10Cancelled
22EDGE-1433610/10/22 9:09:59External Block
23EDGE-1433610/19/22 9:27:31Minor
24EDGE-1433610/21/22 14:06:07External Block
freeb1893
Cell Formulas
RangeFormula
X4:X10X4=UNIQUE(FILTER(Table4[PKEYNUM],Table4[NEWSTRING]="External Block"))
Z4:AB24Z4=CHOOSECOLS(FILTER(Table4,ISNUMBER(MATCH(Table4[PKEYNUM],X4#,0))),2,15,18)
Dynamic array formulas.
Perhaps I should have included an example of my output. Below is an example of the indexing I'm looking to result with. The first indexing are the 1st and 2nd columns, the 3rd column is my second set of indexing that'll be based on what I indexed with my 1st set of indexing in the 1st and second columns below.

Basically I want a list of tickets / records where there's a record for the ticket being moved to "External Block". There will be duplicate tickets / records in my 1st indexing results, because sometimes a ticket moved to External Block multiple times during it's lifecycle.

The 2nd set of indexing I'm trying to do is attempt to reconcile my 1st indexing results and identify when the ticket moved from External Block to another status (whenever that data is available) after it moved to External Block status. Sometimes there may not be a record of the ticket moving from External Block to another status, where I'd want n/a in those cases. I'd also like to ensure there's no erroneous indexing in the 3rd column by ensuring I only index a date/time when the ticket moved from External Block status if the data/time is after the date/time it moved to External Block

Here is an example of the output I'd be expecting with the indexing calculations:

via 1st set of indexingvia 1st set of indexingvia 2nd set of indexing based on the 1st set of indexing results
Ticket #Date/Time moved to External BlockDate/Time moved from External Block
EDGE-139057/6/2022 09:18:077/18/2022 08:03:37
EDGE-139877/18/2022 09:27:52n/a
EDGE-140749/22/2022 13:58:4110/19/2022 09:06:51
EDGE-141998/23/2022 08:25:528/23/2022 08:31:09
EDGE-141998/23/2022 08:31:239/1/2022 16:17:50
EDGE-1424010/10/2022 17:38:1310/12/2022 11:45:30
EDGE-142428/26/2022 09:27:049/19/2022 09:27:24
EDGE-1433610/10/2022 09:09:5910/19/2022 09:27:31
EDGE-1433610/21/2022 14:06:07n/a
 
Upvote 0
Thank you for the clarification. That second step is messier and I have a version that nearly reproduces your output...except for one result. I suspect that I do not completely understand all of the conditions for the 2nd step. On the following row, could you explain why "n/a" is the answer rather than 7/28/22 11:52:57, which follows the date/time for the "External Block" entry for that same Ticket #. Is it because the [NEWSTRING] is "Cancelled". You must be applying some other rule to exclude this one.
EDGE-139877/18/2022 09:27:52n/a
 
Upvote 0
Here is the source table used (it is called "Table4" and has been converted to an official Excel table):
MrExcel_20231113.xlsx
BOPR
3PKEYNUMCHANGE DATEFIELD CHANGEDNEWSTRING
4EDGE-139017/27/22 12:51:16statusCancelled
5EDGE-139017/27/22 12:52:30statusCancelled
6EDGE-1390111/8/22 7:55:42statusCancelled
7EDGE-139046/30/22 7:30:21statusCancelled
8EDGE-139057/6/22 9:18:07priorityExternal Block
9EDGE-139057/18/22 8:03:37priorityMajor
10EDGE-139057/18/22 12:55:47statusCancelled
11EDGE-1390611/8/22 7:56:05statusCancelled
12EDGE-139077/19/22 9:16:50statusCancelled
13EDGE-139087/25/22 11:00:25statusCancelled
14EDGE-139087/26/22 13:33:00statusCancelled
15EDGE-139087/27/22 10:41:39statusCancelled
16EDGE-139087/27/22 12:57:57statusCancelled
17EDGE-139097/5/22 13:29:16statusCancelled
18EDGE-139107/11/22 9:15:54statusCancelled
19EDGE-139118/2/22 12:56:23statusCancelled
20EDGE-139527/18/22 9:24:14statusCancelled
21EDGE-139877/18/22 9:27:52priorityExternal Block
22EDGE-139877/28/22 11:52:57statusCancelled
23EDGE-139987/18/22 9:26:01statusCancelled
24EDGE-140037/18/22 9:26:27statusCancelled
25EDGE-140086/26/23 11:14:24statusCompleted
26EDGE-140098/24/22 12:53:57statusCompleted
27EDGE-140267/19/22 13:17:09statusCancelled
28EDGE-140266/26/23 11:11:27statusCompleted
29EDGE-140277/29/22 9:12:41statusCompleted
30EDGE-140288/8/22 9:08:29statusCancelled
31EDGE-140357/28/22 11:52:22statusCompleted
32EDGE-140387/26/22 13:32:41statusCompleted
33EDGE-140416/26/23 11:03:52statusCompleted
34EDGE-140426/26/23 11:01:15statusCompleted
35EDGE-140436/26/23 11:11:44statusCompleted
36EDGE-140498/23/23 14:14:05statusCancelled
37EDGE-140508/23/23 14:12:31statusCancelled
38EDGE-140528/23/23 14:22:06statusCancelled
39EDGE-1405410/28/22 12:16:55statusCompleted
40EDGE-140558/24/23 18:21:42statusCancelled
41EDGE-140568/16/22 14:19:17statusCancelled
42EDGE-140612/13/23 10:48:28statusCancelled
43EDGE-140648/2/22 9:58:17statusCompleted
44EDGE-140656/26/23 11:07:30statusCompleted
45EDGE-140749/22/22 13:58:41priorityExternal Block
46EDGE-1407410/19/22 9:06:51priorityMajor
47EDGE-1407410/19/22 10:18:28statusCancelled
48EDGE-141028/23/23 14:23:42statusCancelled
49EDGE-141105/24/23 9:01:36statusCancelled
50EDGE-141118/23/23 14:25:18statusCancelled
51EDGE-141258/24/23 18:11:10statusCancelled
52EDGE-1413910/11/22 14:02:54statusCompleted
53EDGE-141466/26/23 11:12:17statusCompleted
54EDGE-141738/15/22 14:21:57statusCompleted
55EDGE-141808/17/22 12:49:01statusCompleted
56EDGE-141818/9/22 15:07:30statusCompleted
57EDGE-141888/9/22 16:16:03statusCompleted
58EDGE-141998/23/22 8:25:52priorityExternal Block
59EDGE-141998/23/22 8:31:09priorityBlocker
60EDGE-141998/23/22 8:31:23priorityExternal Block
61EDGE-141999/1/22 16:17:50priorityMajor
62EDGE-141996/26/23 11:13:10statusCompleted
63EDGE-142159/12/22 9:14:36statusCompleted
64EDGE-142228/18/22 8:22:08statusCompleted
65EDGE-142398/25/22 8:48:34statusCompleted
66EDGE-1424010/10/22 17:38:13priorityExternal Block
67EDGE-1424010/12/22 11:45:30priorityCritical
68EDGE-142418/25/22 8:51:10statusCompleted
69EDGE-142428/26/22 9:27:04priorityExternal Block
70EDGE-142429/19/22 9:27:24priorityCritical
71EDGE-1424210/3/22 9:21:10statusCancelled
72EDGE-142599/8/22 11:21:32statusCompleted
73EDGE-142609/1/22 10:19:54statusCompleted
74EDGE-142716/26/23 10:41:43statusCompleted
75EDGE-1428610/20/22 22:03:41Fix VersionEDGE Monthly October 2022 / COV Phase 1.16 Release -- 2022-10-20
76EDGE-1428610/20/22 22:03:51statusCompleted
77EDGE-1428910/20/22 22:04:43statusCompleted
78EDGE-1428910/20/22 22:04:43Fix VersionEDGE Monthly October 2022 / COV Phase 1.16 Release -- 2022-10-20
79EDGE-142928/31/22 13:50:30LinkThis issue relates to EDGE-14233
80EDGE-142928/31/22 13:51:25summaryEDGE to Cloud - Revert Code Changes made in EDGE-14233 - Group to Group Transfers
81EDGE-142928/31/22 15:22:19labelsE2C_Development
82EDGE-142929/2/22 9:06:04LinkThis issue relates to EDGE-14301
83EDGE-142929/14/22 17:09:45WorkflowEFM Story Workflow
84EDGE-142921/16/23 11:02:32WorkflowEFM Story Workflow Beta
85EDGE-142923/14/23 17:55:15Epic LinkEDGE-15288
86EDGE-142924/27/23 16:07:54WorkflowEFM Story Workflow
87EDGE-142928/14/23 10:04:25labelsE2C E2C_Development
88EDGE-1429211/1/23 14:18:32labelsE2C E2C_Development WS2
89EDGE-1430511/7/22 16:39:16statusCancelled
90EDGE-1431110/20/22 22:05:14Fix VersionEDGE Monthly October 2022 / COV Phase 1.16 Release -- 2022-10-20
91EDGE-1431110/20/22 22:05:14statusCompleted
92EDGE-143194/24/23 16:35:27Fix VersionRLS_04.2023
93EDGE-143194/24/23 16:35:33statusCompleted
94EDGE-1433610/10/22 9:09:59priorityExternal Block
95EDGE-1433610/19/22 9:27:31priorityMinor
96EDGE-1433610/21/22 14:06:07priorityExternal Block
freeb1893

The following single formula performs both major steps you described; however the formula is broken down into several components:
  1. First, Table4 is filtered to identify Ticket #'s associated with all [NEWSTRING] entries that are "External Block" (the "feb" formula).
  2. Then Table 4 is filtered again to extract all records for the "feb" Ticket #'s...and then the resultant array is trimmed down, keeping only three columns (Ticket #, Change Date, and NewString)...and this array is sorted 1st by Ticket # then by Change Date (the "febtkt" formula).
  3. The "febtkt" formula is then broken apart into single column arrays consisting of Ticket # ("tkt"), Change Date ("dt"), and NewString ("str")...to facilitate the next steps.
  4. A sequence consisting of the number of rows in "str" is generated ("s"). This is used in the next row-by-row operations.
  5. Then the "str" array is taken one row (one cell) at a time to generate an array of integers, beginning with 1 assigned to all cells associated with the 1st instance of "External Block", 2 is assigned to all cells associated with the 2nd instance of "External Block", and so on (the "bin" formula). This binning operation is used to ensure that potential change dates needed in the final step are associated with the correct Move TO External Block.
  6. Next, the "str" and "bin" arrays are stepped through one row at a time to determine if: 1) the "str" entry is "External Block", and if so, 2) the next entry has the same bin number (meaning it belongs to the same "External Block" group), and if so, 3) that the next "str" entry is not "Cancelled". If all of these conditions are met, then the Change Date for the next "str" entry is taken as the Date/Time Moved FROM External Block. Otherwise a value of "n/a" is used. In the case where the last array entry is examined, the formula attempts to access the next, non-existent entry, so an error is generated...and the error is trapped with an IFERROR and the value of "n/a" is also used in this case (see the "nxtidx" formula).
  7. Finally, the Ticket #, Change Date (TO), and Change Date (FROM) arrays are combined (horizontally stacked) and then filtered to include only those whose "str" [NEWSTRING] value is "External Block".
Please check the conditions I've described in step 6, as the "Cancelled" criteria may not be correct (that is the point of the question I posed in my previous post).
MrExcel_20231113.xlsx
TUV
3Ticket #Date/Time Moved to External BlockDate/Time Moved from External Block
4EDGE-139057/6/22 09:18:077/18/22 08:03:37
5EDGE-139877/18/22 09:27:52n/a
6EDGE-140749/22/22 13:58:4110/19/22 09:06:51
7EDGE-141998/23/22 08:25:528/23/22 08:31:09
8EDGE-141998/23/22 08:31:239/1/22 16:17:50
9EDGE-1424010/10/22 17:38:1310/12/22 11:45:30
10EDGE-142428/26/22 09:27:049/19/22 09:27:24
11EDGE-1433610/10/22 09:09:5910/19/22 09:27:31
12EDGE-1433610/21/22 14:06:07n/a
freeb1893
Cell Formulas
RangeFormula
T4:V12T4=LET(feb,CHOOSECOLS(FILTER(Table4,Table4[NEWSTRING]="External Block"),2), febtkt,SORT(CHOOSECOLS(FILTER(Table4,ISNUMBER(MATCH(Table4[PKEYNUM],feb,0))),2,15,18),{1,2}), tkt,CHOOSECOLS(febtkt,1), dt,CHOOSECOLS(febtkt,2), str,CHOOSECOLS(febtkt,3), s,SEQUENCE(ROWS(str)), bin,SCAN(0,str,LAMBDA(a,v,IF(v<>"External Block",a,a+1))), nxtidx,SCAN(0,s,LAMBDA(a,s,IFERROR(IF(AND(INDEX(str,s)="External Block",INDEX(bin,s)=INDEX(bin,s+1),INDEX(str,s+1)<>"Cancelled"),INDEX(dt,s+1),"n/a"),"n/a") ) ), FILTER(HSTACK(tkt,dt,nxtidx),str="External Block") )
Dynamic array formulas.
 
Upvote 0
Thank you for the clarification. That second step is messier and I have a version that nearly reproduces your output...except for one result. I suspect that I do not completely understand all of the conditions for the 2nd step. On the following row, could you explain why "n/a" is the answer rather than 7/28/22 11:52:57, which follows the date/time for the "External Block" entry for that same Ticket #. Is it because the [NEWSTRING] is "Cancelled". You must be applying some other rule to exclude this one.
You’re welcome! And sorry I can’t believe I neglected providing a sample an example output. So that row for EDGE-13987, the 2nd index result is n/a because there is no record that matches that ticket number AND there is record of it going to External Block via Column R of my original data, but there is NOT a record of it going from External Block via Column Q of my original data after the date/time of when it went to External Block via Column R of my original data

Basically I have a record of the ticket moving to External Block, but there is not a record of it moving from External Block to some other status sometime afterwards.

That is a common scenario I could see.

The scenario of the 2nd record of a ticket moving from External Block via Column Q, before the record of it moving to External Block via Column R is much more unlikely, but would like to build that validation of checking the date/time stamp for when it moved to External Block to ensure the record of it moving from External Block occurred after, if possible
 
Upvote 0
Here is the source table used (it is called "Table4" and has been converted to an official Excel table):
MrExcel_20231113.xlsx
BOPR
3PKEYNUMCHANGE DATEFIELD CHANGEDNEWSTRING
4EDGE-139017/27/22 12:51:16statusCancelled
5EDGE-139017/27/22 12:52:30statusCancelled
6EDGE-1390111/8/22 7:55:42statusCancelled
7EDGE-139046/30/22 7:30:21statusCancelled
8EDGE-139057/6/22 9:18:07priorityExternal Block
9EDGE-139057/18/22 8:03:37priorityMajor
10EDGE-139057/18/22 12:55:47statusCancelled
11EDGE-1390611/8/22 7:56:05statusCancelled
12EDGE-139077/19/22 9:16:50statusCancelled
13EDGE-139087/25/22 11:00:25statusCancelled
14EDGE-139087/26/22 13:33:00statusCancelled
15EDGE-139087/27/22 10:41:39statusCancelled
16EDGE-139087/27/22 12:57:57statusCancelled
17EDGE-139097/5/22 13:29:16statusCancelled
18EDGE-139107/11/22 9:15:54statusCancelled
19EDGE-139118/2/22 12:56:23statusCancelled
20EDGE-139527/18/22 9:24:14statusCancelled
21EDGE-139877/18/22 9:27:52priorityExternal Block
22EDGE-139877/28/22 11:52:57statusCancelled
23EDGE-139987/18/22 9:26:01statusCancelled
24EDGE-140037/18/22 9:26:27statusCancelled
25EDGE-140086/26/23 11:14:24statusCompleted
26EDGE-140098/24/22 12:53:57statusCompleted
27EDGE-140267/19/22 13:17:09statusCancelled
28EDGE-140266/26/23 11:11:27statusCompleted
29EDGE-140277/29/22 9:12:41statusCompleted
30EDGE-140288/8/22 9:08:29statusCancelled
31EDGE-140357/28/22 11:52:22statusCompleted
32EDGE-140387/26/22 13:32:41statusCompleted
33EDGE-140416/26/23 11:03:52statusCompleted
34EDGE-140426/26/23 11:01:15statusCompleted
35EDGE-140436/26/23 11:11:44statusCompleted
36EDGE-140498/23/23 14:14:05statusCancelled
37EDGE-140508/23/23 14:12:31statusCancelled
38EDGE-140528/23/23 14:22:06statusCancelled
39EDGE-1405410/28/22 12:16:55statusCompleted
40EDGE-140558/24/23 18:21:42statusCancelled
41EDGE-140568/16/22 14:19:17statusCancelled
42EDGE-140612/13/23 10:48:28statusCancelled
43EDGE-140648/2/22 9:58:17statusCompleted
44EDGE-140656/26/23 11:07:30statusCompleted
45EDGE-140749/22/22 13:58:41priorityExternal Block
46EDGE-1407410/19/22 9:06:51priorityMajor
47EDGE-1407410/19/22 10:18:28statusCancelled
48EDGE-141028/23/23 14:23:42statusCancelled
49EDGE-141105/24/23 9:01:36statusCancelled
50EDGE-141118/23/23 14:25:18statusCancelled
51EDGE-141258/24/23 18:11:10statusCancelled
52EDGE-1413910/11/22 14:02:54statusCompleted
53EDGE-141466/26/23 11:12:17statusCompleted
54EDGE-141738/15/22 14:21:57statusCompleted
55EDGE-141808/17/22 12:49:01statusCompleted
56EDGE-141818/9/22 15:07:30statusCompleted
57EDGE-141888/9/22 16:16:03statusCompleted
58EDGE-141998/23/22 8:25:52priorityExternal Block
59EDGE-141998/23/22 8:31:09priorityBlocker
60EDGE-141998/23/22 8:31:23priorityExternal Block
61EDGE-141999/1/22 16:17:50priorityMajor
62EDGE-141996/26/23 11:13:10statusCompleted
63EDGE-142159/12/22 9:14:36statusCompleted
64EDGE-142228/18/22 8:22:08statusCompleted
65EDGE-142398/25/22 8:48:34statusCompleted
66EDGE-1424010/10/22 17:38:13priorityExternal Block
67EDGE-1424010/12/22 11:45:30priorityCritical
68EDGE-142418/25/22 8:51:10statusCompleted
69EDGE-142428/26/22 9:27:04priorityExternal Block
70EDGE-142429/19/22 9:27:24priorityCritical
71EDGE-1424210/3/22 9:21:10statusCancelled
72EDGE-142599/8/22 11:21:32statusCompleted
73EDGE-142609/1/22 10:19:54statusCompleted
74EDGE-142716/26/23 10:41:43statusCompleted
75EDGE-1428610/20/22 22:03:41Fix VersionEDGE Monthly October 2022 / COV Phase 1.16 Release -- 2022-10-20
76EDGE-1428610/20/22 22:03:51statusCompleted
77EDGE-1428910/20/22 22:04:43statusCompleted
78EDGE-1428910/20/22 22:04:43Fix VersionEDGE Monthly October 2022 / COV Phase 1.16 Release -- 2022-10-20
79EDGE-142928/31/22 13:50:30LinkThis issue relates to EDGE-14233
80EDGE-142928/31/22 13:51:25summaryEDGE to Cloud - Revert Code Changes made in EDGE-14233 - Group to Group Transfers
81EDGE-142928/31/22 15:22:19labelsE2C_Development
82EDGE-142929/2/22 9:06:04LinkThis issue relates to EDGE-14301
83EDGE-142929/14/22 17:09:45WorkflowEFM Story Workflow
84EDGE-142921/16/23 11:02:32WorkflowEFM Story Workflow Beta
85EDGE-142923/14/23 17:55:15Epic LinkEDGE-15288
86EDGE-142924/27/23 16:07:54WorkflowEFM Story Workflow
87EDGE-142928/14/23 10:04:25labelsE2C E2C_Development
88EDGE-1429211/1/23 14:18:32labelsE2C E2C_Development WS2
89EDGE-1430511/7/22 16:39:16statusCancelled
90EDGE-1431110/20/22 22:05:14Fix VersionEDGE Monthly October 2022 / COV Phase 1.16 Release -- 2022-10-20
91EDGE-1431110/20/22 22:05:14statusCompleted
92EDGE-143194/24/23 16:35:27Fix VersionRLS_04.2023
93EDGE-143194/24/23 16:35:33statusCompleted
94EDGE-1433610/10/22 9:09:59priorityExternal Block
95EDGE-1433610/19/22 9:27:31priorityMinor
96EDGE-1433610/21/22 14:06:07priorityExternal Block
freeb1893

The following single formula performs both major steps you described; however the formula is broken down into several components:
  1. First, Table4 is filtered to identify Ticket #'s associated with all [NEWSTRING] entries that are "External Block" (the "feb" formula).
  2. Then Table 4 is filtered again to extract all records for the "feb" Ticket #'s...and then the resultant array is trimmed down, keeping only three columns (Ticket #, Change Date, and NewString)...and this array is sorted 1st by Ticket # then by Change Date (the "febtkt" formula).
  3. The "febtkt" formula is then broken apart into single column arrays consisting of Ticket # ("tkt"), Change Date ("dt"), and NewString ("str")...to facilitate the next steps.
  4. A sequence consisting of the number of rows in "str" is generated ("s"). This is used in the next row-by-row operations.
  5. Then the "str" array is taken one row (one cell) at a time to generate an array of integers, beginning with 1 assigned to all cells associated with the 1st instance of "External Block", 2 is assigned to all cells associated with the 2nd instance of "External Block", and so on (the "bin" formula). This binning operation is used to ensure that potential change dates needed in the final step are associated with the correct Move TO External Block.
  6. Next, the "str" and "bin" arrays are stepped through one row at a time to determine if: 1) the "str" entry is "External Block", and if so, 2) the next entry has the same bin number (meaning it belongs to the same "External Block" group), and if so, 3) that the next "str" entry is not "Cancelled". If all of these conditions are met, then the Change Date for the next "str" entry is taken as the Date/Time Moved FROM External Block. Otherwise a value of "n/a" is used. In the case where the last array entry is examined, the formula attempts to access the next, non-existent entry, so an error is generated...and the error is trapped with an IFERROR and the value of "n/a" is also used in this case (see the "nxtidx" formula).
  7. Finally, the Ticket #, Change Date (TO), and Change Date (FROM) arrays are combined (horizontally stacked) and then filtered to include only those whose "str" [NEWSTRING] value is "External Block".
Please check the conditions I've described in step 6, as the "Cancelled" criteria may not be correct (that is the point of the question I posed in my previous post).
MrExcel_20231113.xlsx
TUV
3Ticket #Date/Time Moved to External BlockDate/Time Moved from External Block
4EDGE-139057/6/22 09:18:077/18/22 08:03:37
5EDGE-139877/18/22 09:27:52n/a
6EDGE-140749/22/22 13:58:4110/19/22 09:06:51
7EDGE-141998/23/22 08:25:528/23/22 08:31:09
8EDGE-141998/23/22 08:31:239/1/22 16:17:50
9EDGE-1424010/10/22 17:38:1310/12/22 11:45:30
10EDGE-142428/26/22 09:27:049/19/22 09:27:24
11EDGE-1433610/10/22 09:09:5910/19/22 09:27:31
12EDGE-1433610/21/22 14:06:07n/a
freeb1893
Cell Formulas
RangeFormula
T4:V12T4=LET(feb,CHOOSECOLS(FILTER(Table4,Table4[NEWSTRING]="External Block"),2), febtkt,SORT(CHOOSECOLS(FILTER(Table4,ISNUMBER(MATCH(Table4[PKEYNUM],feb,0))),2,15,18),{1,2}), tkt,CHOOSECOLS(febtkt,1), dt,CHOOSECOLS(febtkt,2), str,CHOOSECOLS(febtkt,3), s,SEQUENCE(ROWS(str)), bin,SCAN(0,str,LAMBDA(a,v,IF(v<>"External Block",a,a+1))), nxtidx,SCAN(0,s,LAMBDA(a,s,IFERROR(IF(AND(INDEX(str,s)="External Block",INDEX(bin,s)=INDEX(bin,s+1),INDEX(str,s+1)<>"Cancelled"),INDEX(dt,s+1),"n/a"),"n/a") ) ), FILTER(HSTACK(tkt,dt,nxtidx),str="External Block") )
Dynamic array formulas.
Sounds good! So I'm not familiar with "I converted the entire table range into an official Excel table (with headers) and called this source table "Table4". How do I do that in Excel? So I can do that on my end and then check your formulas?
 
Upvote 0
To convert a range of data to an official table, click anywhere in the range and then Ctrl-t, which will pop up a window where you'll see that Excel has guessed at what the entire table range should be. Usually that is correct...but confirm the range reference is correct, and since your range also has column headings, leave the check box "checked" so that the newly formed table will utilize your headings. You will then probably see some visual indication that the range has been converted into a table. Click anywhere in the table and you should see "Table Design" appear in an upper level menu item. Click on Table Design and look near the upper left corner where where Table Name: appears. That is where you can edit the name of the table.

Going back to the EDGE-13987 discussion, I'm not following your explanation. Here is what the original table contains for that ticket #:
EDGE-139877/18/22 9:27:52priorityCriticalExternal Block
EDGE-139877/28/22 11:52:57statusGathering RequirementsCancelled

So we see EDGE-13987 changing from [OLDSTRING] of "Critical" to [NEWSTRING] of "External Block", and then about 10 days later, there is an entry for [OLDSTRING] of "Gathering Requirements" to [NEWSTRING] of "Cancelled". I may have answered my own question...I believe we need to see some subsequent entry where [OLDSTRING] is "External Block", and since that is not the case for the only EDGE-13987 entry that follows the assignment to "External Block", we should not use this subsequent entry. Is that correct?
 
Upvote 0
To convert a range of data to an official table, click anywhere in the range and then Ctrl-t, which will pop up a window where you'll see that Excel has guessed at what the entire table range should be. Usually that is correct...but confirm the range reference is correct, and since your range also has column headings, leave the check box "checked" so that the newly formed table will utilize your headings. You will then probably see some visual indication that the range has been converted into a table. Click anywhere in the table and you should see "Table Design" appear in an upper level menu item. Click on Table Design and look near the upper left corner where where Table Name: appears. That is where you can edit the name of the table.

Going back to the EDGE-13987 discussion, I'm not following your explanation. Here is what the original table contains for that ticket #:
EDGE-139877/18/22 9:27:52priorityCriticalExternal Block
EDGE-139877/28/22 11:52:57statusGathering RequirementsCancelled

So we see EDGE-13987 changing from [OLDSTRING] of "Critical" to [NEWSTRING] of "External Block", and then about 10 days later, there is an entry for [OLDSTRING] of "Gathering Requirements" to [NEWSTRING] of "Cancelled". I may have answered my own question...I believe we need to see some subsequent entry where [OLDSTRING] is "External Block", and since that is not the case for the only EDGE-13987 entry that follows the assignment to "External Block", we should not use this subsequent entry. Is that correct?
Got it! Thanks! Yeah you know what, I think you got it! It appears the data is processing as I was hoping it would! Thanks so much for helping me figure this one out!
 
Upvote 0
To convert a range of data to an official table, click anywhere in the range and then Ctrl-t, which will pop up a window where you'll see that Excel has guessed at what the entire table range should be. Usually that is correct...but confirm the range reference is correct, and since your range also has column headings, leave the check box "checked" so that the newly formed table will utilize your headings. You will then probably see some visual indication that the range has been converted into a table. Click anywhere in the table and you should see "Table Design" appear in an upper level menu item. Click on Table Design and look near the upper left corner where where Table Name: appears. That is where you can edit the name of the table.

Going back to the EDGE-13987 discussion, I'm not following your explanation. Here is what the original table contains for that ticket #:
EDGE-139877/18/22 9:27:52priorityCriticalExternal Block
EDGE-139877/28/22 11:52:57statusGathering RequirementsCancelled

So we see EDGE-13987 changing from [OLDSTRING] of "Critical" to [NEWSTRING] of "External Block", and then about 10 days later, there is an entry for [OLDSTRING] of "Gathering Requirements" to [NEWSTRING] of "Cancelled". I may have answered my own question...I believe we need to see some subsequent entry where [OLDSTRING] is "External Block", and since that is not the case for the only EDGE-13987 entry that follows the assignment to "External Block", we should not use this subsequent entry. Is that correct?
Kind of wanting to better understand what's going on with this formula, what is the "feb" in the formula?
 
Upvote 0

Forum statistics

Threads
1,215,069
Messages
6,122,953
Members
449,095
Latest member
nmaske

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top