• 締切済み

エクセルの関数

   日付  社員名    内容  名前       金額       9月18日 松田一郎  新規  青木一郎     6,000  9月18日 松田一郎  新規  赤堀一子     6,000  9月25日         解約  流石一郎        0  9月27日         解約  五十嵐一郎       0  9月 9日 石田一郎  新規  笹川一郎     6,000    日付  社員名    内容  名前       金額  9月11日 田中一郎  新規  佐藤一郎     6,000 12月25日         解約   佐藤一郎       0 *新規登録から3ヶ月を超えた場合は、手数料を支払う。    日付  社員名    内容   名前       金額  9月11日 田中一郎   新規  佐藤一郎    6,000 11月20日          解約   佐藤一郎  0 *新規登録から3ヶ月以内に解約したので、手数料を支払わない。 名前の列で検索し、同じ名前・新規からの日付が三ヵ月以内・内容が 解約の場合は金額列は0にする。 名前の列で検索し、同じ名前があったら、同じ行の日付の列を参照し てその日付と新規で登録した時の日付を比較して三ヵ月以内の解約な ら支給しない、三ヵ月以上継続したら支給する。 この式を関数を使って作りたいのですが、どうしも解りません、何方 かお教え下さい。 何分にも自分のやりたいことの説明も十分にできないレベルなもので すから宜しくお願いします。

  • cfab
  • お礼率100% (9/9)

みんなの回答

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.2

内容+名前の情報を作って検索すれば可能だと思います。 まず、「3ヶ月前」の日付を簡単に得る為に、アドオンの分析ツールを有効にしてください。 次に先頭に1列挿入します。 これで、B列:日付、C列:社員名、D列:内容、E列:名前、F列金額 となったとします。 A1に =D1&E1 と入れて下までコピー。これで内容+名前の情報が出来ました。 空いているG1に =IF(D1="解約",VLOOKUP("新規"&E1,A:B,2,FALSE),"") と入れて下までコピー。 内容が「解約」の場合、「新規」+名前で検索してその時の日付を取得します。 次にH1に =IF(ISNUMBER(G1),IF(G1<=EDATE(B1,-3),1,0),"") と入れて下までコピー H列で取得した新規の時の日付が解約の日付の3ヶ月以内なら0、それ以上なら1を表示します。 このH列が手数料になります。 ただし、同姓同名の人が何度も新規、解約を繰り返した場合は考慮していません。

cfab
質問者

お礼

ご回答頂きありがとうございます、参考にさせていただきます。 ・・・・・・・同姓同名の人が何度の新規・解約を繰り返すんです場合もあるんです、申し訳有りません。

  • shintaro-2
  • ベストアンサー率36% (2266/6244)
回答No.1

多分、テーブル構造を変えるか、アクセスに移行したほうが楽です。 少なくとも、社員名の空欄に名前を入れること そうしないと、解約日が何から3ヶ月以内なのか、条件抽出ができません。ソートもできません そうでなければ、ユーザ1名は1行にすること(解約、解約日の列を増やす) エクセルの基本は、データ1件毎に1行です。 この場合は、契約者が1件のデータなので、契約者1名が1行に入るように列の項目を設定します。

cfab
質問者

お礼

大変参考になりました。 ありがとう御座いました。 また何かありましたら、アドバイスをお願いします。

関連するQ&A

  • エクセルVBAの質問です

    sample.xlsがあり内容は下記のように A列に名前、B列に数字が入り、行数は一定でありません 田中一郎 3 鈴木健一 5 佐藤太郎 8 田中一郎 5 田中一郎 2 佐藤太郎 7 鈴木健一 3 佐藤太郎 9 鈴木健一 54 佐藤太郎 8 田中一郎 9 このエクセルシートにコマンドボタンを付け、VBAでコマンドボタンを押した場合 指定したエクセルファイル”kekka.xls”に 田中一郎 19 鈴木健一 62 佐藤太郎 32 と言うように、名前別でその氏名の横の数字の合計を表示させたいと考えています。 何卒お知恵をお貸しください、お願いします。

  • エクセルのSUMPRODUCT関数について

    日 名前  2人工 10/1  山田  * 10/1  田中    10/1  佐藤  * 10/1  山田 10/3  佐藤 この表から一日の稼働率をシート2に導きたいと考えています。 2人工のセルに*が入っている場合、0.5と計算し、 10/1日の山田さんの稼働率は0.5+1の1.5です。 自分でチャレンジしたのはW列に日付を数字を書き出して SUMPRODUCT((B2:B13="山口")*(W2:W13=1))というのを考えたのですが、 ここから、2人工にチェックが入っている場合はどうして計算すればいいのか、*を0.5として計算すればいいのか悩んでます。 そしてW列に日付を書かなくても計算できたらなおありがたいです。 どうかどうかお願いいたします。

  • エクセルの関数

    A列に日付B列に金額が入っています。 C1とD1に日付を入力するセルをつくり C1の日からD1の日のB列金額の合計を出したい場合 どのような関数を使えば良いですか?SUMIFで出来ますか?

  • エクセルの関数式です

    エクセルの条件式についてです (IF文) 例えば A列      B列   C列  2008/2/1 500   加藤 2008/3/10 200   鈴木 2008/3/25 100   加藤 2008/4/13 800   佐藤 こんな感じで元データがあるとして、 加藤           鈴木           佐藤 ~2月末 ~3月末 ~4月末 ~2月末 ~3月末 ~4月末 ~3月末 ~4月末 500 200 100                              800 こんな感じで別表を作成したいのですが、 IF(C1="加藤",IF(A1<2008/3/1,B1,""),"") 上記の感じで式を入力しても反映してこないんですが、なんででしょう? ちなみに、元データの 日付、金額、氏名 は別表からの関数式で飛ばしています。 教えてくださーい!   いろんなパターンのIF文でやってみたんですが・・・ 作成したい表の方が、ずれてしまいますので、おかしいですが・・・

  •  エクセルについて質問です。

     エクセルについて質問です。 『同じ日付に同じ名前があった場合、その名前の人の売上合計から10%引きたい』    初めて質問させて頂きます。関数をあまり知らないので、いろいろ検索したのですが、 どうしてもわかりません。教えて頂きたく存じます。宜しくお願い致します。 A列~Z列まで日付や売上や内容などが書かれた表があります。 同じ人が同じ日に同じものを売り上げても、一行にまとめず、複数行に書きます。   そこで、A列に入った日付を参照し、同じ日付に同じ名前(E列)があった場合、 K列かJ列(人によって違うのです)の売上を足して、その10%をU列に表示したい のですが、そのようなことは可能でしょうか? A列      E列   J列   K列    U列 ―――――――――――――――――――――――――――――――――――――――― 2010/01/18  田中  10000   空欄  ―――――――――――――――――――――――――――――――――――――――― 2010/01/18  佐藤   空欄    10000 ―――――――――――――――――――――――――――――――――――――――― 2010/01/18  田中   10000   空欄   2000←これを出したい。 ―――――――――――――――――――――――――――――――――――――――― 2010/01/18  佐藤  空欄    10000    2000←これを出したい。 ―――――――――――――――――――――――――――――――――――――――― 2010/01/18  斉藤  20000  空欄   空欄←ひとつしか売上が無いので10%は出さなくて良い。 ――――――――――――――――――――――――――――――――――――――――  わかりづらくても申し訳ありません。 どなたかお力を貸してください。          

  • EXCELでの条件付き合計

    EXCELで以下のような表を作成しました。 ・日付の行数はランダムです。 (無い日付もあれば複数行ある日付もあります) ・日付の列,金額の列にはそれぞれ”日付”,”金額”と名前をつけています。 ある日付からある日付までの金額の合計を計算したいと考えています。 SUMIF関数を使用すればできそうだということはわかるのですが, 日付の条件をどのように入力すればいいのかがよくわかりません。 どのように入力すればいいのでしょうか? 日付     金額 12月1日    123     12月15日    962    12月31日     56

  • エクセルの関数(式)を考えて!

    エクセルでデータベースを作っているのですが、日付、名前、購入金額、割引金額などを書いてます。 そこで、割引金額に「60日以内に再購入した場合3割の割引金額を出す。」というような式を書けるでしょうか? 書けるならどんな関数を使ってどんな式になりますか?

  • Excel 関数 

    Excelの関数の使い方についての質問です。 以下のようなファイルを作成しています。 *************************  日  支出 1日  \2000 2日  \1000 3日  \5000 4日  \600  ・   ・  ・   ・  ・   ・ ************************* "支出"という列の中から最大値(最高支出金額)を見つけ、その最大値を返した日付け(=最も支出金額が高かった日)をあいているセルに表示("日"という列から日付をひっぱってくる)させるにはどのような関数(またはマクロ)を組めばいいのでしょうか??

  • エクセルの関数

    エクセルの関数についての質問です。 シート1(売上)日付・金額 シート2(月報)日付・金額 シート1(売上)から日付と金額を拾い出して、シート2(月報)に集計したいのですが、シート1(売上)では日付が同じときもあり、シート2(月報)では金額も合計しなくてはいけないのです。もし、ご存知の方がいらっしゃいましたら教えてください。 こんな感じです。 シート1(売上) 日付   金額 2月2日  20000 2月4日  25000 2月5日  20000 2月4日  18000 2月7日  20000 2月10日  23000  ・    ・  ・    ・  ・    ・ シート2(月報) 日付   金額 2月1日  ここに関数 2月2日  ここに関数 2月3日  ここに関数 2月4日  ここに関数 2月5日  ここに関数 2月6日  ここに関数 2月7日  ここに関数  ・     ・  ・     ・  ・     ・ 伝わりましたでしょうか? よろしくお願い致します。

  • Excelの関数を教えてください

    初めまして。よろしくお願いします。 関数を使って、以下のようなデータを作成することができれば、 その関数を教えてください。 Sheet1には次のように入力されています   A       B 1 日付      金額 2 2010/1/1 500 3 2010/2/5  300 4 2010/1/23 10000 5 2010/2/1  200 ・ ・ ・ A列に日付、B列に金額が入力されていて、行は決まっていません。 これをSheet2に集計したいのですが、B2~B13に関数を使ってできますか? Sheet2   A     B 1 月    金額 2 1月 3 2月 4 3月 ・ ・ ・ 13 12月 14 合計 Excelがわからなくてこまっています。詳しい方、ぜひ教えてください。 よろしくお願いします。

専門家に質問してみよう