Products

LOG function

PRO BASIC

The LOG function in Jspreadsheet Formulas Pro is a mathematical tool that allows you to find the logarithm of a given number with a specified base. Essentially, it tells you how many times you need to multiply the base number to get the number you're looking for. To use it, you simply input the number and the base into the function, like this: LOG(number, base). This function can be particularly useful for calculations involving exponential growth or decay.

Documentation

Returns the logarithm of a number to a specified base.

Category

Math and trigonometry

Syntax

LOG(number, [base])

Parameter Description
number The positive real number for which you want to find the logarithm.
[base] Optional. The base of the logarithm you want to find. If omitted, base 10 is used.

Behavior

The LOG function is used to calculate the logarithm of a number to a specified base. The default base is 10 if not specified. Here's how it handles different types of input:

  • Numbers: The LOG function works perfectly with positive numbers. However, it will return an error for negative numbers and zero.
  • Empty cells: If an empty cell is referenced, the function will treat it as a zero and return an error.
  • Text: If a cell containing text is referenced, the function will return a #VALUE! error.
  • Booleans: If a cell contains a boolean value (TRUE/FALSE), the function converts TRUE to 1 (returns 0, since log of 1 is 0) and FALSE to 0 (returns a #NUM! error because log of 0 is undefined).
  • Errors: If a cell referenced in the LOG function contains an error, the LOG function will also return that error.

Common Errors

Error Description
#NUM! This error is returned if the number is less than or equal to zero.
#VALUE! This error is returned if the base is less than or equal to zero or if the base is 1. It is also returned when the cell referenced contains text.
#REF! This error is returned if the cell reference is invalid.

Best Practices

  • Always ensure that the number and the base (if specified) are greater than zero and the base is not one. The LOG function returns errors for values that are less than or equal to zero and for base that equals one.
  • Avoid using cell references that might contain text, as this will cause the LOG function to return a #VALUE! error.
  • Be aware that LOG(TRUE) will return 0 as the function converts TRUE to 1 and the logarithm of 1 is 0.
  • Always handle possible errors using error handling functions like IFERROR or ISERROR to ensure your spreadsheet remains clean and professional.

Usage

A few examples using the LOG function.

LOG(1) returns 0 because log base 10 of 1 is 0  
LOG(100, 10) returns 2 because log base 10 of 100 is 2  
LOG(A1, 2) returns the logarithm base 2 of the value in cell A1  
LOG(TRUE) returns 0 because TRUE is treated as 1  
LOG(FALSE) returns #NUM! because FALSE is treated as 0 and log(0) is undefined  
LOG(-5) returns #NUM! because the number is negative  
LOG(10, 1) returns #NUM! because log base 1 is undefined  

Interactive Spreadsheet Demo

<html>
<script src="https://jspreadsheet.com/v11/jspreadsheet.js"></script>
<script src="https://jsuites.net/v5/jsuites.js"></script>
<link rel="stylesheet" href="https://jsuites.net/v5/jsuites.css" type="text/css" />
<link rel="stylesheet" href="https://jspreadsheet.com/v11/jspreadsheet.css" type="text/css" />

<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Material+Icons" />
<script src="https://cdn.jsdelivr.net/npm/@jspreadsheet/formula-pro/dist/index.min.js"></script>

<div id="spreadsheet"></div>

<script>
// Set your JSS license key (The following key only works for one day)
jspreadsheet.setLicense('ZDliZmExMTVjMTYyYjY4MDJmYzM2NTAwNDQyMThjNmFkY2Y0NDQyNWMxNmU1ZDgzMDQ1NTdkNDdiNDhhODRjMmViODQwYzY5MGEyMmFkYzkxYmU3MWQ5ZDg2MjUzY2E4MGM4YTFjMDJmYzIwOTUzMGU4OGUxOThjZjkzOGVjMmQsZXlKamJHbGxiblJKWkNJNklpSXNJbTVoYldVaU9pSktjM0J5WldGa2MyaGxaWFFpTENKa1lYUmxJam94TnpVM01EY3pNekV4TENKa2IyMWhhVzRpT2xzaWFuTndjbVZoWkhOb1pXVjBMbU52YlNJc0ltTnZaR1Z6WVc1a1ltOTRMbWx2SWl3aWFuTm9aV3hzTG01bGRDSXNJbU56WWk1aGNIQWlMQ0p6ZEdGamEySnNhWFI2TG1sdklpd2lkMlZpWTI5dWRHRnBibVZ5TG1sdklpd2lkMlZpSWl3aWJHOWpZV3hvYjNOMElsMHNJbkJzWVc0aU9pSXpOQ0lzSW5OamIzQmxJanBiSW5ZM0lpd2lkamdpTENKMk9TSXNJbll4TUNJc0luWXhNU0lzSW1Ob1lYSjBjeUlzSW1admNtMXpJaXdpWm05eWJYVnNZU0lzSW5CaGNuTmxjaUlzSW5KbGJtUmxjaUlzSW1OdmJXMWxiblJ6SWl3aWFXMXdiM0owWlhJaUxDSmlZWElpTENKMllXeHBaR0YwYVc5dWN5SXNJbk5sWVhKamFDSXNJbkJ5YVc1MElpd2ljMmhsWlhSeklpd2lZMnhwWlc1MElpd2ljMlZ5ZG1WeUlpd2ljMmhoY0dWeklpd2labTl5YldGMElsMHNJbVJsYlc4aU9uUnlkV1Y5');

// Set the extensions
jspreadsheet.setExtensions({ formula });

// Create a new spreadsheet
jspreadsheet(document.getElementById('spreadsheet'), {
  worksheets: [{
    data: [
    [
        "Number",
        "Base",
        "LOG Result"
    ],
    [
        100,
        10,
        "=LOG(A2,B2)"
    ],
    [
        8,
        2,
        "=LOG(A3,B3)"
    ],
    [
        1000,
        "",
        "=LOG(A4)"
    ],
    [
        16,
        2,
        "=LOG(A5,B5)"
    ]
]
  }]
});
</script>
</html>
import React, { useRef } from "react";
import { Spreadsheet, Worksheet, jspreadsheet } from "@jspreadsheet/react";
import formula from "@jspreadsheet/formula-pro";
import "jsuites/dist/jsuites.css";
import "jspreadsheet/dist/jspreadsheet.css";

// Set license
jspreadsheet.setLicense('ZDliZmExMTVjMTYyYjY4MDJmYzM2NTAwNDQyMThjNmFkY2Y0NDQyNWMxNmU1ZDgzMDQ1NTdkNDdiNDhhODRjMmViODQwYzY5MGEyMmFkYzkxYmU3MWQ5ZDg2MjUzY2E4MGM4YTFjMDJmYzIwOTUzMGU4OGUxOThjZjkzOGVjMmQsZXlKamJHbGxiblJKWkNJNklpSXNJbTVoYldVaU9pSktjM0J5WldGa2MyaGxaWFFpTENKa1lYUmxJam94TnpVM01EY3pNekV4TENKa2IyMWhhVzRpT2xzaWFuTndjbVZoWkhOb1pXVjBMbU52YlNJc0ltTnZaR1Z6WVc1a1ltOTRMbWx2SWl3aWFuTm9aV3hzTG01bGRDSXNJbU56WWk1aGNIQWlMQ0p6ZEdGamEySnNhWFI2TG1sdklpd2lkMlZpWTI5dWRHRnBibVZ5TG1sdklpd2lkMlZpSWl3aWJHOWpZV3hvYjNOMElsMHNJbkJzWVc0aU9pSXpOQ0lzSW5OamIzQmxJanBiSW5ZM0lpd2lkamdpTENKMk9TSXNJbll4TUNJc0luWXhNU0lzSW1Ob1lYSjBjeUlzSW1admNtMXpJaXdpWm05eWJYVnNZU0lzSW5CaGNuTmxjaUlzSW5KbGJtUmxjaUlzSW1OdmJXMWxiblJ6SWl3aWFXMXdiM0owWlhJaUxDSmlZWElpTENKMllXeHBaR0YwYVc5dWN5SXNJbk5sWVhKamFDSXNJbkJ5YVc1MElpd2ljMmhsWlhSeklpd2lZMnhwWlc1MElpd2ljMlZ5ZG1WeUlpd2ljMmhoY0dWeklpd2labTl5YldGMElsMHNJbVJsYlc4aU9uUnlkV1Y5');

// Set the extensions
jspreadsheet.setExtensions({ formula });

export default function App() {
    // Spreadsheet array of worksheets
    const spreadsheet = useRef();

    // Worksheet data
    const data = [
    [
        "Number",
        "Base",
        "LOG Result"
    ],
    [
        100,
        10,
        "=LOG(A2,B2)"
    ],
    [
        8,
        2,
        "=LOG(A3,B3)"
    ],
    [
        1000,
        "",
        "=LOG(A4)"
    ],
    [
        16,
        2,
        "=LOG(A5,B5)"
    ]
];

    // Render component
    return (
        <Spreadsheet ref={spreadsheet}>
            <Worksheet data={data} />
        </Spreadsheet>
    );
}
<template>
    <Spreadsheet ref="spreadsheet">
        <Worksheet :data="data" />
    </Spreadsheet>
</template>

<script>
import { Spreadsheet, Worksheet, jspreadsheet } from "@jspreadsheet/vue";
import "jsuites/dist/jsuites.css";
import "jspreadsheet/dist/jspreadsheet.css";
import formula from "@jspreadsheet/formula-pro";

// Set license
jspreadsheet.setLicense('ZDliZmExMTVjMTYyYjY4MDJmYzM2NTAwNDQyMThjNmFkY2Y0NDQyNWMxNmU1ZDgzMDQ1NTdkNDdiNDhhODRjMmViODQwYzY5MGEyMmFkYzkxYmU3MWQ5ZDg2MjUzY2E4MGM4YTFjMDJmYzIwOTUzMGU4OGUxOThjZjkzOGVjMmQsZXlKamJHbGxiblJKWkNJNklpSXNJbTVoYldVaU9pSktjM0J5WldGa2MyaGxaWFFpTENKa1lYUmxJam94TnpVM01EY3pNekV4TENKa2IyMWhhVzRpT2xzaWFuTndjbVZoWkhOb1pXVjBMbU52YlNJc0ltTnZaR1Z6WVc1a1ltOTRMbWx2SWl3aWFuTm9aV3hzTG01bGRDSXNJbU56WWk1aGNIQWlMQ0p6ZEdGamEySnNhWFI2TG1sdklpd2lkMlZpWTI5dWRHRnBibVZ5TG1sdklpd2lkMlZpSWl3aWJHOWpZV3hvYjNOMElsMHNJbkJzWVc0aU9pSXpOQ0lzSW5OamIzQmxJanBiSW5ZM0lpd2lkamdpTENKMk9TSXNJbll4TUNJc0luWXhNU0lzSW1Ob1lYSjBjeUlzSW1admNtMXpJaXdpWm05eWJYVnNZU0lzSW5CaGNuTmxjaUlzSW5KbGJtUmxjaUlzSW1OdmJXMWxiblJ6SWl3aWFXMXdiM0owWlhJaUxDSmlZWElpTENKMllXeHBaR0YwYVc5dWN5SXNJbk5sWVhKamFDSXNJbkJ5YVc1MElpd2ljMmhsWlhSeklpd2lZMnhwWlc1MElpd2ljMlZ5ZG1WeUlpd2ljMmhoY0dWeklpd2labTl5YldGMElsMHNJbVJsYlc4aU9uUnlkV1Y5');

// Set the extensions
jspreadsheet.setExtensions({ formula });

export default {
    components: {
        Spreadsheet,
        Worksheet,
    },
    data() {
        // Worksheet data
        const data = [
    [
        "Number",
        "Base",
        "LOG Result"
    ],
    [
        100,
        10,
        "=LOG(A2,B2)"
    ],
    [
        8,
        2,
        "=LOG(A3,B3)"
    ],
    [
        1000,
        "",
        "=LOG(A4)"
    ],
    [
        16,
        2,
        "=LOG(A5,B5)"
    ]
]

        return {
            data
        };
    }
}
</script>
import { Component, ViewChild, ElementRef } from "@angular/core";
import jspreadsheet from "jspreadsheet";
import * as formula from "@jspreadsheet/formula-pro";

// Set your JSS license key (The following key only works for one day)
jspreadsheet.setLicense('ZDliZmExMTVjMTYyYjY4MDJmYzM2NTAwNDQyMThjNmFkY2Y0NDQyNWMxNmU1ZDgzMDQ1NTdkNDdiNDhhODRjMmViODQwYzY5MGEyMmFkYzkxYmU3MWQ5ZDg2MjUzY2E4MGM4YTFjMDJmYzIwOTUzMGU4OGUxOThjZjkzOGVjMmQsZXlKamJHbGxiblJKWkNJNklpSXNJbTVoYldVaU9pSktjM0J5WldGa2MyaGxaWFFpTENKa1lYUmxJam94TnpVM01EY3pNekV4TENKa2IyMWhhVzRpT2xzaWFuTndjbVZoWkhOb1pXVjBMbU52YlNJc0ltTnZaR1Z6WVc1a1ltOTRMbWx2SWl3aWFuTm9aV3hzTG01bGRDSXNJbU56WWk1aGNIQWlMQ0p6ZEdGamEySnNhWFI2TG1sdklpd2lkMlZpWTI5dWRHRnBibVZ5TG1sdklpd2lkMlZpSWl3aWJHOWpZV3hvYjNOMElsMHNJbkJzWVc0aU9pSXpOQ0lzSW5OamIzQmxJanBiSW5ZM0lpd2lkamdpTENKMk9TSXNJbll4TUNJc0luWXhNU0lzSW1Ob1lYSjBjeUlzSW1admNtMXpJaXdpWm05eWJYVnNZU0lzSW5CaGNuTmxjaUlzSW5KbGJtUmxjaUlzSW1OdmJXMWxiblJ6SWl3aWFXMXdiM0owWlhJaUxDSmlZWElpTENKMllXeHBaR0YwYVc5dWN5SXNJbk5sWVhKamFDSXNJbkJ5YVc1MElpd2ljMmhsWlhSeklpd2lZMnhwWlc1MElpd2ljMlZ5ZG1WeUlpd2ljMmhoY0dWeklpd2labTl5YldGMElsMHNJbVJsYlc4aU9uUnlkV1Y5');

// Set the extensions
jspreadsheet.setExtensions({ formula });

@Component({
    standalone: true,
    selector: "app-root",
    template: `<div #spreadsheet></div>`
})
export class AppComponent {
    @ViewChild("spreadsheet") spreadsheet: ElementRef;
    // Worksheets
    worksheets: jspreadsheet.worksheetInstance[];

    // Create a new data grid
    ngAfterViewInit() {
        // Create spreadsheet
        this.worksheets = jspreadsheet(this.spreadsheet.nativeElement, {
            worksheets: [{
                data: [
    [
        "Number",
        "Base",
        "LOG Result"
    ],
    [
        100,
        10,
        "=LOG(A2,B2)"
    ],
    [
        8,
        2,
        "=LOG(A3,B3)"
    ],
    [
        1000,
        "",
        "=LOG(A4)"
    ],
    [
        16,
        2,
        "=LOG(A5,B5)"
    ]
]
            }]
        });
    }
}