[[20080325135812]] 『¥***のみの足し算がしたいです』(松) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『¥***のみの足し算がしたいです』(松)
 
  08/02/25   23:53      御殿山   \250   1     
  08/02/25   23:44   本庄児玉   八王子   \1,650   1     
  08/02/25   11:59   八王子本線   本庄児玉   \2,700   1     
  08/02/25   10:36      御殿山   \250   1     
こんな表がありまして
 
一つのセルに
08/02/25   23:53      御殿山   \250   1  
ここまで入れてあります
 
¥*,*** の金額の合計が出るようにしたいのですが
どうすれば良いでしょうか?

Excel2007 ビスタ です
 


 提示されたデータが A1:A4 にあるとして、

 B1セル =LOOKUP(10^17,--LEFT(MID(A1,FIND("\",A1)+1,20),ROW($A$1:$A$20)))
 以下、B4セルまでコピー。
 B5セル =SUM(B1:B4)

 エラー処理はしてありません。\*,*** が無いとエラーになります。
 
(純丸)(o^-')b


 できました!
 ありがとうございました
  
 計算機でポチポチ計算しないといけないかなぁと思っていましたので
 とても助かりましたです ペコリ
 
 松


 >一つのセルに
 >08/02/25   23:53      御殿山   \250   1  
 >ここまで入れてあります
そもそもこれがややこしくする原因のような。
 
データ>区切り位置でスペース単位で列分割すれば、
"\250" も数値に変換されるので、
SUM関数で計算できるようになりますよ。
(みやほりん)(-_∂)b


 相乗りで申し訳ないのですが、関数を勉強中なので質問させてください。
 =LOOKUP(10^17,--LEFT(MID(A1,FIND("\",A1)+1,20),ROW($A$1:$A$20)))
 において途中まで理解できましたがLOOKUP関数と--LEFTの--が理解できません
 でしたので御教授してください。(MG)


 [御参考]
[[20040530061813]]『「--」と「!」の意味?』(masabou5)
 (dack)

 みやほりんさん、ありがとうございました
 HPに載っている表をエクセルに張り付けたものでございまして
 こんな風になってしまっています
 スペースの位置が変なのか区切り位置ですと
 おかしなところが出てきてしまい
 うまくいきませんでしたです..汗
 
 松


 MGさんへ。
 LOOKUP関数を使って、数字+文字列 という文字列から
 数字だけを取り出す事が出来ます。その数式について、 
 簡単な例で説明を書いてみます。

      A       B 
 1  12ABC	  =LOOKUP(10^17,--LEFT(A1,ROW($A$1:$A$5)))

 B1には、12 が返ります。この数式を変形していくと

 =LOOKUP(10^17,--LEFT(A1,{1;2;3;4;5})))
               ↓
 =LOOKUP(10^17,--{"1";"12";"12A";"12AB";"12ABC"})
               ↓
 =LOOKUP(10^17,{1;12;#VALUE!;#VALUE!;#VALUE!})

 と、なります。この時、LOOKUP関数の検索値となる10^17 は、10の17乗で、
 かなり大きい数字なので、検索範囲の {1;12;#VALUE!;#VALUE!;#VALUE!} には
 該当する数字が無く、その場合は、一番後ろの数字を返します。
 従って、12 が返る訳です。

 LEFT関数の第2引数に「配列」を指定する手法は、容易には
 理解しにくいと思いますが、「配列」を指定することによって
 返る答えも配列になるということを利用してます。

 なかなか説明しづらいので、この辺で勘弁して下さい。
 尚、ABC1234 のように、文字列+数字 の場合は、LEFT関数を
 RIGHT関数にすることで応用出来ます。
 
(純丸)(o^-')b  ※時間が取れず遅くなりました

 ◆ダイレクトに合計を出す方法です
 =SUMPRODUCT((LEFT(REPLACE(A1:A4,1,FIND("\",A1:A4),),FIND(" ",REPLACE(A1:A4,1,FIND("\",A1:A4),))-1)*1))
 (Maron)

 ユーザー定義関数は如何でしょう?
 
 標準モジュールへコピペ
'--------------------
Function sumnum(Tbl As Range) As Integer
Dim Rng As Range
Dim Mynum As Variant
    For Each Rng In Tbl
        For Each Mynum In Split(Rng)
            If Left$(Mynum, 1) = "\" Then
                sumnum = sumnum + Format(Mynum, "#")
            End If
        Next Mynum
    Next Rng
End Function
 
 使用方法
 =sumnum(A1:A4)
 等と数式として入力
 
 (キリキ)(〃⌒o⌒)b 

 ◆これなら、範囲が自由です
 =SUMPRODUCT((LEFT(REPLACE(A1:A10&"00",1,FIND("\",A1:A10&"\"),),FIND(" ",REPLACE(A1:A10,1,FIND("\",A1:A10&"\"),)&"♪ ")-1)*1))
 (Maron)

 せっかく教えて頂いたのですが
 元の表が4/1から変わってしまい
 教えていただいた計算式が使えなくなってしまいました・・

  \580 の両端に半角スペースがあり、これを消す方法はありますでしょうか?
 外せたら、SUMの足し算で計算できますので
 ありましたら教えてください

 元表はETC利用照会サービスというサイトのETC利用証明のリストになります
 よろしくお願いいたします



 ライブラリの計算ができないをみました
 =VALUE(MID(E9,2,4))
 4のところですが桁数が変わると、ここの数字を手で変えないといけません
 桁が変わってもエラーにならない計算式はありますでしょうか?
 3桁からカンマが入って5桁くらいの範囲ですが数字化したいです
 よろしくお願いいたします


 SPACEと金額だけ入力されたセルでしたら、こちらが参考になるように思います。↓ (#REF!MAN)
[[20080401164654]]『エクセル書式設定 文字列 関数』(カズ)

 こんな関数つかえまへんか?
 =matu(範囲)と入力
     (弥太郎)
 '---------------------
 Function matu(rng As Range)
    Dim c As Range, data As String, total As Long
    With CreateObject("vbscript.regexp")
        .Pattern = "(.+)*\\(\d+)(.+)*"
        For Each c In rng
            data = StrConv(Replace(c, ",", ""), vbNarrow)
            If .test(data) Then
                total = total + (.Replace(data, "$2")) * 1
            End If
        Next c
    End With
    matu = total
 End Function



 ありがとうございました!
 弥太郎さんのマクロで希望の計算ができました
 貼り付けした表の範囲を選択するだけでできましたです
 とても助かりました
 便利な計算方法ありがとうございました!

 キリキさんのも試しましたがうまく行きませんでしたです
 説明不足のせいだったと思いますが、申し訳ありません
 皆様ありがとうございました ペコリ


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.