從 Excel 中的二維資料數組中的每一列中減去一列

從 Excel 中的二維資料數組中的每一列中減去一列

我有一個二維資料數組需要重新歸零。也就是說,我必須減去從矩陣中的每一列計算出來的列向量。

在此輸入影像描述

用數學術語來說,如果我們定義一個“恆等向量”,其中每個元素都是 1,我需要這樣做:

在此輸入影像描述

我已經成功地將矩陣從 500k 行縮小了幾百列,縮小到 160k 行,縮小了不到一百列,但它相當大,並且手柄拖動似乎會使 Excel 崩潰。

答案1

使用增量列向量「$」鎖定的簡單單元格減法適用於正常大小的資料集,例如

=B2 - $I2

然而,您的問題似乎與資料的大小更相關,並且 Excel 在簡單的減法計算過程中崩潰。所需的內存量可能超出了計算機的可用內存量。以下是一些可以嘗試的建議:

1. 根據其他工作表/工作簿進行計算,並根據手冊進行計算

如果您將歸零表放入新的工作表/工作簿中,並將計算放入手動中,會怎麼樣?在新工作表中準備公式:

=工作表1!

複製並貼上,然後按計算。

2. 嘗試數組公式,因為Excel會進行批次計算

或者,您可以嘗試使用每列數組公式 =(B2:B1000 - $I2:$I1000) 和 CTRL+SHIFT+ENTER,同時選擇整個輸出列 L2:L1000。不確定它是否真的會加快速度,但值得一試。

3. 將檔案另存為 Excel 二進位檔案 (*.xlsb)

以二進位格式儲存檔案可以減少記憶體需求,或至少減少儲存檔案或自動備份時的處理負載。看這裡https://www.spreadsheet1.com/how-to-save-as-binary-excel-workbook.html

4. 嘗試使用基於雲端的電子表格或替代電子表格

嘗試在 Office Online 或 Google Sheets 中處理資料。或嘗試安裝 Open Office Calc?

5. 使用裝有 64 位元版本 Excel 的 64 位元計算機

您可以按下「Windows 按鈕」+「暫停/中斷」來檢查正在執行的 Windows 類型(32 或 64 位元)。請在此處查看您在辦公室運行的類型https://www.howtogeek.com/288001/how-to-find-out-which-version-of-microsoft-office-youre-using/

6.設定undo堆疊深度為0

您可以將撤銷堆疊深度設為 0 來暫時關閉撤銷:https://support.microsoft.com/en-us/help/211922/how-to-modify-the-number-of-undo-levels-in-excel

7. 信任文件

也請嘗試將文件位置新增為信任中心中的受信任區域。看這裡https://support.microsoft.com/en-us/office/add-remove-or-change-a-trusted-location-7ee1cdc2-483e-4cbb-bcb3-4e7c67147fb4

8.不要使用Excel

作為最後的手段,請使用 Matlab 或 Octave 或 SciLab 等開放替代方案處理資料。

/悲傷的臉/

相關內容