Excel2016で特殊なカウントができない問題の解決方法

このQ&Aのポイント
  • Excel2016で特殊なカウントができない問題が発生しています。特殊なカウントのルールや範囲について詳細を説明します。
  • 特殊なカウントのルールは、上下と斜めに重複している値を1つとし、水平に重複している値をカウントしないというものです。
  • 問題の解決策として、範囲(AA11:AJ11)に合計値を表示し、合計数値が3個以上の場合は(M11:R11)に表示し、2個の場合は(S11:X11)に表示するという方法があります。
回答を見る
  • ベストアンサー

Excel2016 で特殊なカウントをしたいです。

1度同じ質問をしたのですが、上手くいかなかったのでリトライします。 Excel2016で特殊なカウントがしたいのですができません。そこでご助力頂ければ幸いです。内容は以下に説明します。 範囲D6 : G8 の3×4の1マスずつにアイウエオカキクケコのいずれかがランダムに入ります。 この3×4を1範囲とし、(D6 :G20)までに合計5範囲あると考えて下さい。 他の4範囲は(D9:G11)、(D12:G14)、(D15:G17)、(D18:G20)で、同じく上の様にとなります。 次に、K10にア~コを1つずつ順に入れると入れた値に応じて範囲D6 : G20 にある同値が黄色く塗りつぶされるという形になっています。 ここからが私にとって特殊カウントであり難題になります。 K10の値に応じて黄色くなった値を特殊な形でカウントします。 そのルールは次になります。 K10の値に応じて、3×4の1範囲内に、上下と斜め(必ずしも連なる必要はない)、で重複したものを1個と捉え、水平に重複しても1個と捉えない。(水平上の重複以外の重複ならカウントすると言う意味です。それらが重複しても1個カウントだけです。 ) 例え3行内に、上下斜めに重複する形が複数確認できたとしたも1個としてカウントします。 5範囲ありますので最大合計値は5個になります。最小合計値は0ですが、空白(空白でなくてもOK )にします。 次に、その合計値を、範囲(AA10:AJ10)に左から順にア~コと付ってますので、その下の範囲(AA11:AJ11)に、0無し(0入りでもOK)で入れたいです。 範囲(AA11:AJ11)が満杯になると範囲(D6:G20 )に新しくア~コの記号をランダムに入れます。 再び特殊カウントされると範囲(AA11:AJ11)のその下の行へ下の行へと合計値が射出される繰り返しの形を希望します。 それと併せて、範囲(AA11:AJ11)の合計数値が3個以上のア~コの記号はその行数の(M11:R11)に、2個だけの記号はその行数の(S11:X11)にと、左りから入れる形にして、特殊カウントがされる度に上の繰り返しの形と併せて、下から下にと、反映する形を希望します。 ご協力お願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率65% (1620/2459)
回答No.13

> 漢字やごちゃごちゃしたのが混ざってました。 こちらから見えないことを言われてもわかりませんし、スマホからパソコンに云々というのも私には関係のない事なのでわかりません。

961awaawa
質問者

お礼

バッチリできました。気持ちが良かったです。今度は図も載せられるように工夫してみたいと思います。 ありがとうございました。

その他の回答 (12)

  • kkkkkm
  • ベストアンサー率65% (1620/2459)
回答No.12

> これが今使用させて頂いてるソースになります。 前回最終訂正したコードではありませんね。 今回の仕様変更(データの無いセルがある)も含めて 以後思った処理にならなかった場合どのようなデータでならなかったのかデータを示してください。 Sub Test() Dim c As Range, Fr As Range Dim i As Long, mCount As Integer, SumCount As Integer Dim oRow1 As Long, oRow2 As Long, oColumn1 As Long, oColumn2 As Long Dim sData As Variant Dim mRow As Long ''最初の案 'If Range("K10").Value = "コ" Then ' Range("K10").Value = "ア" 'ElseIf Range("K10").Value = "オ" Then ' Range("K10").Value = ChrW(AscW(Range("K10").Value) + 1) 'Else ' Range("K10").Value = ChrW(AscW(Range("K10").Value) + 2) 'End If ''もしくはのA案とB案 If Range("K9").Value = 9 Then Range("K9").Value = 0 Else Range("K9").Value = Range("K9").Value + 1 End If 'B案は↓が不要 Range("K10").Value = Range("AA10").Offset(0, Range("K9").Value).Value '最後の案 'Set Fr = Range("AA10:AJ10").Find(What:=Range("K10").Value, LookIn:=xlValues, lookat:=xlWhole) 'If Not Fr Is Nothing Then ' If Fr.Address = Range("AJ10").Address Then ' Range("K10").Value = Range("AA10").Value ' Else ' Range("K10").Value = Fr.Offset(0, 1).Value ' End If 'Else ' MsgBox Range("K10").Value & "が見つかりません" 'End If 'Set Fr = Nothing SumCount = 0 sData = Range("K10").Value For i = 6 To 18 Step 3 For Each c In Range(Cells(i, "D"), Cells(i + 2, "G")) If c.Value = sData And c.Value <> "" Then oRow1 = i: oRow2 = i + 2 oColumn1 = Columns("D:D").Column: oColumn2 = Columns("G:G").Column mCount = mSearch(c, oRow1, oColumn1, oRow2, oColumn2) If mCount = 1 Then SumCount = SumCount + mCount Exit For End If End If Next Next Set Fr = Range("AA10:AJ10").Find(What:=sData, LookIn:=xlValues, lookat:=xlWhole) If Not Fr Is Nothing Then mRow = Cells(Rows.Count, Fr.Column).End(xlUp).Offset(1, 0).Row Cells(mRow, Fr.Column).Value = SumCount Else MsgBox sData & "が見つかりません" Exit Sub End If If SumCount = 2 Then Call mSet(Range("S:S").Column, sData, mRow) ElseIf SumCount > 2 Then Call mSet(Range("M:M").Column, sData, mRow) End If End Sub Function mSet(ByVal mColumn As Long, ByVal mData As Variant, mRow As Long) Dim mCount As Integer mCount = 6 - WorksheetFunction.CountBlank(Range(Cells(mRow, mColumn), Cells(mRow, mColumn).Offset(0, 5))) Cells(mRow, mColumn).Offset(0, mCount).Value = mData End Function Function mSearch(ByRef d As Range, ByVal oRow1 As Long, ByVal oColumn1 As Long, ByVal oRow2 As Long, ByVal oColumn2 As Long) As Integer Dim c As Range For Each c In Range(Cells(oRow1, oColumn1), Cells(oRow2, oColumn2)) If c.Address <> d.Address And c.Row <> d.Row And c.Value <> "" Then If c.Value = d.Value Then mSearch = 1 Exit Function End If End If Next mSearch = 0 End Function

961awaawa
質問者

お礼

なんとか頑張ります。まだまだスマホやパソコンの様々に不慣れで…。ソースをアップロードして張り付けるのも全然なれてません。 しかしながらたった今、怪しい事を発見しました。 ソースの張り付け作業に翻弄されてる中、これまで張り付けてきたソースを見返したら、漢字やごちゃごちゃしたのが混ざってました。これって危ないですか?もしかしたらこれのせいでしょうか?

961awaawa
質問者

補足

私のスマホが危険なんですかね?

  • kkkkkm
  • ベストアンサー率65% (1620/2459)
回答No.11

データの無いセルがあるという事ですね。 No9に追加して Function mSearch( の方の If c.Address <> d.Address And c.Row <> d.Row Then を If c.Address <> d.Address And c.Row <> d.Row And c.Value <> "" Then に変更してください。

961awaawa
質問者

お礼

すみません。さっきのは間違いでした。今使用してるソースをパソコンからスマホに移動させるのが、不慣れなものでできなくて、頂いたスマホ内の複数のソースから誤って選択してしまいました。もう少しお待ち下さいね。

  • kkkkkm
  • ベストアンサー率65% (1620/2459)
回答No.10

> あの、本当にお手数をお掛けするんですが、もう一度全てのコードを書いて頂けませんでしょうか? 逆でしょう。あなたの実行しているコードとカウントがおかしいデータを示すのが筋です。 データは、以下のようにコンマ区切りで。 0,1,5,4 5,4,8,6 2,5,0,8

961awaawa
質問者

お礼

本当にそうでした。これを先に見せるべきですね。 Sub Test() Dim c As Range, Fr As Range Dim i As Long, mCount As Integer, SumCount As Integer Dim oRow1 As Long, oRow2 As Long, oColumn1 As Long, oColumn2 As Long Dim sData As Variant Dim mRow As Long ''もしくはのA案とB案 If Range("K9").Value = 9 Then Range("K9").Value = 0 Else Range("K9").Value = Range("K9").Value + 1 End If 'B案は↓が不要 Range("K10").Value = Range("AA10").Offset(0, Range("K9").Value).Value ' MsgBox Range("K10").Value & "が見つかりません" 'End If 'Set Fr = Nothing SumCount = 0 sData = Range("K10").Value For i = 6 To 18 Step 3 For Each c In Range(Cells(i, "D"), Cells(i + 2, "G")) If c.Value = sData Then oRow1 = i: oRow2 = i + 2 oColumn1 = Columns("D:D").Column: oColumn2 = Columns("G:G").Column mCount = mSearch(c, oRow1, oColumn1, oRow2, oColumn2) If mCount = 1 Then SumCount = SumCount + mCount Exit For End If End If Next Next Set Fr = Range("AA10:AJ10").Find(What:=sData, LookIn:=xlValues, lookat:=xlWhole) If Not Fr Is Nothing Then mRow = Cells(Rows.Count, Fr.Column).End(xlUp).Offset(1, 0).Row Cells(mRow, Fr.Column).Value = SumCount Else MsgBox sData & "が見つかりません" End If If SumCount = 2 Then Call mSet(Range("S:S").Column, sData, mRow) ElseIf SumCount > 2 Then Call mSet(Range("M:M").Column, sData, mRow) End If End Sub

  • kkkkkm
  • ベストアンサー率65% (1620/2459)
回答No.9

5ブロックのセルは全てデータで埋まっているという設定だと思いましたが、データの無いセルがあるのでしたら If c.Value = sData Then を If c.Value = sData And c.Value <> "" Then に変更してください。

961awaawa
質問者

お礼

おはようございます。いつも本当にありがとうございます。 今回のこれをしてみたところ変わりがありませんでした。 あの、本当にお手数をお掛けするんですが、もう一度全てのコードを書いて頂けませんでしょうか? 後、マクロのセキュリティとかは関係有るんでしょうか?

  • kkkkkm
  • ベストアンサー率65% (1620/2459)
回答No.8

> ア~コを0~9に変えてしてみたんですが0だけ必ずカウントミスしてます。 こちらではミスが出ないので、どのようにデータが配置されているのか不明な為に確かめようがありません。

961awaawa
質問者

お礼

おまたせしました。これが今使用させて頂いてるソースになります。 Sub Test() Dim c As Range, Fr As Range Dim i As Long, mCount As Integer, SumCount As Integer Dim oRow1 As Long, oRow2 As Long, oColumn1 As Long, oColumn2 As Long Dim sData As Variant Dim mRow As Long ''最初の案 'If Range("K10").Value = "コ" Then ' Range("K10").Value = "ア" 'ElseIf Range("K10").Value = "オ" Then ' Range("K10").Value = ChrW(AscW(Range("K10").Value) + 1) 'Else ' Range("K10").Value = ChrW(AscW(Range("K10").Value) + 2) 'End If ''もしくはのA案とB案 If Range("K9").Value = 9 Then Range("K9").Value = 0 Else Range("K9").Value = Range("K9").Value + 1 End If 'B案は↓が不要 Range("K10").Value = Range("AA10").Offset(0, Range("K9").Value).Value '最後の案 'Set Fr = Range("AA10:AJ10").Find(What:=Range("K10").Value, LookIn:=xlValues, lookat:=xlWhole) 'If Not Fr Is Nothing Then ' If Fr.Address = Range("AJ10").Address Then ' Range("K10").Value = Range("AA10").Value ' Else ' Range("K10").Value = Fr.Offset(0, 1).Value ' End If 'Else ' MsgBox Range("K10").Value & "が見つかりません" 'End If 'Set Fr = Nothing SumCount = 0 sData = Range("K10").Value For i = 6 To 18 Step 3 For Each c In Range(Cells(i, "D"), Cells(i + 2, "G")) If c.Value = sData Then oRow1 = -2: oRow2 = 2 oColumn1 = -3: oColumn2 = 3 If c.Row = i Then oRow1 = 0 ElseIf c.Row = i + 2 Then oRow2 = 0 End If If c.Column = Range("D:D").Column Then oColumn1 = 0 ElseIf c.Column = Range("G:G").Column Then oColumn2 = 0 End If mCount = mSearch(c, oRow1, oColumn1, oRow2, oColumn2) If mCount = 1 Then SumCount = SumCount + mCount Exit For End If End If Next Next Set Fr = Range("AA10:AJ10").Find(What:=sData, LookIn:=xlValues, lookat:=xlWhole) If Not Fr Is Nothing Then mRow = Cells(Rows.Count, Fr.Column).End(xlUp).Offset(1, 0).Row Cells(mRow, Fr.Column).Value = SumCount Else MsgBox sData & "が見つかりません" End If If SumCount = 2 Then Call mSet(Range("S:S").Column, sData, mRow) ElseIf SumCount > 2 Then Call mSet(Range("M:M").Column, sData, mRow) End If End Sub Function mSet(ByVal mColumn As Long, ByVal mData As Variant, mRow As Long) Dim mCount As Integer mCount = 6 - WorksheetFunction.CountBlank(Range(Cells(mRow, mColumn), Cells(mRow, mColumn).Offset(0, 5))) Cells(mRow, mColumn).Offset(0, mCount).Value = mData End Function Function mSearch(ByRef d As Range, ByVal oRow1 As Long, ByVal oColumn1 As Long, ByVal oRow2 As Long, ByVal oColumn2 As Long) As Integer Dim c As Range For Each c In Range(d.Offset(oRow1, oColumn1), d.Offset(oRow2, oColumn2)) If c.Address <> d.Address And c.Row <> d.Row Then If c.Value = d.Value Then mSearch = 1 Exit Function End If End If Next mSearch = 0 End Function

961awaawa
質問者

補足

もしくはのA案を使用してます。

  • kkkkkm
  • ベストアンサー率65% (1620/2459)
回答No.7

> O列に罫線が加算されたりされなかったり。マクロボタンの連打に対応しきれなかったりする場合ってありますか? 何も設定していないのに罫線が出ることは無いと思います。書式の設定で罫線の設定をしているのに出ないということはあります。出ない理由は分かりませんが、03の上が出なかったら02の下で出すという方法でやり過ごしています。 マクロボタンの連打はそのマクロが終了する前に連打していない限り無いと思いますが、マクロがボタン制御をしているかもしれませんのでわかりません。 どちらにしても、Windowsの種類も記載して新たに質問をすれば詳しい人(2016利用者など)が回答してくれるのではないでしょうか。

961awaawa
質問者

お礼

すみません。罫線ではなくて格子でした。O列に格子が出たり出なかったりと。 条件付き書式を全てクリアしてもう一度先程の書式を設定して試しても 上手くいきません。 色々やってる内に色々な問題って出るもんなんですねぇ。 こんなに出来なかったのは初めてです。

961awaawa
質問者

補足

後、特殊カウントが成功してたり、してなかったりもするんです。 成功してる所があるのに失敗する場合も有るとなると、ソースが悪いとは言えない気がします。 ア~コを0~9に変えてしてみたんですが0だけ必ずカウントミスしてます。

  • kkkkkm
  • ベストアンサー率65% (1620/2459)
回答No.6

> 罫線が付加されていったりとか。 > > 故障なんですかね?中がちょっとごちゃついて整理しきれてない、とがあったりする > んですかね? 故障かどうかは分かりませんが、勝手に罫線が付加されるというのは条件付き書式かVBAで設定することでしかできないように思います。もしかしたら何かしら他の設定があるのかもしれませんが、私にはちょっとわかりません。 また、条件付き書式の管理で「現在の選択範囲」で見ているのでしたら「このワークシート」で見ると他に設定が出てくることがあります。

961awaawa
質問者

お礼

クイック修復して試してもダメでした。 O列に罫線が加算されたりされなかったり。マクロボタンの連打に対応しきれなかったりする場合ってありますか? 後、先程の条件付き書式ではこれ1つだけの内容でした。 他のワークブックにも条件付き書式設定はなかったです。

  • kkkkkm
  • ベストアンサー率65% (1620/2459)
回答No.5

> 設定を=AND (D6=$K$10,$K$10<>″″) > とし、色を橙色に設定、をし、 > 適用先を=$D$6:$G$20 > としてます。 一部全角なのはこのサイトのせいだとして この設定しかなくK10の文字と違うセルが色付けされる( もしくは色設定を変えても一部元のままとか)のでしたらエクセルの問題ですね。 ブックの破損もあり得るので別に新しいブックでも試してみて、そちらでも同じようになるのならOffice2016の修復をしてみるとかですね。 あとは、条件付き書式がおかしいという事で新たに質問したほうがいいと思います。

961awaawa
質問者

お礼

Kkkkkm さん。いつもありがとうございます。office 2016 の修復があるとは思いもしませんでした。 そんなのがあるんですね。確かに、説明しきれてないおかしな事が他にもあるんです。 罫線が付加されていったりとか。 故障なんですかね?中がちょっとごちゃついて整理しきれてない、とがあったりするんですかね? 修復に期待します。また、何か回答頂けたら相談できてありがたいです。

  • kkkkkm
  • ベストアンサー率65% (1620/2459)
回答No.4

> Excelの問題だとウィルスとかになってくるのですか? それは、「適切な条件付き書式」で設定しているかどうかによりますから何とも言えません。 複数の条件付き書式が設定されていてそちらが有効になっているとか、マクロ(VBA)で書式設定の色付けしてるとか(手動の書式設定で無色に戻せたのならこれの可能性もあります。条件付き書式で色付けされている場合、手動の書式設定では色の変更はできません) とりあえず単独の「適切な条件付き書式」で色が残るのでしたらOffice2016の修復をしてみてもいいかもしれません。 まず、色付けがどのような形で行われているのか調査してみてください。

961awaawa
質問者

お礼

(D6 : G20) に 「数式を使用して、書式設定するセルを決定」をし、 設定を=AND (D6=$K$10,$K$10<>″″) とし、色を橙色に設定、をし、 適用先を=$D$6:$G$20 としてます。

  • kkkkkm
  • ベストアンサー率65% (1620/2459)
回答No.3

> 希望でない形で黄色にそまったままだったりと… 適切な条件付き書式で色付けをしているのでしたらそのような事にはならないと思いますが、もしそうなるのでしたらエクセルの問題ですね。

961awaawa
質問者

お礼

条件色を変えてしてみても黄色で残ったりと、黄色に変わったところを無色に戻す必要がでます。Excel2007 からExcel2016 にかえたからですかね? 詳しくない者がパソコンを変えたので、その上でのこのくらいの疑問しか出てこないのが残念です。 Excelの問題だとウィルスとかになってくるのですか?

関連するQ&A

  • Excel2007で特殊なカウントをしたいのですが

    久々お世話になります。 Excel2007で特殊なカウントがしたいのですができません。そこでご助力頂ければ幸いです。内容は以下に説明します。 範囲D6 : G8 の3×4の1マスずつにアイウエオカキクケコのいずれかがランダムに入ります。 この3×4を1範囲とし、(D6 :G20)に合計5範囲あります。 他の4範囲(D9:G11)、(D12:G14)、(D15:G17)、(D18:G20)も上の様となります。 次に、K10にア~コを1つずつ順に入れると入れた値に応じて範囲D6 : G20 にある同値が黄色く塗りつぶされるという形になっています。 ここからが私にとって特殊カウントであり難題になります。 K10の値に応じて黄色くなった値を特殊な形でカウントします。 そのルールはこうなります。 K10の値に応じて、3×4の1範囲内に、上下と斜めで重複したものを1個と捉え、水平に重複しても1個と捉えない。 そして、例え3行内に、上下斜めに重複する形が複数確認できたとしたも1個としてカウントします。 5範囲ありますので最大合計値は5個になります。最小合計値は0ですが、空白(空白でなくてもOK )にします。 次に、その合計値を、範囲(AA10:AJ10)に左から順にア~コと付ってますのでその下の範囲(AA11:AJ11)に、0無し(0入りでもOK)で入れたいです。新しく特殊カウントされるとその下の行へ下の行へと合計値が射出される形を希望します。 それと併せて、範囲(AA11:AJ11)の合計数値が3個以上のア~コの記号はその行数の(M11:R11)に、2個だけの記号はその行数の(S11:X11)にと、左りから入れる形にして、特殊カウントがされる度に併せて、下から下にと、反映する形を希望します。 ご協力お願い致します。

  • Excel2007 複数条件の行数カウントできないでしょうが??

    下のような条件の表の中で1の列が、1で始まり2の列がAから始まり、しかも3の列が10以上のような行数をカウントする事は、出来ないでしょうか? 出来れば、これを自動計算で各条件ごとに別シートにカウント表示したいのですが・・・    1   2   3 A  30  AB   5 B  12  AA   5 C  12  BC   10 D  25  BB   15 E  25  AC   10 F   ・   ・   ・ G   ・   ・   ・ H   ・   ・   ・ Excel初心者なので詳しく説明いただければ助かります。m(__)m

  • [Excel]エクセルデータのカウント

    はじめまして. エクセルデータの値が重複した場合にその数をカウントをしてくれないか調べています. 一つの値に対し,範囲内で同値だった場合のカウントはCOUNT関数を使えば良いということはわかりました. しかし,2つセルの値を一セットで考えたときのカウント方法がわかりません. 例をあげると 授業Aと授業Bを行って,授業を受けた生徒はセル内に1,受けていない生徒は0,病欠は2と記入するとA列とB列にそれぞれ1か0が生徒の人数分入ってます. そして,AとBの授業を受けた生徒(=AとB両方に1が入ってる)の人数は何人かというのをそれぞれ知りたいのです. 要は下のような感じです. A B count 1 1 3 1 1 3 1 2 1 1 0 2 1 1 3 1 0 2 2 1 1 何か良い方法はないでしょうか

  • Excel関数で範囲指定し重複以外の値のカウント

    Excelの関数の使い方で教えていただけないかと思い、投稿しました。 お手数ですが、よろしくお願いします。 ある列の中で、限られた値の行を範囲として、別の列の値を調べて、カウントしたいと思っています。 カウントする値は、重複を除いた値の個数をカウントしたいと思います。 例えば、A列の1~100行までの範囲の中で、A列の101行目に入っている値である文字列の”鈴木”と同じ値がある行のB列の値をカウントしたいと思います。 そのB列のカウントを行う場合、重複する値があれば、1とカウントします。 以上の関数をB列の101行目に記載するとすれば、どのような関数になるのか教えていただければ幸いです。よろしくお願いいたします。

  • エクセルの関数でダブルカウントを避ける方法

    エクセルの関数機能で回答お願いいたします! _______A_______B_______C_______D_______E_______F 1____品名___値____設定____下限___上限 2_____AA______1______(1)______0______1.6 3_____AB_____1.5_____(2)_____1.4_____2.1 4_____AC______2______(3)_____1.8_____2.2 5_____AD______1______(4)_____2.2_____2.6 6____AE______3____(5)_____2.5_____3.1 このような表があります。   AA~AEまで5つの商品があり、 それぞれに値があります。 それらを 下限(D列)≦ 値 <上限(E列) の範囲に 当てはまる 品数 をカウントしたいのですが これをカウントし、F列に答えを返すと、 (1)0~1.6の間には  3つ (2)1.4~2.1の間には 2つ (3)1.8~2.2の間には 1つ (4)2.2~2.6の間には 0つ (5)2.5~3.1の間には 1つ となり、下限と上限の間にある値をダブッてカウントしてしまうのです。 F列の縦合計が 品名の数と同じようになるように、ダブらずに集計したいのですが ダブらないでカウントする条件を設定したいのです。 たとえば 品名ABの場合、 下限と上限の範囲には 2つヒット(設定(1)と(2))してしまうので この場合、(1)の方にカウントし、(2)にはカウントしない という風にし、絶対にダブルカウントせずに下限と上限の間の設定が2箇所ヒットした場合 常に下限が小さい方にカウントさせる方法はないでしょうか? もしもっとシンプルに以上の解決策を ご存知でしたら是非それも教えてください。 よろしくお願いいたします!!!

  • EXCEL 年月日表から月数をカウントする方法

    A1セルからB30セル範囲内に重複を含む年月日の値があります。 範囲内のデータから、各月毎に集計したいのです。 例:G列1には、4月は8件、G列2には、5月は6件、G列3には・・・・、 ただし、重複する月日を1としてカウントしたい。 宜しくお願いします。

  • [Excel]重複しない文字に対応する数値の合計を求めたい

    Excelの関数で困っています。 ---------------- | A | B | C | 1|記号|名前|値 | 2| + |aaa |50 | 3| + |bbb |20 | 4| - |aaa | | 5| + |ccc |90 | 6| + |ddd |40 | 7| - |ddd | | ---------------- | |合計|110| ---------------- 上のような表で(形式は変えられない) 重複を除いた"3C"と"5C"の[値]の合計値のみを算出したいです。 条件としては、 (1)[B]の重複するデータを見つける(2つのはず) (2)(1)の2つのうち、片方の[A]の"+"、もう片方の[A]は"-"であることを確認 (3)"2C"から"7C"の範囲で、(2)を確認した(1)を除いた合計値を算出する といった流れです。 どのような条件式を与えれば良いでしょうか? 調べてもなかなか同じような例がないし、理解が難しいです。 DSUMを使うのかとは思ってますが。 詳しい方がいらっしゃればご教授お願い致します。 ※"記号"・"名前"は文字列で"値"は数値です。 ※"記号"が"-"のものは"値"が空です。

  • 【EXCEL】 間隔のカウントと値のリセット→再計算

         A   B   C   D   E   F   G    1日  2日  3日  4日  5日  6日  7日 (1)   0   1   0   0   0   4   0 (2)   1   0   1   2   3   0   1 (1)行での「0」だった日のカウントを(2)行目で計算し、 値が1以上ついたら「0」に戻り再度カウントし直す。 といった計算の仕方をご存知の方がいましたら教えてください。 また、値を「0」ではなく「空白」として数字から数字までをカウントし、値が入った日からカウントし直す方法でもありますでしょうか? まだエクセル初心者なのですが、 自分が出来たのは『空白の個数を返す』方法だけで、カウントを0に戻して再度計算し直す方法が見い出せませんでした。 お力をお貸しください。よろしくお願いします。

  • 記号のカウント

     こんばんわ! いつもお世話になっています。 今回はExcelで「B6~D6」「I6~K6」「P6~R6」列から下、行は限りなく「◎・○・▲・△・☆」が記入されます。 また、同様に「E6・L6・S6」列から下、行は限りなく「赤◎」が記入されるセルと記入されない空白のセルがあります。 そこで「◎・○・▲・△・☆」の記号のカウントを表したく、 セル「A3=赤◎・B3=◎・C3=○・D3=▲・E3=△・F3=☆」に各記号のカウントが表示されるようにいたいと思います。  ここまでなら「COUNTIF」関数で出来ると思いますが、 今回は「E・L・S」列に「赤◎」が記入されている行だけの記号 「◎・○・▲・△・☆」と「E・L・S」列の「赤◎」をカウントしたい のですが、わかる方いらっしやいましたら教えて下さい。 宜しくお願いします。

  • 【Excel】複数条件の合計

    Excel2003を使用しています。 Sheet1のD7:D200に『あ』、G7:G200に2(数値)、と入力されているH列の合計をSUMPRODUCT 関数を使用して計算しました。 同じ条件で、範囲の最終行数をあるセルに取り出しておいて、INDIRECT 関数を組み合わせたのですが、うまくいきませんでした。 数式は、Sheet2に下記のように入力してみましたが、このような使い方は間違っているのでしょうか? =SUMPRODUCT((Sheet1!D7:INDIRECT("D"&F1)="あ")*(Sheet1!G7:INDIRECT("G"&F1)=2)*(Sheet1!H7:INDIRECT("H"&F1))) また、他にこんな方法があるというのがあれば、あわせて教えていただけると嬉しいです。 よろしくお願いします。

専門家に質問してみよう