エクセル(2000)で、関数を使って簡略化したいのですが、どうやっていいか分からないので、教えて下さい。

お願いします。

A銀行A’支店から振込みです。

「同一銀行同一支店への振込みの場合」
A銀行A’支店  3万円未満 105円
        3万円以上 210円

「同一銀行他支店への振込みの場合」
A銀行B支店  3万円未満 210円
       3万円以上 420円

「他行への振込みの場合」
C銀行D支店  3万円未満 420円
       3万円以上 630円

また、各セルには
A1  会社名
B1  銀行名
C1  支店名
D1  請求額
E1  振込手数料
F1  振込額(D1-E1)

と、したいのです。B1とC1は必ず別のセルにしたいのです。
CONCATENATE関数を使い、どこかのセルを非表示にするっていう方法でも構いません。

回答オープンは19日の夜になりますので、あしからず・・・

オマケで結構ですが、関数が分かりやすくまた具体例を挙げているサイトも併せて教えて頂いた方には、
ポイントをプラスさせていただきたいと思います。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2004/09/17 09:53:09
  • 終了:--

回答(8件)

id:fujimako No.1

fujimako回答回数108ベストアンサー獲得回数02004/09/17 10:14:32

ポイント30pt

力業になりますが、下記の方法はいかがでしょうか

---

A2のセルに

適当な会社名

B2のセルに

適当な銀行名

C2のセルに

適当な支店名

D2のセルに

適当な請求金額

E2のセルに

=IF(B2=”A銀行”,IF(C2=”A’支店”,IF(D2<30000,105,210),IF(D2<30000,210,420)),IF(D2<30000,420,630))

F2のセルに

D2-E2

を入力してみて下さい。

動作確認もしました。

id:go4649

ありがとうございました!できました!

2004/09/19 16:49:25
id:deepskyblue No.2

deepskyblue回答回数35ベストアンサー獲得回数02004/09/17 10:50:17

ポイント10pt

http://briefcase.yahoo.co.jp/sweethomebuilder

Yahoo!ブリーフケース - 一覧表示

上記に、エクセルファイルを置きました。

こんな感じでよかったでしょうか?

自分では、エクセルの関数を勉強するのに、特定のサイトは

利用してなかったので、お勧めはありませんが、

知りたい関数を検索にかけると、たいていそんなに探さなくても

出てくるので、その都度検索かけていろんなサイトを利用していますよ。

(答えになってなくてすみません)

id:go4649

ふむふむ。関数のレベルが高すぎて・・・でも、ありがとうございました!

2004/09/19 16:50:39
id:aki73ix No.3

aki73ix回答回数5224ベストアンサー獲得回数272004/09/17 11:41:36

ポイント30pt

ちょっとF1が変な気がするのですが・・・

Sheet2は請求額をあらかじめ上乗せしておき振り込み手数料を差し引いて計算する場合で、$D1-$E1になります

当然エラー処理が必要です

Eセルは

=IF($D2=””,””,IF($B2=”A銀行”,IF($C2=”A’支店”,IF($D2>=30210,210,IF($D2>=30105,”ERROR”,105)),IF($D2>=30420,420,IF($D2>=30210,”ERROR”,210))),IF($D2>=30630,630,IF($D2>=30420,”ERROR”,420))))

のようになります

Sheet1は請求額に振り込み手数料をひいて計算する方式で$D1+$E1で処理するようにしました

=IF($D2=””,””,IF($B2=”A銀行”,IF($C2=”A’支店”,IF($D2>=30000,210,105),IF($D2>=30000,420,210)),IF($D2>=30000,630,420)))

なお、「A銀行A’支店から振込みです。」の文字列を解析して銀行名、支店名に分けたいのであれば

Sheet3のように処理します

銀行名

=IF($A1=””,””,LEFT($A1,1+SEARCH(”銀行”,$A1)))

支店名

=IF($A1=””,””,MID($A1,2+SEARCH(”銀行”,$A1),SEARCH(”から振”,$A1)-SEARCH(”銀行”,$A1)-2))

エクセル入門講座と

関数の一覧がわかりやすくのってるサイトです

id:go4649

相変わらずakiさんのハイレベルな回答に私、しどろもどろしております(笑)

関数のサイトありがとうございます。

2004/09/19 16:52:01
id:paphio No.4

paphio回答回数299ベストアンサー獲得回数02004/09/17 11:53:38

ポイント10pt

振込手数料の判別にindex関数を使ってみました。

URLにサンプルがありますので、開いてみてください。

id:go4649

あらぁ・・・削除されてしまったのでうすね・・・見れませんでした(泣)

2004/09/19 16:52:41
id:KHE No.5

KHE回答回数43ベストアンサー獲得回数02004/09/17 14:02:20

ポイント30pt

http://www.eurus.dti.ne.jp/~yoneyama/index.html

よねさんのWordとExcelの小部屋

こんもサイトに関数一覧表もあります。

IFでできましたけど、スマートではないでしょうか?

=IF(D2<30000,IF(B2=”A銀行”,(IF(C2=”A支店”,105,IF(B2<>”A銀行”,420,210))),420),IF(B2=”A銀行”,(IF(C2=”A支店”,210,IF(B2<>”A銀行”,630,420))),630))

id:go4649

なるほど〜

サイトありがとうございます!

2004/09/19 16:53:28
id:yotinakk No.6

yotinakk回答回数18ベストアンサー獲得回数02004/09/17 23:37:23

ポイント10pt

URLはダミーです。

まず

H1 に

=IF($B1=”A”,2,0)

I1 に

=IF($C1=”A’”,1,0)

と入れておきます。これで、

同銀行同支店 の時 H1+I1=3

同銀行異支店H1+I1=2

異銀行同支店H1+I1=1

(意味無いですけど)

異銀行異支店H1+I1=0

となります。さらに、以下の表を別の場所に書いておきます。

1420420210105

30000630630420210

ここでは$L$13:$P$14に書いてあることにします。

で、E1は

=VLOOKUP($D1,$L$13:$P$14,$G1+$H1+2,TRUE)

これで表を参照して手数料を出しています。Vlookup関数についてはExcelのHELPを見て下さい。最後のTrueがミソ。

id:go4649

???????

全く解りませんでした(ペコリ)

2004/09/19 16:54:12
id:prsoft No.7

prsoft回答回数2ベストアンサー獲得回数02004/09/18 06:14:54

ポイント10pt

http://www.excel.studio-kazu.jp/lib/e1tw/e1tw.html

エクセルの学校:VLOOKUP(e1tw)

手順

1 基表を作成

(銀行名&支店名、3万円以下、3万円以上)

2 VLOOKUP関数を利用

=VLOOKUP(C15 &D15,$C$2:$E$6,2,1)

c15 &d15は検索値(銀行名と支店名をつなぐ形で)

基表はじめからつなぐ

$C$2:$E$6は基表の範囲

2は基表の2列目

=VLOOKUP(C16 &D16,$C$2:$E$6,3,1)

IF(対象>=30000,3万以上,3万以下)

=IF(E17>=30000,VLOOKUP(C16 &D16,$C$2:$E$6,3,1),VLOOKUP(C16 &D16,$C$2:$E$6,2,1))

id:go4649

勉強してみます(汗)

2004/09/19 16:55:13
id:ta2 No.8

ta2回答回数5ベストアンサー獲得回数02004/09/18 11:50:41

ポイント30pt

URLはmy日記です。

詳細まで考えてみました。

①単純にIF文を使ってみます。

  IF(論理式, 論理式を満たす場合の値, 論理式を満たさない場合の値)

 ですので、D1が30000未満なら105、30000以上なら210という式は、

  IF(D1<30000, 105, 210)

 となります。このようなif文を組み合わせると、E1には

  =IF(B1=”同一銀行”, IF(C1=”同一支店”, IF(D1<30000, 105, 210), IF(D1<30000, 210, 420)), IF(D1<30000, 420, 630))

 という式を書き、F1には

  =D1-E1

 という式を書けばよいことになります。

②...ところが上記の式では、同一銀行同一支店で請求額30100円、手数料210円、振込額29890円となり、

 振込額が30000円未満にもかかわらず、手数料210円という矛盾が生じる場合があります。

 この場合は、手数料105円、振込額29995円が正解です。

 ということで、E1の式は次のように改善します。

  =IF(B1=”同一銀行”, IF(C1=”同一支店”, IF(D1<30105, 105, 210), IF(D1<30210, 210, 420)), IF(D1<30420, 420, 630))

③これでもまだダメです。

 同一銀行同一支店で請求額30200円、手数料210円、振込額29990円となり、

 やはり矛盾が生じる場合があります。

 この場合の正解は、手数料105円、振込額30095円...?

 そう、どのみち矛盾が生じます。

 詳しい説明は省きますが、請求額が、請求額が30105円〜30209円の場合は、

 振込手数料105円、振込額29999円 とすることで、矛盾を解決でき、

 振込元も振込先も損しないで済みます。

 ということで、E1の式を次のように改善します。

  =IF(B1=”同一銀行”, IF(C1=”同一支店”, IF(D1<30210, 105, 210), IF(D1<30420, 210, 420)), IF(D1<30630, 420, 630))

 また、F1の式も次のように改善します。

  =IF(B1=”指定銀行”, IF(C1=”指定支店”, IF(AND(D1>=30105, D1<30210), 29999, D1-E1),

                     IF(AND(D1>=30210, D1<30420), 29999, D1-E1)),

                     IF(AND(D1>=30420, D1<30630), 29999, D1-E1))

 ちなみに、AND関数は

  AND(TRUE,TRUE) → TRUE

  AND(TRUE,FALSE) → FALSE

 というように、引数が全てTRUEの場合にTRUEを返します。

 これで完成です。

技らしいです。

長くなっちゃいましたね(汗

お役に立てれば幸いです。

id:go4649

ありがとうございます。

請求額によって振り込み手数料が決まるため、振込み金額は無視していいですよ〜

でも、分かりやすい解説、ありがとうございました!

サイトもありがとうございました!

2004/09/19 16:59:27
  • id:paphio
    4番の回答者です。ごめんなさい。

    ごめんなさい。ファイルが見えませんでした。
    最近重たくて、うまくアクセスできなくなっていました。
    せっかく作ったので、よしよろしければ見てください。
    回答の中でも書きましたが、他の方とは違う回答でしたので、別のところにおきました。

    私は、長い計算式が嫌いなので、各セルは計算式が長くならないようになっています。
    http://jp.y42.briefcase.yahoo.co.jp/bc/paphio_99/vwp2?.tok=bc_vPdBBkNOhCmjZ&.dir=/HATENA&.dnm=hatena0917.xls&.src=bc
  • id:yotinakk
    すいません。

    表がちゃんと見えてなかったみたいです。
    すいません。

    1 420 420 210 105
    30000 630 630 420 210

    ここが$L$13:$P$14に書いてあることにします。

    Excelのファイルを、リンクの場所に置いておきますので、
    よろしかったらご覧になって下さい。


    http://homepage2.nifty.com/yyan/pub/furikomi.xls
  • id:garyo
    関数ではないのですが

    マクロで作って見ました。
    http://d.hatena.ne.jp/garyo/20040920#1095657941

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません