Skip to main content
edited title; edited tags
Link
Wicket
  • 39.8k
  • 9
  • 81
  • 201

Google Sheets Spreadsheet custom function suddenly stop working

This is where input my dataThis is where input my data

errorsample1

expected outputerror

sample2

expected output

sample3

It adds up my current stock holding to show what stocks I own and how many shares, also calculate my average buy price.

=MyPortfolio2(tickers, value, price)

=MyPortfolio2(tickers, value, price)

This is where input my data

error

expected output

It adds up my current stock holding to show what stocks I own and how many shares, also calculate my average buy price.

=MyPortfolio2(tickers, value, price)

This is where input my data

sample1

error

sample2

expected output

sample3

It adds up my current stock holding to show what stocks I own and how many shares, also calculate my average buy price.

=MyPortfolio2(tickers, value, price)
Source Link

Google Sheets function suddenly stop working

I use this to keep track of my stock portfolio, been using it for almost three years now, and recently it stop working, can't figure out why.

function MyPortfolio2(tickers, values , price) 
{
  var total = []
  var sums = {}
  var average = {}
  var total_price
  for(i=0; i < tickers.length; i++)
  {   
    var t = tickers[i].toString()

    if(t != "Cash")
    {
       if(t in sums)
       {
         if(Number(values[i])>0){
          total_price=sums[t]*average[t]+Number(values[i])*Number(price[i])
          average[t]=total_price/(sums[t]+Number(values[i]))
         }
         sums [t] += Number(values[i])
       }
       else
       {
         sums[t] = Number(values[i]) 
         average[t] = Number(price[i])
       }
    }

  }
  for(var ticker in sums)
  {
    if(sums[ticker]>0)
    {
      total.push([ticker, sums[ticker], average[ticker]])
    } 
  }
  return total
}

I have two copies and it both stop working at the same time, but if I return my spreadsheet to a previous version, it would work for about a second before showing errors again.

EDIT1:

Screenshot of my Googlesheets

This is where input my data

error

expected output

It adds up my current stock holding to show what stocks I own and how many shares, also calculate my average buy price.

I have two Googlesheets that has this same exact function, it was the first version of my portfolio tracker sheet, I only open it up to see if it was working of not, unfortunately it wasn't either.

I greatly appreciate the help, I don't really know much about coding, kind of hard for me to find the solution on my own.

EDIT2:

DATA INPUT:

here I enter my transaction data

tickers value price
TSLA 4 200
TSLA 1 400
GOOG 1 100
DIS 1 150
DIS -1 100

RESULT:

here shows my holding and my average price

=MyPortfolio2(tickers, value, price)

TICKER SHARES AVG_PRICE
TSLA 5 240
GOOG 1 100
created from staging ground