Recent Discussions
WrapRows2Dλ / WrapCols2Dλ: Fast, efficient 2D wrapping without flattening
Background One of Excel's biggest weaknesses is in working with 2D arrays as objects that can be re-shaped. WRAPROWS/WRAPCOLS do not accept 2D arrays (#VALUE!) and are strictly for shaping 1D arrays. The usual workarounds involve flattening with TOROW/TOCOL then re-shaping with WRAPROWS/WRAPCOLS, REDUCE used an iterator to stack (do-able but slow), and even MAKEARRAY (do-able, but not instinctive and slow). The Goal Fast, efficient 2D wrapping without flattening. The Approach Pure deferred i/j indexing with modular math and sequencing. The function and sample workbook is provided below. I welcome any and all feedback: suggestions for improvement, your approach to 2D shaping, etc. // Fast, efficient 2D wrapping without flattening //----------------------------------------------------------------------------------- //---WrapCols2Dλ--- //----------------------------------------------------------------------------------- //Author: Patrick H. //Date: 1/28/2026 //Version: 1.0 // //Description: //Wrap a 2D array into column blocks of a specified width while preserving row height. //The wrapped blocks are stacked vertically in the output. //Jagged or uneven final blocks are padded with NA() by default, unless a fill value //is supplied via the optional pad_with parameter. // //----------------------------------------------------------------------------------- //Parameter Description //array - 2D array to be wrapped (1D arrays not supported) //new_width - Number of columns in each wrapped block // //Optional Description //pad_with - Fill value used to pad incomplete blocks. If omitted, NA() is used. // //Lambda called: Echoλ WrapCols2Dλ= LAMBDA( array, new_width, [pad_with], //Check inputs LET( //Shape h, ROWS(array), w, COLUMNS(array), blocks, CEILING(w/new_width,1), //Optional pad_with, IF(ISOMITTED(pad_with),NA(),pad_with), //Total rows when wrapped r, blocks * h, //Scenarios Is1D?, OR(h = 1,w = 1), IsScalar?, AND(h = 1, w = 1), InvalidDim?,new_width >= w, SpillRisk?, r > 1048576, //Logic gate IF(IsScalar?,#VALUE!, IF(Is1D?,#VALUE!, IF(InvalidDim?,"#WIDTH!", IF(SpillRisk?,#NUM!, //Proceed LET( //Indices - deferred modulo, LAMBDA(MOD(SEQUENCE(r),h)), i, LAMBDA(IF(modulo() = 0, h, modulo()) * SEQUENCE(,new_width,1,0)), j, LAMBDA(Echoλ(SEQUENCE(r / h,,1,new_width),h) + SEQUENCE(,new_width,0,1)), //Wrapped array result, IFERROR(INDEX(array,i(),j()),pad_with), result ))))))); //----------------------------------------------------------------------------------- //---WrapRows2Dλ--- //----------------------------------------------------------------------------------- //Author: Patrick H. //Date: 1/28/2026 //Version: 1.0 // //Description: //Wrap a 2D array into row blocks of a specified height while preserving column width. //The wrapped blocks are stacked horizontally in the output. //Jagged or uneven final blocks are padded with NA() by default, unless a fill value //is supplied via the optional pad_with parameter. // //----------------------------------------------------------------------------------- //Parameter Description //array - 2D array to be wrapped (1D arrays not supported) //new_height - Number of rows in each wrapped block // //Optional Description //pad_with - Fill value used to pad incomplete blocks. If omitted, NA() is used. // //Lambda called: Echoλ WrapRows2Dλ= LAMBDA( array, new_height, [pad_with], //Check inputs LET( //Shape h, ROWS(array), w, COLUMNS(array), blocks, CEILING(h/new_height,1), //Optional pad_with, IF(ISOMITTED(pad_with),NA(),pad_with), //Total columns when unwrapped c, blocks * w, //Scenarios Is1D?, OR(h = 1,w = 1), IsScalar?, AND(h = 1, w = 1), InvalidDim?,new_height >= h, SpillRisk?, c > 16384, //Logic gate IF(IsScalar?,#VALUE!, IF(Is1D?,#VALUE!, IF(InvalidDim?,"#HEIGHT!", IF(SpillRisk?,#NUM!, //Proceed LET( //Indices - deferred i, LAMBDA(TOROW(Echoλ(SEQUENCE(,blocks,1,new_height),w)) + SEQUENCE(new_height,,0,1)), modulo, LAMBDA(MOD(SEQUENCE(,w * blocks),w)), j, LAMBDA(IF(modulo()=0,w,modulo()) * SEQUENCE(new_height,,1,0)), //Wrapped array result, IFERROR(INDEX(array,i(),j()),pad_with), result ))))))); //----------------------------------------------------------------------------------- //Echoλ //----------------------------------------------------------------------------------- //Author: Patrick H. //Date: 11/7/2025 //Version: 1.0 //Description: //Repeat each element in a supplied 1D array by specifying the repeat counts. //Arrays and scalars are supported. //----------------------------------------------------------------------------------- //vector - 1D array or scalar to be echoed //repeat - 1D array of repeat counts (must be numeric and ≥1) Echoλ = LAMBDA( vector, repeat, //Check inputs IF(OR(ISTEXT(repeat),repeat<=0),#VALUE!, LET( //Flatten inputs vector, TOCOL(vector), repeat, TOCOL(repeat), //Dimensions and row indexing V↕, ROWS(vector), R↕,ROWS(repeat), r, IF(V↕<>R↕,EXPAND(repeat,V↕,,@TAKE(repeat,-1)), repeat), i, SEQUENCE(ROWS(r)), m, MAX(r), idx, LAMBDA(TOCOL(IF(SIGN(r-SEQUENCE(,m,0,))=1,i,NA()),2)), //Unwrap idx but defer delivery until function invocation deliver, LAMBDA(INDEX(vector,idx())), deliver ))()); Workbook attached and linked in case this forum gobbles it up! Patrick2788/Excel-Lambda: Excel Lambda modules Excel-Lambda/Wrap2D Demo.xlsx at main · Patrick2788/Excel-Lambda Excel Lambda modules. Contribute to Patrick2788/Excel-Lambda development by creating an account on GitHub. github.com21Views0likes0CommentsTop n vs. Others in Excel
Hi all, I'm seeking some help because I'm kind of new to the more intermediate stuff in Excel. I have an Excel table with the following columns: Subcategory in column A, Brand in column B, Region in column C, Year in column D and Values Month in column E. I want to create a PivotTable and a Pivot line chart from this PivotTable that ranks the Top 5 Brands vs. Other Competitors by each region. For added context: There are 5 subcategories, 3 regions and 25 brands. Currently, I've tried grouping the remaining 20 brands as "Other Competitors" vs. the Top 5 brands within a selected region and possibly all regions (when no selection is made). I'm seeking a solution similar to this... Please mind the colours. I will sort those out later. But, the problem that I'm faced with is that upon selection of a region, the PivotTable won't update to the Top 5 brands of a selected region because they've already been grouped. How can I make this more dynamic so that I'm able to show The Top 5 brands vs. Others? Please help. EDIT: My operating system is Windows 10 (64-bit) and I use Excel 365 (Desktop version). For reference, I've attached a link to a sample file. https://1drv.ms/x/c/b2d878e32a062614/IQC1wcnwLICcQasOfnGcwKn0ASjpXp9xQ6rjnOP10Jal5cc?e=HaXEWd Thank you all once again.Solved621Views2likes27CommentsTrying to fill a field in excel with 3 different wordfs based on another field result
I am trying to fill a field in excel with 3 different words based on another fiels results. Result field will have a percentage based on a calculation which is already set to show 3 differnt colors based on the reults. ie: 0-32% is red, 33-74% is Yelow and 75-10% is Green, ths field is G7 I want to have the result of G7 to fill G8 with the the following statement, and include the color fill above. If G7 is 0-32% then "Bad Deal", if G7 is 33-74% then "Fair Deal", if G7 is 75-100% then "Good Deal" Looking to the Deal words placed in the field based on the result of G75Views0likes0CommentsExcel authentication token reuse for access to Log Analytics
I have noticed that Excel is not able to reuse the authentication token when accessing Log Analytics workspaces if an expired token was renewed for a single sheet in a workbook. Scenario: 1 workbook with 1+ worksheets Each worksheet is a different query to LA (KQL query displayed in Excel for ease and consolidation) Access to LA is protected by the usual access controls (Conditional Access; Security Reader role + Session control) After a period of time, session and token expire and require renewal User receives a prompt stating the token has expired and needs to be renew User clicks on "Sign-in" and successfully completes the prompts (u/n+pwd+MFA) Expected result: The new token will be reused for subsequent connections to LA within the same workbook Actual result: User is prompted to re-authenticate for each and every connection in the workbook resulting in as many auth requests as there are connections Workaround: After successfully completing the first auth request, close Excel and re-open it and run "Refresh all" This successfully completes refresh of all data without any additional re-auth requests Is this behaviour by design or due to a configuration? Is there a way to address this so that the first token is re-used by all other connections without having to close and reopen the workbook?Solved60Views0likes2CommentsPublisher
I understand that Publisher will be removed from 365 in 2026 with the aim to incorporate it's features in Word. I love Publisher and before I had 365 I had a paid version. I use it for newsletters, crafts, knitting patterns, and photo albums. The things I most value are being able to crop and resize images, move text boxes around for best fit, adding effects like shading and wordart, and importing images. I'm not sure that these features could be available in Word so I'm looking for opinions on alternatives. My 365 version of Publisher has become very "buggy" recently with many "not responding" messages, and I don't want to try uninstalling if I can't get it back. It doesn't show as an option in the current list of apps included with 365. Can I buy a paid version of Publisher? Would this be supported going forward? Is there an alternative to Publisher that gives me the features I need and is compatible with my existing .pub documents? I'm not looking for a professional package, it's only for occasional home and hobby use, so a subscription model would be unaffordable and unnecessary. Alternatively, would Microsoft be able to assure me (and others like me) that they can incorporate Publisher features into Word or another app?150Views0likes1CommentReturn a value based on different parameters
Not sure if my title is describing my issue correctly. I have one column where each cell contains the same drop down list from which I can choose one of six options, and depending on what option is chosen, I want the cell in another column to return certain value: Option Chosen Return Value Not Started 0% Started 25% In Progress 50% Nearly There 75% Complete 100% I found this example formula online, which is only repeated once but works perfectly for two parameters: =IF(ISNUMBER(SEARCH("Not Started",F3)),"0%",IF(ISNUMBER(SEARCH("Started",F3)),"25%")) However, when I start to extend/repeat the formula more than once for the remaining parameters I cannot get it to work. I've extended it as follows... =IF(ISNUMBER(SEARCH("Not Started",F3)),"0%",IF(ISNUMBER(SEARCH("Started",F3)),"25%",IF(ISNUMBER(SEARCH("In Progress",F3)),"50%",IF(ISNUMBER(SEARCH("Nearly There",F3)),"75%",IF(ISNUMBER(SEARCH("Complete",F3)),"100%")) ... and it returns the error 'the formula is missing an opening or closing parenthesis' Please can anyone help with this. Thank you in advance.Solved39Views0likes4CommentsSync Issues with Tracking Meetings from Outlook to Dynamics 365
Hello, my work uses the Dynamic 365 App for Outlook to track meetings as appointments in Dynamics 365, but it has failed several times for several users (on both Mac and Windows, in Old and New Outlook and on web browsers); some meetings will fail to track immediately while in some cases, meetings that were successfully tracked will stopped working and are no longer tracked in Dynamics. In the spoiler below is a sanitized version of the diagnostic log for meetings that used to be tracked that stopped working: In the log, we have the following error message: "lastsyncerror": "ExchangeSyncGeneralCrmItemSyncError;Microsoft.Crm.Asynchronous.EmailConnector.ErrorSource.Crm:130;T:188\r\nActivityId: [Removed]\r\n>Exception : Microsoft.Crm.Asynchronous.EmailConnector.ExchangeSyncException: Failed to sync item to CRM server : System.ServiceModel.FaultException`1[Microsoft.Xrm.Sdk.OrganizationServiceFault]: There is no active transaction. This error is usually caused by custom plug-ins that ignore errors from service calls and continue processing. at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) +0x27 at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) +0x1ba at Microsoft.Xrm.Sdk.IOrganizationService.Execute(OrganizationRequest request) at Microsoft.Xrm.Sdk.WebServiceClient.WebProxyClient`1.ExecuteAction[TResult](Func`1 action) +0x15 at CrmSDKLib.OrganizationServiceWrapper.<>c__DisplayClass10_0.<Execute>b__0() in C:\\__w\\1\\s\\src\\lib\\CrmSDK\\OrganizationServiceWrapper.cs:line 13..." In Outlook, when I look at these meetings and check the app it gives the message: Recurring appointment occurrence cannot be tracked However, we have other series of recurring meetings that have been successfully tracked that does not run into the issue. Anyone has encountered this or similar issue? How do we resolve this so going forward the app can track all meetings without issue? Please let me know, thank you!29Views0likes1CommentVBA Code "Next" button. Should be so simple...
I have the following codes in the click event for a "next" and "prev" buttons on my userform. The prev button works fine, the next button will not advance to the next record in my table, and instead gives me the "Last record" message box (regardless of the active row). If I remove the If...Then loop it works fine. WHY is it looping to the "last record" msgbox when it is clearly not on the last record?? Any ideas greatly appreciated Dim LastFind As Range Dim CurrentRow As Long Private Sub CommandButton6_Click() If CurrentRow < LastRow Then CurrentRow = CurrentRow + 1 LoadRecord CurrentRow Else MsgBox "This is the last record." End If End Sub Private Sub CommandButton7_Click() If CurrentRow > 5 Then CurrentRow = CurrentRow - 1 LoadRecord CurrentRow Else MsgBox "This is the first record." End If End Sub36Views0likes1CommentOutlook Search isue
HI All, We are having a search issue in Outlook Classic. User's unable to search from shared mailbox in outlook classic. issue started last week. is there any one know the fix for it? i have tried everything what normally suggested by Microsoft. i have created new machine for the user and issue is still there. thanks, Preyash PArekh54Views0likes3CommentsMicrosoft Feedback Portal account issue
I changed my Microsoft email a year ago, and it updated everywhere other than the Feedback Portal. As a result, I get an error when I try to login, or do anything on the page. Microsoft account support's suggestion was to login to the Feedback Portal which is insane given I'm having issues accessing it. How can I get this issue resolved? I've got three separate support tickets now and they keep asking me to wait 24 hours to get the issue resolved. Can someone from the Feedback Portal team please contact me to resolve this? This is what Microsoft Support have said: "understand your frustration, and yes—this is an account‑related issue because the Feedback Portal is still tied to your old alias, which causes login conflicts and forces you out. Your Microsoft account itself signs in correctly, but the Feedback Portal is pulling outdated identity data that you cannot update on your own. Since you cannot access the Portal to submit feedback, directing you back there is not a workable solution. What you need is for Support to escalate this to the internal Identity/Feedback Platform engineering team so they can manually correct the outdated alias mapping on the backend. In this situation, the Feedback Portal and Tech Community teams are the ones who manage and maintain that specific platform. Because the issue appears on the Feedback Portal side—even though your Microsoft account is working normally—only their dedicated team can make the necessary corrections on their end. That’s why we are guiding you to connect with them through the links provided: https://techcommunity.microsoft.com/ or https://feedbackportal.microsoft.com/feedback. They will be able to review the portal‑specific account data and assist you further. I understand why this is frustrating. Since you’re unable to stay signed in to the Feedback Portal, I completely see why posting there isn’t possible for you. However, I do need to be transparent: I’m not able to escalate this issue directly to the Feedback Portal team, as they don’t provide internal escalation channels for us and only accept requests through their own platform."16Views0likes1Comment- 21Views0likes1Comment
Microsoft Excel is waiting for another application to complete an OLE action
Hi there, Whenever I copy paste special in excel, my excel file freezes and after a waiting for a few seconds to few minutes, depending on the amount of data being copy pasted, I get this error 'Microsoft Excel is waiting for another application to complete an OLE action' I tried a few things like this but none help and the problem persists. 1st troubleshooting 1. Open the Excel sheet and go the File menu. In the File menu, click on Options. 2. An Excel Options dialog box will appear. Go to the Advanced tab and scroll down to the General area. Over there check Ignore other applications that use Dynamic Data Exchange (DDE). 3. Restart Excel. 2nd troubleshooting Tried opening Excel in safe mode 3rd troubleshooting Removed all the Add ins 4th troubleshooting Reinstalled MS Office. Can someone help.2.6MViews2likes42CommentsBlock users from creating Public Microsoft Teams groups
Hi Community, Is already know that Teams creation in Microsoft Teams is related to O365 groups, and if you would like to block users from creating teams, you need to block them from creating O365 groups, right? Ok, right. But what if we only want to block the possibility to create public teams, but still allow them to create private ones? Would that be possible? The answer is YES. And the solution is Microsoft Purview. You'll need to create a new Label/Label Policy under Information Protection. We'll configure the Label for the scope "Site, UnifiedGroup", with group settings as "Private" and applying the label automatically. Then we can configure/publish the Label Policy as mandatory for all the users, some of them or, as in my example, to a DL that contains all the users that I would like to block. Once published, depending on your tenant size, it can take up to 24 hours to propagate. In my test environment it was quite immediate. Now, the users added to the DL that I configured in the Label Policy can still create teams, but not Public ones ( and can't change the label ) as that option is greyed out. The answer is YES. And the solution is Microsoft Purview.18KViews0likes16CommentsLosing Hyperlinks in Office 365 and OneDrive
Hello, first-time poster here. I hope someone can help with a dilemma I'm experiencing. I have an Excel 2016 workbook which contains 2 worksheets. The first worksheet consists of icons I inserted. I wanted the icons so that I could rotate them to suit my needs. Within the icons, I created a text box and inserted a hyperlink in each one that referred to a specific cell in the 2nd worksheet. In regular Excel, the links work great. However, when trying to test/edit in Office 365 or OneDrive, I find that all of the hyperlinks have disappeared, as well as the ability to create any new ones. This has really stumped me. Does anyone have any suggestions? Many thanks! 🙂5.6KViews0likes8CommentsINDEX MATCH with VLOOKUP
This is my first time posting here, as I hit a roadblock that I'm sure is simple enough. I am using the following formula, but the source data ('FY26 Income Statement Data'!$A$4:$A$2158) has several rows with the same criteria on 'Cash Flow'!$A7. I think I need to include a VLOOKUP formula but I don't know how to do this. Any help will be appreciated. =INDEX('FY26 Income Statement Data'!$A$4:$AB$2158,MATCH('Cash Flow'!$A7,'FY26 Income Statement Data'!$A$4:$A$2158,0),MATCH('Cash Flow'!C$1,'FY26 Income Statement Data'!$A$4:$AB$4,0))71Views0likes1CommentHide rows based on Drop-down box selection
Hello, I have a drop-down box with different selections. One of which is "VPN to VPN Cloud-Based". If this is selected then I want to hide rows 36 through 239. Doing something wrong in my code, as it isn't doing anything when "VPN to VPN Cloud-Based" is select. Any ideas what I need to change? Attaching screenshot of the form and the VBA. Thanks.Solved47Views0likes3CommentsFormulas Not Calculating in Workbook
Hello, I have a very large workbook with many formulas across different sheets. I currently have this workbook set to manual calculations only. And it is saved in a Sharepoint Directory with autosave enabled. When the source data for this workbook is updated. None of the formulas are updating when 1. The Calculate Now button is pressed. 2. The workbook is set back to automatic calculation. 3. When the work book is manually saved and closed. I have noticed another issue. When I go to File > Options. The Options dialogue never appears. I am wondering if anyone else have experienced this issue, and if so have been able to successfully troubleshoot the problem?509KViews0likes6CommentsFrame Text Direction Bug
Not sure when it started happening, but a former client recently contacted me regarding an anomaly with text direction in frames. They have a pleading document where the firm information (name and address) is included in frame located in the left margin of the document. The Text direction is set to run from bottom to top and consists of three lines of text. When the document is opened with Word: Microsoft® Word 2019 MSO (Version 2508 Build 16.0.19127.20302) 32-bit All three lines of text are scrunched up on the bottom line.22Views0likes2Comments
Events
Recent Blogs
- Plan smarter with Microsoft 365 Copilot to make every day count in February.Feb 03, 2026345Views0likes0Comments
- Improvements in Microsoft 365 help you inclusively communicate and collaborate with math.Feb 02, 20261.7KViews4likes3Comments