いつもお世話になっています。
A,Bの列に、
みかん 5
りんご 2
ばなな 4
りんご 3
かき  1
りんご 5 
など、項目と数値が入っている場合、
リンゴならリンゴだけの数値を計算したい場合(例えばりんごの合計「10」の出し方)
どのようにしたらいいのか教えてください。

また「エクセルVBA&B'z」や「エクセル技道場」の他に、エクセルのVBAを参考に出来るようなサイトがありましたら教えてください。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

=SUMIF(範囲A,"りんご",範囲B)


ででますよ。
範囲Aには、項目を含む表全体を、範囲Bには数値が入ってる範囲を指定してください。

いいエクセルサイトをのせます。
エクセルファンクラブ
http://www.fuji.ne.jp/~excelyou/index.htm
ミコの黄色いおうち
http://www.hm2.aitai.ne.jp/~naka95/miko.htm
です。

本当にたくさん載っていますよ。
    • good
    • 0
この回答へのお礼

ありがとうございます。
問題解決した上に、良いサイトを二つも知ることが出来て感激です。
ありがとうございました。

お礼日時:2001/11/09 14:13

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

QエクセルVBAで作成した別ブックにVBAを記述したい

VBAで別ファイルの作成は下記で出来ているのですが、出来上がったファイルにVBAを記述する方法がわかりません。
具体的には一番下のSub TEST()を新しいブックの標準モジュールに記述したいのと、sheet1に
Private Sub Worksheet_Change(ByVal Target As Range)
MsgBox "ChangeTEST"
End Sub
を入れたいです。
また
Private Sub Workbook_Open()
MsgBox "OpenTEST"
End Sub
も入れたいのです。
どうぞご教示ください。

Sub 複製()
Dim wb As Workbook, sc As Integer
sc = Application.SheetsInNewWorkbook

Application.SheetsInNewWorkbook = 1
Set wb = Workbooks.Add
Application.SheetsInNewWorkbook = sc

wb.Sheets("Sheet1").Select
ThisWorkbook.Sheets("Sheet1").Cells.Copy
wb.Sheets("Sheet1").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False

ActiveSheet.Buttons.Add(123, 195, 68.25, 15).Select
Selection.OnAction = "TEST"
Selection.Characters.Text = "TEST"
ActiveWorkbook.Close
ThisWorkbook.Activate
Sheets("Sheet1").Select
End Sub

Sub TEST()
MsgBox "TEST!!"
End Sub

よろしくお願いします。

VBAで別ファイルの作成は下記で出来ているのですが、出来上がったファイルにVBAを記述する方法がわかりません。
具体的には一番下のSub TEST()を新しいブックの標準モジュールに記述したいのと、sheet1に
Private Sub Worksheet_Change(ByVal Target As Range)
MsgBox "ChangeTEST"
End Sub
を入れたいです。
また
Private Sub Workbook_Open()
MsgBox "OpenTEST"
End Sub
も入れたいのです。
どうぞご教示ください。

Sub 複製()
Dim wb As Workbook, sc As Integer
sc = Application....続きを読む

Aベストアンサー

わたしも前前からやってみたいと思っていたので、ネットを検索して調べてみました。
こんな感じで出来るようです。

'マクロ挿入
With wb.VBProject.VBComponents.Item("ThisWorkbook").CodeModule
.InsertLines 1, "Private Sub Workbook_Open()"
.InsertLines 2, ""
.InsertLines 3, "   Msgbox""ブックが開かれましたよ!"""
.InsertLines 4, ""
.InsertLines 5, "End Sub"
End With

With wb.VBProject.VBComponents.Item("Sheet1").CodeModule

.InsertLines 1, "Private Sub Worksheet_Change(ByVal Target As Range)"
.InsertLines 2, ""
.InsertLines 3, " MsgBox ""セルの値が変更されましたよ!"""
.InsertLines 4, ""
.InsertLines 5, "End Sub"

End With

wb.VBProject.VBComponents.Add (1) 'Module1挿入
With wb.VBProject.VBComponents.Item("Module1").CodeModule

.InsertLines 1, "Sub TEST()"
.InsertLines 2, ""
.InsertLines 3, "   Msgbox""TESTしたよ!"""
.InsertLines 4, ""
.InsertLines 5, "End Sub"

End With

わたしも前前からやってみたいと思っていたので、ネットを検索して調べてみました。
こんな感じで出来るようです。

'マクロ挿入
With wb.VBProject.VBComponents.Item("ThisWorkbook").CodeModule
.InsertLines 1, "Private Sub Workbook_Open()"
.InsertLines 2, ""
.InsertLines 3, "   Msgbox""ブックが開かれましたよ!"""
.InsertLines 4, ""
.InsertLines 5, "End Sub"
End With

With wb.VBProject.VBComponents.Item("Sheet...続きを読む

QACCESS2003。数値型のフィールドに30億以上の数値を入力できない。

 DVDに焼いたファイルのデータベースをアクセスに入力しているのですが、そのサイズをバイト単位で入力しているのですが、3ギガ以上の数字を入力すると、
「このフィールドに入力した数値がただしくありません。たとえば数値型のフィールドに文字列を挿入しました」
とでます。
 もうこれはテキスト形式のフィールドにするしかないのでしょうか?いままでたくさんのファイルを登録してきたので、ここでテキスト形式にすると以前のファイル等で不都合がでないか懸念を持っています。
 理想は数値型でなんらかの設定をして3ギガ、30億以上の数値を入力できないものでしょうか?よろしくお願いいたします

Aベストアンサー

ヘルプで数値型を検索すればわかると思いますが、
バイト型:0~255
十進型:-10^28 ~ 10^28(mdbの場合)
整数型:-32,768~32,768
長整数型:-2,147,483,648 ~ 2,147,483,647
単精度浮動小数型:-3.402823E38 ~ -1.401298E-45 と 1.401298E-45 ~ 3.402823E38
倍精度浮動小数型:1.79769313486231E308 ~
-4.94065645841247E-324 と 4.94065645841247E-324 ~
1.79769313486231E308
になります。
長整数型では30億は入力できません。21億が限界です。
容量を取りたくなければ単精度浮動小数型、容量があってもいいなら十進型にしてください。

Qエクセルで数値の大きい順番に項目を並べたい

お知恵をお貸しください。
シート1のA列に項目が入力されており、B列にはそれに対応した数値が入力されています。
ここで、シート2のD列にB列の数値の大きな順番にA列の項目を並べ変えたものを取り込みたいのです。

A列   B列    別シートD列  
りんご  500        なし  
みかん  350        ぶどう  
なし   700        りんご  
ぶどう  650        みかん
欲しいのは項目のみです。但しシート1はいじりたくありません。
よろしくお願いします。

Aベストアンサー

Ms.Rinで~す。。。♪

>実際のところは、別シートには5行(D1:D5)
>ほどしか記入する場所が無いので

という事は~?
sheet1のA~B列のデータは、5行しかないのでしょうか?
でしたら

D1: =INDEX(Sheet1!A:A,INDEX(MATCH(LARGE(Sheet1!$B$1:$B$5+(100-ROW($1:$5))/100,ROW(A1)),Sheet1!$B$1:$B$5+(100-ROW
($1:$5))/100,0),))&""

D5までコピーします。

でいいのかな?

Qエクセルマクロで時刻が数値になる

Excel2000を使用しています。
複数のセルの中身を繋げて別のシートの一つのセルに入れるマクロを作っています。

(イメージ)
セルA、セルJ、セルO、セルQ、・・・・セルZ
"aaaa","jjjj","ooo","qqqq",・・・・,"zzzzz"

セルXXX
"セルA:aaaa*セルJ:jjjj*セルO:ooo*セルQ:qqqq*・・・・*セルZ:zzzzz"

以下のようにマクロを作成しましたが、セルに時刻が入っているとなぜか数値として処理されます。(日付が入っている場合には問題ない)

(イメージ)
セルA、セルJ、セルO、セルQ、・・・・セルZ
"aaaa","jjjj","ooo","12:00",・・・・,"2006/10/11 13:00"

セルXXX
"セルA:aaaa*セルJ:jjjj*セルO:ooo*セルQ:0.5*・・・・*セルZ:2006/10/11 13:00"

時刻を数値として持っているためでしょうが、数値ではなく時刻として処理したいのですがどのようにしたらよろしいでしょうか?
どうか教えてください。

(マクロ部分)
CopyRows = 2
PasteRows = 2
kai = "*"
Do Until CopyRows = 1000
str1 = "セルA:" & Workbooks(FileName).Worksheets(SheetName).Range("A" & CopyRows).Value & kai
str2 = "セルJ:" & Workbooks(FileName).Worksheets(SheetName).Range("J" & CopyRows).Value & kai
    :
str10 = "セルZ:" & Workbooks(FileName).Worksheets(SheetName).Range("Z" & CopyRows).Value & kai

strall = str1 & str2 & str3 & str4 & str5 & str6 & str7 & str8 & str9 & str10
Workbooks(NewWorkbookName).Worksheets("Sheet1").Range("O" & PasteRows).Value = strall

CopyRows = CopyRows + 1
PasteRows = PasteRows + 1
Loop

Excel2000を使用しています。
複数のセルの中身を繋げて別のシートの一つのセルに入れるマクロを作っています。

(イメージ)
セルA、セルJ、セルO、セルQ、・・・・セルZ
"aaaa","jjjj","ooo","qqqq",・・・・,"zzzzz"

セルXXX
"セルA:aaaa*セルJ:jjjj*セルO:ooo*セルQ:qqqq*・・・・*セルZ:zzzzz"

以下のようにマクロを作成しましたが、セルに時刻が入っているとなぜか数値として処理されます。(日付が入っている場合には問題ない)

(イメージ)
セルA、セルJ、セルO、セルQ、・・・・セルZ...続きを読む

Aベストアンサー

「中身を繋げて別のシートの一つのセルに入れる」のですからどのみち文字列になってしまいますね

これは先般ここで教えていただいた方法ですが、
str1 = "セルA:" & Workbooks(FileName).Worksheets(SheetName).Range("A" & CopyRows).Text & kai
に変えたらどうでしょう

また余計ながらstr1~str10の変数は再利用しないのであれば
 With Workbooks(FileName).Worksheets(SheetName)
  strall = "セルA:" & .Range("A" & CopyRows).Text & kai & _
       "セルJ:" & .Range("J" & CopyRows).Text & kai & _
             :
       "セルZ:" & .Range("Z" & CopyRows).Text & kai
 End With
でもよいかもしれません

Qエクセル:数値をテキスト形式で揃えたい

5~6桁の、英字と数字の混在したコードのついたデータが一万件ほどありまして、これを利用してピボットテーブルで処理しなければならないのですが、
いろんな人が処理するデータなので、数字のみの(アルファベットの混ざらない)コードの場合、数値のものとテキスト形式のものが混在していて、同じコードがテーブル上で別々になってしまいます。
数字のみでテキスト形式の場合、セルの左上に緑色の三角のエラーインジケータが付いて
「このセルにある数値が、テキスト形式か、またはアポストロフィで始まっています。」
とメッセージが出ますが、これが付いた状態のほうがソートしたときに英数字の混ざったものときれいに並ぶので、この状態で扱いたいのです。

どうやらセルの設定を文字列にして入力しただけではこの状態にならないようで、今は既存の三角のついたものと同じ数字を手作業で貼り付けたりしていますが、数値の入ったセルを一度にテキスト形式にする方法はあるでしょうか?

(この逆のパターンだったら、範囲選択して左に出る◇に!のついた部分をクリックして「数値に変換する」を選べばよい話なのですが…。)

5~6桁の、英字と数字の混在したコードのついたデータが一万件ほどありまして、これを利用してピボットテーブルで処理しなければならないのですが、
いろんな人が処理するデータなので、数字のみの(アルファベットの混ざらない)コードの場合、数値のものとテキスト形式のものが混在していて、同じコードがテーブル上で別々になってしまいます。
数字のみでテキスト形式の場合、セルの左上に緑色の三角のエラーインジケータが付いて
「このセルにある数値が、テキスト形式か、またはアポストロフィで始まってい...続きを読む

Aベストアンサー

2003ですが、、
対象の列(1列のみ)を全選択し、区切り位置で文字列に変換すると全て”左上に緑色の三角”が付きます。


このカテゴリの人気Q&Aランキング

おすすめ情報