Excel: abhängig vom Datum Summen bilden

Hallo liebes Community,

leider bin nicht so fit in Excel und brauche eure Unterstützung. Ich habe folgende Frage zu lösen:

So seht ungefähr meine Tabelle aus:

Datum | Filiale1| Filieale 2
-----------------|------------|--------------
01.01.2014 | 1200 | 1350
01.01.2014 | 1150 | 1400
02.01.2014 | 900 | 500
01.01.2014 | 790 | 900
05.01.2014 | 905 | 700
…...............................

Es gibt mehrere Einträge pro Tag. Ich muss pro Filiale pro Tag die Summen berechnen. Genauso pro Filiale pro Monat und die Gesamtsummen.

Wie kann ich mit Excel diese berechnen?

Comments

import java.math.BigInteger;

import java.util.HashSet;

import java.util.Locale;

import java.util.Set;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

 

 

/**

 * Serviceroutinen um Banknummer wie z.B. IBAN zu checken.

 *

 */

public class BankingNumberValidation

{

  final static private Set ISO_COUNTRY_CODES = new HashSet();

 

 

  final static public int NOT_AN_IBAN          = 0;

  final static public int BAD_IBAN_CHECKNUM    = 1;

  final static public int GOOD_IBAN            = 2;

  final static public int EU_IBAN              = 3;

 

  final static public int NOT_A_BIC           = 0;

  final static public int GOOD_BIC            = 1;

  final static public int EU_BIC              = 2;

 

 

  final static private BigInteger BIG_INT_97 = new BigInteger("97");

  final static private BigInteger BIG_INT_1  = new BigInteger("1");

  final static private Pattern    IBAN_PAT   = Pattern.compile(("([A-Z]{2})([0-9]{2})([\\w]{1,30})"));

 

  static

  {

    String[] cCodes = Locale.getISOCountries();

    

    for (int i=0; i<cCodes.length; i++)

    {

      ISO_COUNTRY_CODES.add(cCodes[i]);

    }

  }

 

  /**

  * checks if the given IBAN seems to be an iban (without countrycode-check)

  * and validates the checknumber

  * this routine is a bit cheap but also fast since no country-codes are checked

  *

  * @param iban

  * @return (int) NOT_AN_IBAN       , if given String does not matche basic IBAN-format

  *               BAD_IBAN_CHECKNUM , if basic IBAN-format is OK but not the checknumber

  *               GOOD_IBAN         , if basic IBAN-format and hecknumber are OK

  */

  static public int isIBANCheckNumberOK(String iban)

  {

    int rc;

    Matcher matcher = IBAN_PAT.matcher(iban);

    

    if (matcher.matches())

    {

      StringBuffer ibanBuff  = new StringBuffer(34);

      StringBuffer valueBuff = new StringBuffer(34);

      

      ibanBuff.append(matcher.group(3));

      ibanBuff.append(matcher.group(1));

      ibanBuff.append(matcher.group(2));

      

      for(int i=0; i<ibanBuff.length(); i++)

      {

        int  v;

        char c =ibanBuff.charAt(i);

        if ((c>='A' && c<='Z'))

        {

          v = c - 'A' + 10;

          valueBuff.append(v);

        }

        else if ((c>='a' && c<='z'))

        {

          v = c - 'a' + 10;

          valueBuff.append(v);

        }

        else

        {

          valueBuff.append(c);

        }

        

      }

      

      BigInteger val = new BigInteger(valueBuff.toString());

      

      rc = val.divideAndRemainder(BIG_INT_97)[1].equals(BIG_INT_1)? GOOD_IBAN : BAD_IBAN_CHECKNUM;

      

    }

    else

    {

      rc = NOT_AN_IBAN;

    }

    

    return rc;

  }

 

 

  /**

  * checks if the given IBAN seems to be an iban with countrycode-check

  * and validates the checknumber

  * if this validation is allright it is checked whether the country-code is

  * sorts to european regulations payment area or not

  *

  * the higher the returned value the better the IBAN so if you just want to know

  * if the IBAN is allright but don't care about the european-area you just

  * do something like this:

  *  <code>

  *      if (BankingNumberValidation.isIBAN(iban) >= GOOD_IBAN)

  *      {

    *              ... do something

  *      }

  *  </code>

  *

  * @param iban

  * @return (int) NOT_AN_IBAN       , if given String does not matche basic IBAN-format or countrycod is unkown

  *               BAD_IBAN_CHECKNUM , if basic IBAN-format and countrycode are OK but not the checknumber

  *               GOOD_IBAN         , if basic IBAN-format, countrycode and checknumber are OK

  *               EU_IBAN           , if basic IBAN-format, countrycode, checknumber are OK and the countrycode is european

  *

  * @see de.cmk.util.banking.EUCountryCodes.isIbanEUCountry

  */

  static public int isIBAN(String iban)

  {

    int rc;

    Matcher matcher = IBAN_PAT.matcher(iban);

    

    if (matcher.matches() && ISO_COUNTRY_CODES.contains(iban.substring(0,2)))

    {

      StringBuffer ibanBuff  = new StringBuffer(34);

      StringBuffer valueBuff = new StringBuffer(34);

      

      ibanBuff.append(matcher.group(3));

      ibanBuff.append(matcher.group(1));

      ibanBuff.append(matcher.group(2));

      

      for(int i=0; i<ibanBuff.length(); i++)

      {

        int  v;

        char c =ibanBuff.charAt(i);

        if ((c>='A' && c<='Z'))

        {

          v = c - 'A' + 10;

          valueBuff.append(v);

        }

        else if ((c>='a' && c<='z'))

        {

          v = c - 'a' + 10;

          valueBuff.append(v);

        }

        else

        {

          valueBuff.append(c);

        }

        

      }

      

      BigInteger val = new BigInteger(valueBuff.toString());

      

      if (val.divideAndRemainder(BIG_INT_97)[1].equals(BIG_INT_1))

      {

        if (EUCountryCodes.isIbanEUCountry(iban))

        {

          rc = EU_IBAN;

        }

        else

        {

          rc = GOOD_IBAN;

        }

      }

      else

      {

        rc = BAD_IBAN_CHECKNUM;

      }

      

    }

    else

    {

      rc = NOT_AN_IBAN;

    }

    

    return rc;

  }

 

 

  /**

  * very simple formal check on given bic

  * cheks if the countrycode is correct or even european

  * assumes thta a bic is 11 or 8 characters long and

  * an that the 4. and 5. offset is the country-code

  * @param bic

  * @return

  */

  static public int isBIC(String bic)

  {

    int rc ;

    if (bic.length()==11 || bic.length()==8)

    {

      if (EUCountryCodes.isBicEUCountry(bic))

      {

        rc = EU_BIC;

      }

      else if  (ISO_COUNTRY_CODES.contains(bic))

      {

        rc = GOOD_BIC;

      }

      else

      {

        rc = NOT_A_BIC;

      }

    }

    else

    {

      rc = NOT_A_BIC;

    }

    

    return rc;

  }

 

  public static void main(String argv[])

  {

    System.out.println(argv[0]+" isBIC:"+ isBIC(argv[0]));

    

    System.out.println(argv[0]+" isIBAN:"+ isIBAN(argv[0]));

  }

 

 

}

 

import java.util.HashSet;

import java.util.Set;

 

 

public class EUCountryCodes

{

  static private Set m_ibanCountryCodes = new HashSet();

  static private Set m_bicCountryCodes  = new HashSet();

 

  static

  {

    m_ibanCountryCodes.add("AT");

    m_ibanCountryCodes.add("BE");

    m_ibanCountryCodes.add("CY");

    m_ibanCountryCodes.add("CZ");

    m_ibanCountryCodes.add("DE");

    m_ibanCountryCodes.add("DK");

    m_ibanCountryCodes.add("EE");

    m_ibanCountryCodes.add("ES");

    m_ibanCountryCodes.add("FI");

    m_ibanCountryCodes.add("FR");

    m_ibanCountryCodes.add("GB");

    m_ibanCountryCodes.add("GI");

    m_ibanCountryCodes.add("GR");

    m_ibanCountryCodes.add("HU");

    m_ibanCountryCodes.add("IE");

    m_ibanCountryCodes.add("IS");

    m_ibanCountryCodes.add("IT");

    m_ibanCountryCodes.add("LI");

    m_ibanCountryCodes.add("LT");

    m_ibanCountryCodes.add("LU");

    m_ibanCountryCodes.add("LV");

    m_ibanCountryCodes.add("MT");

    m_ibanCountryCodes.add("NL");

    m_ibanCountryCodes.add("NO");

    m_ibanCountryCodes.add("PL");

    m_ibanCountryCodes.add("PT");

    m_ibanCountryCodes.add("SE");

    m_ibanCountryCodes.add("SI");

    m_ibanCountryCodes.add("SK");

    

    m_bicCountryCodes.add("AT");

    m_bicCountryCodes.add("BE");

    m_bicCountryCodes.add("CY");

    m_bicCountryCodes.add("CZ");

    m_bicCountryCodes.add("DE");

    m_bicCountryCodes.add("DK");

    m_bicCountryCodes.add("EE");

    m_bicCountryCodes.add("ES");

    m_bicCountryCodes.add("FI");

    m_bicCountryCodes.add("FR");

    m_bicCountryCodes.add("GB");

    m_bicCountryCodes.add("IE");

    m_bicCountryCodes.add("GF");

    m_bicCountryCodes.add("GI");

    m_bicCountryCodes.add("GP");

    m_bicCountryCodes.add("GR");

    m_bicCountryCodes.add("HU");

    m_bicCountryCodes.add("IE");

    m_bicCountryCodes.add("IS");

    m_bicCountryCodes.add("IT");

    m_bicCountryCodes.add("LI");

    m_bicCountryCodes.add("LT");

    m_bicCountryCodes.add("LU");

    m_bicCountryCodes.add("LV");

    m_bicCountryCodes.add("MQ");

    m_bicCountryCodes.add("MT");

    m_bicCountryCodes.add("NL");

    m_bicCountryCodes.add("NO");

    m_bicCountryCodes.add("PL");

    m_bicCountryCodes.add("PT");

    m_bicCountryCodes.add("RE");

    m_bicCountryCodes.add("SE");

    m_bicCountryCodes.add("SI");

    m_bicCountryCodes.add("SK");

  }

 

 

 

 

  static public boolean isBicEUCountry(String bic)

  {

    return m_bicCountryCodes.contains(bic.substring(4,6));

  }

 

  static public boolean isIbanEUCountry(String iban)

  {

    return m_ibanCountryCodes.contains(iban.substring(0,2));

  }

}

 

/**

  *

  * Beschreibung

  *

  * @version 1.0 vom 25.04.2017

  * @author

  */

public class main {

 

  public static void main(String[] args) {

    new BankingNumberValidation();

  } // end of main

 

} // end of class main

 

Neuen Kommentar schreiben

CAPTCHA
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.

Mit wenn und Summenprodukt kannst du die Tagessummen in einer Spalte anzeigen lassen. Hier ist Formel dazu:

=WENN(A2>A3;SUMMENPRODUKT((A$2:A$1001=A2)*(B$2:D$1001));"")

wenn deine Spalten anders aussehen, muss d die Spalten und Zeilenbezeichnungen überarbeiten. Hier ist noch Screenshot dazu:
excel-summenprodukt-wenn-tagessumme.jpg

Suche

Neueste Kommentare

  • 1 month 3 weeks ago
    [preflight] The following restricted PHP modes have non-empty values: {open_basedir}. This configuration is incompatible with drush.

    Same with Drush 13 + PHP 8.3

  • 1 month 3 weeks ago
    Acronis CyberProtect Agent For Linux (Strato Root Server)

    Initializing...

    Error : Failed to install the required package 'RPM' by using APT. Please install it manually. 

    Exit


    Solution:

  • 1 month 3 weeks ago
    Acronis CyberProtect Agent For Linux (Strato Root Server)

    So habe es installiert und dann mit Hilfe von Key/Code (über Website von Acronis Cyber Protect) aktiviert:

  • 2 months ago
    No route found for the specified format html. Supported formats: csv, json. (Drupal Routing)

    I have a view with a path like /my-content-export to export entivies as JSON or CSV.

  • 2 months ago
    InvalidArgumentException: The controller for URI "/admin/flush" is not callable.

    admin_toolbar 3.5.2 is the reason. Patch coming ...

  • 3 weeks 1 day ago
    PDOException: SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock

    Drupal 10.4:

  • 2 months 4 weeks ago
    Server install & config : Debian 12 + Plesk + Apache + nginx + MariaDB + Solr

    Tools & Settings >> Security Policy :

     Allow only secure FTPS connections 

  • 4 months 2 weeks ago
    MariaDB Server Performance Optimieren

     

    /usr/sbin/mariadbd --help --verbose | grep "query.*size"
  • 4 months 2 weeks ago
    MariaDB Server Performance Optimieren

    Commandline:

    systemctl restart mariadb
  • 4 months 2 weeks ago
    MariaDB Server Performance Optimieren

    After my changes in /etc/mysql/db-performance.cnf