例)A1: 100pcs
A2: 200pcs
A3: 10kgs
A4: 20kgs
------------
A5: 300pcs
A6: 30kgs
という結果を得たいのです。
A5=SUM(A1:A2)
A6=SUM(A3:A4)
というような式ではなく
”A1からA4の範囲で値にPCSがついているもの
を合計する”
というような式をA5に入れて計算させたいのです。
どんな関数を使ったら、またどういう
工夫をすれば、上記の様な計算結果を
得られるのかがどうしても解りません。
お忙しいところ恐縮ですが、どなたか
ご存知の方がいっらっしゃいましたら
教えてくださいM(__)M
No.2
- 回答日時:
マクロ(VBA)で
Function mysum(unit As String, cells As Range) As Variant
'シートのセルには
'=mysum("kgs",A1:A4)
'=mysum("pcs",A1:A4)
'のように入力
Dim row, col, tmp
tmp = 0
unit = """" & unit & """"
For Each row In cells.Rows
For Each col In row.Columns
If (Right(col.NumberFormatLocal, Len(unit)) = unit) Then
tmp = tmp + col.Value
End If
Next
Next
mysum = tmp
End Function
No.3ベストアンサー
- 回答日時:
「ユーザー定義でkgsとpcsを設定した時」とありますが、
この「ユーザー定義」とは、書式のことを指しているようにも取れますが、
一応、数値を書式で"pcs"等を付加している場合も考慮し、空白や3文字
以外が含まれていてもエラーにならないような「ユーザー定義関数」を
作ってみました。 詳しい操作手順を書きますので、宜しかったらテスト
してみてください。
関数の使い方は、=SumX(範囲,"文字列") です。
例えば、=SumX(A1:A4,"pcs") で、A1:A4範囲の指定した文字列が含まれていて
それより左側が数字と認識できるものを加算します。
結局、=SumX(A1:A10,"") は、一般的な =SUM(A1:A10) と同じになります。
1.Alt + F11 で VBE(Visual Basic Editor)を開きます。
2.VBE のメニューから[挿入] -->[標準モジュール] を指定します。
3.モジュールウィンドウに下記コードをコピーして貼り付けます。
4.Alt + Q (または、右上隅の×)でウィンドウを閉じ、シートに戻ります。
5.メニューから[ツール]-->[マクロ]-->[セキュリティ]で「セキュリティレベル」を
「中」にして[OK]します。
これで、SumX 関数が使用できます。 例の場合 セルA5に =SumX(A1:A4,"pcs") 、
A6に =SumX(A1:A4,"kgs") と入力してみてください。
(もし、数値を書式で"pcs"や"kgs"の文字列を付加していないときは、
コードの3ヶ所ある Rng.Text を Rng.Value に変更してもよいでしょう。)
Function SumX(R As Range, S As String) As Double
Dim Rng As Range
Dim ValSum As Double
Dim V As Variant
For Each Rng In R
If InStr(Rng.Text, S) > 0 Then
V = Left(Rng.Text, Len(Rng.Text) - Len(S))
If IsNumeric(V) Then
ValSum = ValSum + V
End If
End If
Next Rng
SumX = ValSum
End Function
No.4
- 回答日時:
書式でpcs,gsを表示しているとして、通常のエクセル関数では書式を捉えることが難しいと思います。
したがってVBAに頼らざるを得ません。下記でどうでしょう。書式に「pcs」を含むものを加えています。
Sub test01()
d = Range("A1").CurrentRegion.Rows.Count
MsgBox d 'データ最下行を確認
s = 0
For i = 1 To d
f = Cells(i, "A").NumberFormatLocal '書式を取る
p = InStr(f, "pcs") '書式にpcsの文字があるか
If p = 0 Then
Else
s = s + Cells(i, "A") 'pcsを含めば加える
End If
Next i
MsgBox s '合計を表示
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) SUMIF関数について 4 2023/06/14 13:13
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
- Excel(エクセル) マクロだと数式が表示される 2 2022/09/10 14:48
- Excel(エクセル) マクロでコピーすると数式が表示される 1 2022/09/09 20:21
- Excel(エクセル) 現時点の年齢を算出して、その年齢と一致したセルを色付けしたい。 4 2022/06/23 17:49
- Excel(エクセル) エクセル・セルに数式を入力してセル指定計算 2 2023/04/21 12:46
- Excel(エクセル) エクセルの関数に関しての質問です。 5 2022/10/07 11:17
- Excel(エクセル) エクセル 関数について質問です。 2 2022/10/03 11:14
- Excel(エクセル) エクセルVBAでセルに表示されているとおりの数値を取得したい(時間の計算結果) 1 2022/03/30 17:52
- Excel(エクセル) エクセルのA1~A5の任意のセルを選んだら1、A6~A10のセルなら2と返す設定にしたいと思ってます 6 2023/03/20 18:46
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで文字が白くなる
-
エクセルで、時間 0:00を表示...
-
アクセスで#エラーを表示させ...
-
エクセル条件付書式で指定の時...
-
excelの軸
-
Googleスプレッドシートで特定...
-
エクセル2003-ユーザー定義の値...
-
エクセルで文字を含む式に、カ...
-
Excel で 見え消し2本 ・ 雲...
-
小数点以下の数字だけ小さいフ...
-
エクセル2003でセルの中の...
-
Excelのテーブルでセルの書式設...
-
エクセルで日数計算
-
Excelで、空白を表示したい
-
エクセルでコメントの書式を一...
-
6ケタの数字の前に、「0」(...
-
エクセルで上付き,下付き文字...
-
エクセルについて教えてくださ...
-
Excel 一桁の日付のみ前にスペ...
-
Access ¥マークを表示しない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで文字が白くなる
-
エクセル条件付書式で指定の時...
-
エクセルで文字を含む式に、カ...
-
Excelで、空白を表示したい
-
エクセルで、時間 0:00を表示...
-
アクセスで#エラーを表示させ...
-
エクセル(2003) 「1900/1/0...
-
excelの軸
-
エクセルの書式設定が解除でき...
-
Excelのテーブルでセルの書式設...
-
小数点以下の数字だけ小さいフ...
-
today関数で日付を全角文字で表...
-
エクセル マイナスは黒文字で、...
-
エクセルで合計
-
Access ¥マークを表示しない
-
エクセルでゼロ「0」が「-」に表示
-
Excelで小数部が勝手に繰上げさ...
-
エクセルで上付き,下付き文字...
-
エクセルで「0(ゼロ)」を印...
-
強調の・
おすすめ情報