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

  • 4 weeks 1 day ago
    Transaction isolation level REPEATABLE-READ The recommended level for Drupal is "READ COMMITTED". (Drupal Status Report)

     Edit "/etc/my.cnf" ( under [mysqld] ):

    transaction_isolation="READ-COMMITTED"

    Restart MariaDB / MySQL:

  • 1 month ago
    Wget - Eine Webseite rekursive downloaden

    wget -U 'Mozilla/MyUserAgent' -P MyTempDir123 --wait=0.2 --random-wait -nd -r -x -l 4 -e robots=off --reject

  • 1 month ago
    Wget - Eine Webseite rekursive downloaden

    wget -U 'Mozilla/MyUserAgent2024' -P MyOutPutDirectory --wait=1 --random-wait -nd -r -l 2 -e robots=off --reject

  • 2 months 1 week ago
    CPU benchmarking with sysbench (single-threaded/all cores)

     

    # sysbench --threads="$(nproc)" cpu run

  • 2 months 1 week ago
    CPU benchmarking with sysbench (single-threaded/all cores)

    # sysbench --threads="$(nproc)" cpu run

  • 2 months 1 week ago
    Linux Autovervollständigung - bash autocomplete
    source ~/.bashrc

    Diese Lösung wird empfohlen aber hat bei mir nicht funktioniert.

    Welche Alternative gibt es?

  • 2 months 1 week ago
    PHP-CLI auf PHP8.2 umstellen (für Composer, Drush etc)

    ln -snf /opt/plesk/php/8.3/bin/php /etc/alternatives/php

  • 2 months 1 week ago
    Drush Update failed (require php >=8.2)

    In composer.json, update: 

     

  • 2 months 1 week ago
    Drupal: Anmeldung fehlgeschlagen Es hat mehr als 5 fehlerhafte Anmeldeversuche für dieses Benutzerkonto gegeben. Es ist vorübergehend gesperrt.
    drush sqlq "DELETE FROM flood"
  • 2 months 1 week ago
    Drupal SMTP + Gmail funktioniert nicht mehr (Passwort ist richtig); was ist die Lösung?