Excelを使い、A列に数値、B列に◯、×のどちらかを入力します。
B列が◯だった場合のA列の数値を足し算したいのですがやり方が分かりません…
ぜひ教えていただきたいです。
よろしくお願いします。

A 回答 (1件)

質問文の確認ですが,B列で○と判定された同じ行のA列の値を全て加算するという事で宜しいですか?


関数は下記の通りです.
=SUMIF(B:B,"○",A:A)
    • good
    • 0
この回答へのお礼

わかりやすい説明、ありがとうございました!!

お礼日時:2017/04/17 13:35

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

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

Qエクセルについて質問です

仕事で仕入先からの交渉データを作成していて見やすいように
追加しようと考えていますが一部分からないところがあります。

■現状
シート1(件名一覧表)
シート2(交渉内訳)

■追加シート3(個別件名の確認用シート)

やりたいことはシート2(交渉内訳)に
C列に注文番号のコード
D列にメーカーコード
E列に仕入先名
F列にメーカーごとの定価金額
H列に担当者が交渉したメーカーごとの原価金額
K列に私が交渉したメーカーごとの原価金額
があります。
C列の注文番号を入力すれば
個別件名シートで見れるように

上記データを元に
追加シート3(個別件名の確認用シート)に
交渉内訳シートのC列、D列、E列、F列、H列、K列が
反映されるようにしたいです。

=VLOOKUP(A2,交渉内訳!B7:E2049,3,0)と
入力すると全てが同一仕入先になってしまい
各仕入先が表示されません。

なかなか文章で説明が難しく詳細もコンプライアンス上なかなか
表示出来ませんので答えにくいかも

Aベストアンサー

=VLOOKUP(A2,交渉内訳!B7:E2049,3,0)で、
A列には検索したい日付が入っているなら、
VLOOKUPの中身としては、交渉内訳シートのB列でその日付を検索し、3番目=D列のデータを表示。
(D列=メーカーのコード)

>全てが同一仕入先になってしまい各仕入先が表示されません。
上記式で表示されるのはメーカーのコードであり、仕入先名ではないですよ?
メーカー=仕入先なのでしたら、同一日に複数の案件があり、全ての日に全てのメーカーのデータがあるとか?

>正:B列に注文番号のコード
B列の中からA2(日付)を検索しているのに、B列には注文番号が入っているのですか?
それでしたら、一致するものがない為、近似として扱われたデータが表示されているのかもしれません。
完全一致で検索するとして、VLOOKUPの最後の0(TRUE扱い)を1(個人的には1よりFALSEと書く方が見た時わかりやすいので推奨)にしてみてください。
VLOOKUPの場合、近似よりも完全一致で検索する場合の方が多いと思いますし、それだと検索範囲を昇順に並べ替える必要もなくなります。

>注文番号を入力すれば個別件名シートで見れるように
7~2049行にデータがあるとして、
=VLOOKUP($AA2,交渉内訳!$B$7:$K$2049,2,FALSE)
AA2は検索したい注文番号の入力されたセルの事です。該当するセルに変更してください。
B列の1~6行目に注文番号と重複するデータが確実にないのであれば、
=VLOOKUP($AA2,交渉内訳!$B:$K,2,FALSE)
とした方が良いです。(データが増えても範囲を変更せずに済むので。

とりあえず、これはB列を1列目として2列目=C列のデータを表示させる式です。
C列は結局何が入っているのかわかりませんが、とりあえずC列、D列、E列、F列、H列、K列を表示させる式を書きますね。

C列:=VLOOKUP($AA2,交渉内訳!$B:$K,2,FALSE)
D列:=VLOOKUP($AA2,交渉内訳!$B:$K,3,FALSE)
E列:=VLOOKUP($AA2,交渉内訳!$B:$K,4,FALSE)
F列:=VLOOKUP($AA2,交渉内訳!$B:$K,5,FALSE)
H列:=VLOOKUP($AA2,交渉内訳!$B:$K,7,FALSE)
K列:=VLOOKUP($AA2,交渉内訳!$B:$K,10,FALSE)
となります。
元の表とシートの様式を同じにしていれば、
B列に注文番号のコードを入力するとして、
C2=VLOOKUP($B2,交渉内訳!$B:$K,COLUMN()-1,FALSE)
これをコピーするだけで済みます。
G,I,J列が不要であれば非表示にすればいいのです。1列1列何列目を抽出するかを数える必要はなくなります。

文章だけで間違いも含め可能な限り読み砕いたつもりです。参考まで

=VLOOKUP(A2,交渉内訳!B7:E2049,3,0)で、
A列には検索したい日付が入っているなら、
VLOOKUPの中身としては、交渉内訳シートのB列でその日付を検索し、3番目=D列のデータを表示。
(D列=メーカーのコード)

>全てが同一仕入先になってしまい各仕入先が表示されません。
上記式で表示されるのはメーカーのコードであり、仕入先名ではないですよ?
メーカー=仕入先なのでしたら、同一日に複数の案件があり、全ての日に全てのメーカーのデータがあるとか?

>正:B列に注文番号のコード
B列の中からA2(日付)を検索...続きを読む

Qエクセル関数

エクセル Sheet1のa列の値が、Sheet2のb列にある場合、Sheet2のc列の値をSheet1のd列に入力する方法教えて下さい

Aベストアンサー

こんにちは!

データは1行目からあるとします。

D1セルに
=IFERROR(VLOOKUP(A1,Sheet2!B:C,2,0),"")
または
=IFERROR(INDEX(Sheet2!C:C,MATCH(A1,Sheet2!B:B,0)),"")という数式を入れ
フィルハンドルで下へコピーしてみてください。m(_ _)m

QExcelのセルの書式設定で質問です。

いつもExcelで悩んだ時にお世話になっています。
今回はセルの書式設定で助けていただきたいです。
前回ご教授いただき、1商品の価格に対して60万行あるデータベースから該当するJANコードを抜きだし一つのセルに改行して納めることができました。
それで作成されたものが添付画像のようなもので、セル内で改行して価格と13桁のJANコード(1価格に1~20くらい)があります。
このようなセルが何千とあります。
すると桁区切りに設定していた価格の,がなくなりました。
設定し直しても変わりません。
ググってユーザー定義から Ctrl+J でセル内の各行に定義を設定するという方法を知りました。
手探りで1行目の価格に#,##を、残りのJANコード行に標準/Gを設定してみましたが出来ません。
試しにJANコード部を#############にしてみましたが桁区切り点は付きません。
今は一つ一つクリックして手動で付けています。
どのようなユーザー定義を設定すれば可能でしょうか?
またJANコード数は価格(商品)によって違います。
最大数のユーザー定義を設定して貼り付ければすべてのセルに設定できるでしょうか?
例えば20行分の書式設定をしたものを1行しかコードがないセルに貼り付けても問題ないでしょうか?
ご教授お願いします。

いつもExcelで悩んだ時にお世話になっています。
今回はセルの書式設定で助けていただきたいです。
前回ご教授いただき、1商品の価格に対して60万行あるデータベースから該当するJANコードを抜きだし一つのセルに改行して納めることができました。
それで作成されたものが添付画像のようなもので、セル内で改行して価格と13桁のJANコード(1価格に1~20くらい)があります。
このようなセルが何千とあります。
すると桁区切りに設定していた価格の,がなくなりました。
設定し直しても変わりません。
ググっ...続きを読む

Aベストアンサー

前回の質問を見ていないので,どの様にして1つのセルに改行して数値(属性としては文字)を入れたか分かりませんが,おそらく書式設定ではなく,データを入れる部分を直さないといけないと思います.多分,
=A1&CHAR(10)&A2
みたいな関数で折り返し表示しているのだと思いますが,これを以下の関数にするとカンマが付きます.
=TEXT(A1,"#,###")&CHAR(10)&TEXT(A2,"#,###")

Qエクセルでまたまた困ってます。教えてください(?_?)

Sheet1とSheet2があります。
Sheet1にはA1にコーラ、A2にコーヒー、A3に牛乳と入力しています。
A4には仕入れ先、B4には販売先、C4には製品と項目を作り、C3からD3、E3と日付を入力(1/1から1/3)。
A5~A7までセルを結合し店1と入力、A8~A10までセルを結合し店2と入力。
B5にA店、B6にB店、B7にC店、B8にもA店、B9にB店、B10にC店と入力します。
C5~C10まではデータの入力規制で$A$1:$A$3とします。
Sheet2にはA3とA8を結合しコーラ、A9~A14を結合しコーヒー、A15~A20を結合し牛乳と入力。
B3に仕入れ先B4に販売先、これを交互にB20まで入力。
C2からD2、E2は日付を入力(1/1から1/3)
これで、例えばSheet1のC5でコーラを選択した場合にSheet2の日付、販売先、仕入れ先に反映させたい場合どうしたらよいでしょうか?

Aベストアンサー

入力セルはsheet1のC5~C10なのですね?
sheet1のC5にコーラと入れた場合、
店1→A店にコーラ。というのは分かりますが、日付はどこで指定するのですか?

Qエクセルの計算式

エクセルが次のようになっています。

A列  B列  C列  D列  E列 F列  G列
1000     伺1712345    計算式


A列に1000、D列に伺1712345 と記載されており

G列には次の式が入っており、E1D72345と表示されます。

=IF(D11="","",IF(A11="","",IF(A11="2950","I",IF(A11>"2999","F",IF(A11>"1999","D","E")))&IF(E11="0","2","1")&
IF(LEFT(D11,1)="伺",IF(A11>"3044","K",IF(A11>"2999","I",IF(A11>"1999","G",IF(LEFT(D11,3)="伺ek","E","D")))),
IF(A11>"3044","J",IF(A11>"2949","H",IF(A11>"1999","F",IF(LEFT(D11,2)="ek","C","B")))))&IF(AND(LEFT(D11,1)
="伺",A11<"3000"),LEFT(RIGHT(D11,6),1)&RIGHT(D11,4),RIGHT(D11,5))))

この式をD列の下5桁が埋まっている場合はE1D72345をE1Z72345(DをZに変える)にしたいのですが式をどのように変更すればよいでしょうか。

要は以下のようにしたいのです。

D列が伺1702345の場合はG列はE1D71345となる(現状の式でOK)

D列が伺1712345の場合はG列はE1Z71345となる(現状の式を変更しなければならない)


宜しくお願いします。

エクセルが次のようになっています。

A列  B列  C列  D列  E列 F列  G列
1000     伺1712345    計算式


A列に1000、D列に伺1712345 と記載されており

G列には次の式が入っており、E1D72345と表示されます。

=IF(D11="","",IF(A11="","",IF(A11="2950","I",IF(A11>"2999","F",IF(A11>"1999","D","E")))&IF(E11="0","2","1")&
IF(LEFT(D11,1)="伺",IF(A11>"3044","K",IF(A11>"2999","I",IF(A11>"1999","G",IF(LEFT(D11,3)="伺ek","E","D")))),
IF(A11>...続きを読む

Aベストアンサー

長さの問題ではないですね。
IF(IF(IF(IF(…という形で、関数の中に関数の中に関数…というのが、限界の数になったようです。
(中に入れる形を取らなければ、長さはもっと長くなっても問題ないです)
であるならば、中身を分解して書き直さないといけませんね。

今回IF(LEFT(RIGHT(D11,5),1)="0","D","Z")を増やしたので、最高でも3つ減らせれば問題なく動くかと。
一番手っ取り早いのは、隣のセルにでも
=IF(LEFT(RIGHT(D11,5),1)="0","D","Z")
と入力し、これを加えた部分(元の"D"の部分)にそのセルのセル番地(A1など)を入力することですね。
条件に該当する場合のみ、そのセルに表示されたデータ("D"or"Z")を参照し、条件に該当しない場合はそのセルに何が表示されていても関係ない。ことになります。

Q2週間悩んでます。EXCELの並べ替えです。

下の表を数式で右(G)のように並べ替えたいのですがご教授お願い致します。

A  B  C         G
1  0  0         1
2  0  0         2
3  1  a         a
4  0  0         3
5  1  b         4
6  0  0         b
7  0  0         5
8  0  0         6
9  1  c         7
10  0  0         8
-------------------------------- c
-------------------------------- 9
-------------------------------- 10

どうしても4の処で引っかかってしまいます。
よろしくお願いいたします。
------- はG列が左に寄ってしまうので書いてます。
無視して結構です。

Aベストアンサー

ん?…
こちらではきちんと並んだのですが…

D列は上から順に1,2,4,5,7,8,9,10,12,13と表示されてますでしょうか?

G列の
=IF(COUNTIF(AD:AD,ROW())=0,INDIRECT("AC"&MATCH(ROW()-1,AD:AD,FALSE)+1),MATCH(ROW(),AD:AD,FALSE))
は入力ミスなく一致していますね?
aが入力されているのはC3、bはC5、cはC9で、その左は1、B・C列の他の行は0、A列は行番号ですね?

とりあえず中身を分解して確認してみましょう。
表示のずれている3行目の、どの列でもいいので、次の式を入力して、それぞれに表示されるものを教えてください。

=COUNTIF(D:D,ROW())
これはD列にその行番号が含まれている数を算出しています。3は含まれていないハズですので0であれば正解です。

=MATCH(ROW()-1,D:D,FALSE)
これは1つ上の行の行番号がD列の何行目にあるかを表示させる式です。
2行目の2なのでD2で一致し、2が表示されれば正解です。

=INDIRECT("C"&MATCH(ROW()-1,D:D,FALSE)+1)
これは先ほどの2に1を加えて3とし、C3のデータを表示させるものです。
C3はaであるので、aが正解です。

=MATCH(ROW(),D:D,FALSE)
これはCOUNTIFが0でなかった場合の式です。
なので確認する必要はないと思いますが、
そのセルの行番号をD列で検索し、何行目にあるかを表示します。
3はD列にないはずなので、エラーが正解です。

ん?…
こちらではきちんと並んだのですが…

D列は上から順に1,2,4,5,7,8,9,10,12,13と表示されてますでしょうか?

G列の
=IF(COUNTIF(AD:AD,ROW())=0,INDIRECT("AC"&MATCH(ROW()-1,AD:AD,FALSE)+1),MATCH(ROW(),AD:AD,FALSE))
は入力ミスなく一致していますね?
aが入力されているのはC3、bはC5、cはC9で、その左は1、B・C列の他の行は0、A列は行番号ですね?

とりあえず中身を分解して確認してみましょう。
表示のずれている3行目の、どの列でもいいので、次の式を入力して、それぞれに表示されるものを教えて...続きを読む

QEXCELの罫線について

EXCELにて罫線を引いているのですが、セル毎に横罫線が切れた罫線を引く方法をご存じの方が居られましたら、方法をご教授下さい。(応用で縦にも対応できればよりありがたいです)
私個人の好みだと思うのですが、こういった引き方をしたい場合があるので。

よろしくお願いいたします。

Aベストアンサー

範囲選択して、[セルの書式設定]→[罫線]タブで横罫線を細い実線に
して色を青などの判りやすい色にしておきます。
縦罫線を指定するときに白色の一番太い実線にします。

これで、縦罫線の白色で横線が切れたように見せることができます。

Qマクロの整理、正解を教えてください。

マクロを自分で組む知識がないので、マクロの記録で強引に
やりたい操作を実行できるようにしました。
シート2の4行目に空行を挿入してから、
シート1のA3~AK3を、シート2の4行目、シート3,4の3行目に値の貼付けをして、
シート1内の複数のセルを空白にする動作です。

出来上がったマクロを見ると130行以上あったので、
不要な部分や省略できる部分の削除を調べながらやってみますが、
どうしてもエラーが起きます。
エラーが起きても起きなくても、何が良くて何が悪いかわからないので、
初心者向きの正解を教えていただきたいです。
以下に一部省略した130行程を貼付けますのでお願いします!

Sub 登録完了ボタン()
'
' 登録完了ボタン Macro
'

'
Application.ScreenUpdating = False
Sheets("会員情報一覧").Select
Rows("4:4").Select
Selection.Insert Shift:=xlDown
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 3
          ↓2~33まで続く。
ActiveWindow.ScrollColumn = 32
ActiveWindow.ScrollColumn = 33
Range("AL5:DN5").Select
Selection.Copy
Range("AL4").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
ActiveWindow.ScrollColumn = 31
ActiveWindow.ScrollColumn = 30
          ↓31~1まで続く。
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 1
Range("A6").Select
Sheets("顧客情報入力").Select
Range("A3:AK3").Select
Selection.Copy
Sheets("会員情報一覧").Select
Range("A4").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A4").Select
Sheets("個別情報(閲覧・印刷)").Select
Range("A3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("B7").Select
Sheets("配布(メール送信・印刷)").Select
Range("A3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("B9").Select
Sheets("顧客情報入力").Select
Application.CutCopyMode = False
Range("H6:I7").Select
Selection.ClearContents
ActiveWindow.SmallScroll Down:=9
Range("C18:C20").Select
Selection.ClearContents
ActiveWindow.SmallScroll Down:=6
Range("C24:D24").Select
Selection.ClearContents
Range("C26:F38").Select
Selection.ClearContents
ActiveWindow.SmallScroll Down:=9
Range("D39:F42").Select
Selection.ClearContents
Range("C39").Select
ActiveCell.FormulaR1C1 = "-"
Range("C40").Select
ActiveCell.FormulaR1C1 = "-"
Range("C41").Select
ActiveCell.FormulaR1C1 = "-"
Range("C42").Select
ActiveCell.FormulaR1C1 = "-"
Range("C43").Select
ActiveCell.FormulaR1C1 = "-"
Range("C44").Select
ActiveWindow.SmallScroll Down:=-36
Range("F14").Select
End Sub

よろしくお願いします。

マクロを自分で組む知識がないので、マクロの記録で強引に
やりたい操作を実行できるようにしました。
シート2の4行目に空行を挿入してから、
シート1のA3~AK3を、シート2の4行目、シート3,4の3行目に値の貼付けをして、
シート1内の複数のセルを空白にする動作です。

出来上がったマクロを見ると130行以上あったので、
不要な部分や省略できる部分の削除を調べながらやってみますが、
どうしてもエラーが起きます。
エラーが起きても起きなくても、何が良くて何が悪いかわからないので、
初心者向...続きを読む

Aベストアンサー

回答者に丸投げする質問じゃないのに好感を感じましたので、またおせっかいさせていただきます。

補足にあった、c42:c46の範囲に"-"を書き込むマクロだと、
「c42:c46の範囲に"-"を書き込む」を5回繰り返しているだけなんです。

Range("c42:c46").FormulaR1C1 = "-"
だけで目的の処理はできちゃってて、無駄に5回繰り返してるのね。

もしForを使うとしたら

For i = 0 To 4
Range("c" & 42 + i) = "-"
Next i

こんな感じ。
For を1じゃなく0からにしてるのは、
41にi(1~5)を足すより、
範囲の最初のセルアドレスの数値42にi(0~4)を足したほうが、
式を理解しやすいと思ったから。
この辺はFor~Next間の処理内容や、好みもありますが。

こういう部分での個性(好み)が出るから、他人の作ったものに手を加えるのが面倒くさかったりします。(笑)

Range("F7").Selectは意図的なセル移動?
マクロ記録のゴミならな消すようにしていきましょう。

前の回答で敢えて書かなかった部分ですが…
複数範囲のクリア部分は、範囲をカンマで続けて書き並べ、一度に処理出来ます。
Range("H6:I7,C18:C20,C24:D24,C26:F38,D39:F42").ClearContents


質問にかかれていたもと、私の回答に書いたものの動作ではエラーはでませんでしたので、
エラーが出た時や、「もっとシンプルな書き方にできないか」と疑問を持たれた時に
再質問されると良いでしょう。

「質問&回答」じゃなく、個人レクチャーみたいになっちゃうので。
がんばってください!

回答者に丸投げする質問じゃないのに好感を感じましたので、またおせっかいさせていただきます。

補足にあった、c42:c46の範囲に"-"を書き込むマクロだと、
「c42:c46の範囲に"-"を書き込む」を5回繰り返しているだけなんです。

Range("c42:c46").FormulaR1C1 = "-"
だけで目的の処理はできちゃってて、無駄に5回繰り返してるのね。

もしForを使うとしたら

For i = 0 To 4
Range("c" & 42 + i) = "-"
Next i

こんな感じ。
For を1じゃなく0からにしてるのは、
41にi(1~5)を足すより、
範囲の最初のセルア...続きを読む

Q〖エクセル〗MOD関数で、小さな数字を大きな数字で割り算した場合が理解できません

GOOの皆様いつもありがとうございます。
例えば1を2で割り算した場合は、0.5ですが、
MODした場合、余りの数はなぜ1になるのですか?
簡単に説明して頂ける方はいらっしゃいますか・・・

Aベストアンサー

>補足
そのとおりですね。
その例で言えば、10を3で割った余りは1です。
では、余った1を3で割るとどうなりますか?
3で割れないから1余ったのですよね?
なら、余りは1のままです。
割られる数が割る数より小さい正の値であれば、商は0、余りは割られる数そのままです。

Qエクセル関数を教えてください

エクセル関数を教えてください

このような↓

別ページにある、△△(具体的には氏名が入る)と書いてあるセルを探して基準にし、そこを基準にして指定した数値分(具体的には右に2、下に2)移動したところにあるセルの数値を返す。

です!
オートフィルでコピーし、シート名と△△の氏名だけを書き換えればOK!みたいなのを狙ってます。
年度末の集計表のため、困ってます。
よろしくお願いします!

Aベストアンサー

こんにちは

例えば、シート2(別ページ)のA列に名前のリストが並んでいるとします。

個別に探したい名前が(シート1の)A1セルにあるとして、
 = MATCH(A1,Sheet2!$A:$A,0)
のようにすると、その名前がリストの何番目に存在するかの数値が返されます。

これを利用して、右に2列、下に2行移動したセルの値なら
 = OFFSET(Sheet2!$A$1,MATCH(A1,Sheet2!$A:$A,0)+1,2)
とすることで、値が取得可能です。

※ 実際のリストの形式やセル範囲など、及び、個別の氏名のセル位置などが不明ですので、適切に修正してください。
※ 上記はエラー処理(リスト内に一致するものが無い場合等)は行っていませんので、必要な場合は付け加えてください。


人気Q&Aランキング