https://github.com/Senipah/Subset-sum-reconciler
This is a subset sum problem solver written in Excel VBA
https://github.com/Senipah/Subset-sum-reconciler
Last synced: 4 months ago
JSON representation
This is a subset sum problem solver written in Excel VBA
- Host: GitHub
- URL: https://github.com/Senipah/Subset-sum-reconciler
- Owner: Senipah
- License: mit
- Created: 2020-10-02T10:09:00.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2022-05-19T18:21:05.000Z (almost 3 years ago)
- Last Synced: 2024-08-13T07:18:14.524Z (8 months ago)
- Language: VBA
- Size: 324 KB
- Stars: 3
- Watchers: 2
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- jimsghstars - Senipah/Subset-sum-reconciler - This is a subset sum problem solver written in Excel VBA (VBA)
README
# Subset Sum Reconciler
## Introduction
This is a subset sum problem solver written in Excel VBA.
A common question in Excel is "I have a list of numbers and I want to see which of them add up to a specific total".
This is something most people think should be fairly trivial to achieve in Excel. In reality, however, it ain't all that easy. The question is a variation on a well known problem in computer science called the [Subset sum problem](https://en.wikipedia.org/wiki/Subset_sum_problem).
It can be done with Solver, but there is a variable limit and Solver will only return one possible solution.
As it is something that crops up so often I thought I'd share a workbook I have that can calculate this. [Click here to download it](https://github.com/Senipah/Subset-sum-reconciler/raw/main/bin/subset_sum_reconciler.xlsm) (xlsm file). This file uses VBA to do the calculation. It uses dynamic programming to offset time complexity with space complexity but given a big list of numbers it still may take too long to be feasible.
## Dependencies
This file depends on (and includes) a copy of my [VBA-Better-Array](https://github.com/Senipah/VBA-Better-Array) library. If you don't want to use this it is possible to alter the code to use VBA's built in Collection or Array types without too much effort.