- ベストアンサー
スコアー票の得点が名簿一覧に反映されない問題について
- スコアー票に入力した得点が名簿一覧の得点の欄に反映されない問題が発生しています。
- スコアー票の画像を添付し、チームNo.に対応するチーム名と名前に得点を入力しても、名簿一覧の得点の欄が更新されません。
- どのようにすればスコアー票の得点が名簿一覧に反映されるようになるのか教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは! 横からお邪魔します。 おそらく↓のサイトと関連しているのでは? http://okwave.jp/qa/q8806800.html そうであれば今回の質問は↓の画像でいえば 上側のSheet1のS列データの変更があれば、「名簿一覧」SheetのE列にその数値を反映させたい! というコトだと解釈します。 どちらか一方通行であれば数式で対処できると思いますが、 前回も回答したように、数式を入れていてもデータ変更があるたびに数式そのものが消えてしまうと思います。 どうしても!というコトであれば前回回答したようにVBAになってしまうのでは・・・ 今回の表の配置を拝見するとおそらく「Sheet1」の「合計列」S列には数式が入っているのではないでしょうか? その辺がよく判らないので、勝手にやってみました。 画面左下にある「Sheet1」となっているSheet見出し上で右クリック → コードの表示 → VBE画面のカーソルが点滅しているところに ↓のコードをコピー&ペースト → Excel画面に戻り色々データ変更してみてください。 >チームNo.を入力すればチーム名と名前が出てくるようになってます。 とありますが、それも操作しています。 Private Sub Worksheet_Change(ByVal Target As Range) 'この行から Dim i As Long, lastRow As Long, cnt As Long, c As Range, wS As Worksheet Set wS = Worksheets("名簿一覧") If Intersect(Target, Range("B3,S:S")) Is Nothing Or Target.Count > 1 Then Exit Sub If Target.Column = 2 Then lastRow = Cells(Rows.Count, "B").End(xlUp).Row If lastRow > 5 Then Range(Cells(6, "B"), Cells(lastRow + 1, "B")).ClearContents End If If WorksheetFunction.CountIf(wS.Range("C:C"), Target.Value) > 0 Then cnt = 4 For i = 2 To wS.Cells(Rows.Count, "A").End(xlUp).Row If wS.Cells(i, "C") = Target Then cnt = cnt + 2 Cells(cnt, "B") = wS.Cells(i, "D") Cells(cnt, "S") = wS.Cells(i, "E") End If Next i End If Else Set c = wS.Range("D:D").Find(what:=Cells(Target.Row, "B"), LookIn:=xlValues, lookat:=xlWhole) c.Offset(, 1) = Target End If End Sub 'この行まで ※ 回答内にも書きましたが、Sheet1の「合計列」はどのような数式が入っているのかが判れば それも操作可能です。 お示しの画像だけではどのセルを合計しているのか判断できませんので、敢えてそれは触れていません。 ※ 見栄えは良いかもしれませんが、 Excelで数式等を使用する場合、極力セルの結合は避けるべきだと思います。 セルの結合があると何かと厄介です。(オートフィル等で数式をコピーする場合など・・・) とりあえずはこの程度で・・・m(_ _)m
その他の回答 (2)
- keithin
- ベストアンサー率66% (5278/7941)
>Sheet1のスコアー票を使って違うチームの合計点を入れていくようにして、 >先に入れたチームの点数は名簿上に残っていくようにしたい 大変申し訳ないのですが、何を言ってるのか もとい あなたが一体何をしたいのか、さっぱりイミフメイです。 一体どういう「結果」が欲しいのか、目に見えるように回答者のエクセル上に再現できるように、説明してください。 >あの質問だけでは、不十分でしたすいません。 それは「不十分」ですか? 元のご相談内容: >そのそれぞれに得点を入力するとsheet2の名簿一覧の得点の欄に反映されるようにしたい 追加のご質問: >先に入れたチームの点数は名簿上に残っていくようにしたい ご相談を繰り返し読み返しましたが、どうも全然違う事をしたい、どちらかのヤリタイ事の説明が「間違ってる」としか思えません。 このご相談は一度解決で閉じて、もう一度「何がどうしてどうなって欲しい」のか、判るよう具体的にご相談を書きなおし新しいご質問として投稿し直してみて下さい。
お礼
こんにちは、わかりました。 ありがとうございました。
- keithin
- ベストアンサー率66% (5278/7941)
ご相談で掲示されたサンプルだけから言えば、 E2: =IFERROR(VLOOKUP(D2,Sheet2!B:S,18,FALSE),"") 以下コピー で十分ということになります。
補足
こんばんは、ご回答ありがとうございます。 あの質問だけでは、不十分でしたすいません。Sheet1のスコアー票を使って違うチームの合計点を 入れていくようにして、先に入れたチームの点数は名簿上に残っていくようにしたいのですが?
お礼
ありがとうございます。 いつも的確な回答すごいなと感動しております。 ご指摘にありましたように、スコアー表はスコアーをつけてもらうと言う事で 作成しただけですが、合計までの過程は手書きで、合計の箇所は手入力となります。 だから、別にセルの結合をしなくても作れるものなんですが 別な、シートにセル結合なしの表を作成したほうが良いですか?