[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『特殊な表の個数を求めるには?』(MAGU45)
次のような表があります。
A 1個
B 1個
C 2個
50回
D 2個
E 3個
F 1個
G 1個
20回
:
:
これを、
A 1個 50
B 1個 50
C 2個 100
50回
D 2個 40
E 3個 60
F 1個 20
G 1個 20
20回
:
:
というようにしたいのですが、エクセルの関数だけで、計算できるでしょうか?
よろしくお願いします。
< 使用 Excel:Excel2013、使用 OS:Windows8 >
その表、下記みたいに作成することは不可能ですか? ※回が入力されているセルは表示形式で0"回"
A B 1 50回 2 A 1 3 B 1 4 C 2 5 6 20回 7 D 2 8 E 3 9 F 1 10 G 1 (se_9) 2015/05/19(火) 16:12
A B 1 A 1 2 B 1 3 C 2 4 50回 5 6 D 2 7 E 3 8 F 1 9 G 1 10 20回
このような形には出来ました。
これが、15000行くらいあります。
(MAGU45) 2015/05/19(火) 16:27
A B 1 50回 2 A 1 3 B 1 4 C 2
だったら関数を提示できたのですが、そうじゃないみたいなのでマクロで・・・。 どうしても関数で、ということであれば上級者からの回答をお待ちください。
Sub test()
Dim i As Long, c As Long
For i = 1 To Range("A" & Rows.Count).End(xlUp).Row If Range("B" & i).Value <> "" Then c = Range("A" & i).End(xlDown) Range("C" & i).Value = Range("B" & i) * c End If Next
End Sub
※追記 マクロなら c = Range("A" & i).End(xlDown) の部分を c = Replace(Range("A" & i).End(xlDown), "回", "") にすれば表示形式で0"回"にしなくても大丈夫です。 (se_9) 2015/05/19(火) 17:10 追記17:27
A B C 1 A 1個 50 2 B 1個 50 3 C 2個 100 4 50回 5 6 7 D 2個 40 8 E 3個 60 9 F 1個 20 10 G 1個 20 11 20回 12 13
C1 =IF(B1="","",SUBSTITUTE(B1,"個",)*SUBSTITUTE(INDEX(A1:A$15000,MATCH("*回",A1:A$15000,0)),"回",))
下へコピー。
「回」と「個」が数値のみなら
C1 =IF(B1="","",B1*INDEX(A1:A$15000,MATCH(TRUE,INDEX(A1:A$15000<MAX(A:A)+1,),)))
下へコピー。 (GobGob) 2015/05/19(火) 17:59
se_9さん、GobGobさんありがとうございました。
(MAGU45) 2015/05/19(火) 22:08
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.