• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:数字出現数の印付け)

数字出現数の印付け

このQ&Aのポイント
  • 数字選択式宝くじロト6、ミニロトの抽選結果をエクセルにつけております。
  • それを利用して、◎、○、△を付ける方法が知りたいです。
  • 抽選結果シートから数字の出現数をカウントし、出現数シートに印を付けたいと思っています。

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

  • ベストアンサー
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.4

既に回答は出ていますが、Offset関数の使い方が理解できましたか? Sumproduct関数を使った別案です。 カウント範囲のA2セルに集計したい範囲の行番号が入っているとして =SUMPRODUCT((A1=抽選結果!$B2:$H14)*(ROW(抽選結果!$B2:$H14)<カウント範囲!$A2)) と入れて右へコピーすれば、 A1=抽選結果!$B2:$H14) の条件と ROW(抽選結果!$B2:$H14)<カウント範囲!$A2) の条件が満たされたセルの数が出ます。 後は、NO2の方の様にCHoose関数を使って希望するマークにしてください。 =CHOOSE(SUMPRODUCT((A1=抽選結果!$B2:$H14)*(ROW(抽選結果!$B2:$H14)<カウント範囲!$G1))+1,"","","","","△","○","◎","○","△","","","","") こんな感じでしょうか。

moguo4649
質問者

お礼

ご回答ありがとうございます。 またSumproduct関数という今まで使った事が無い関数を教えて頂きありがとうございます。

その他の回答 (4)

  • mar00
  • ベストアンサー率36% (158/430)
回答No.5

Private Sub Worksheet_SelectionChange(ByVal Target As Range) Set WS01 = Sheets("抽選結果") Set WS02 = Sheets("出現数") COUNTAREA1 = WS01.Cells(Rows.Count, 1).End(xlUp).Row - WS02.Range("C2") + 1 COUNTAREA2 = WS01.Cells(Rows.Count, 1).End(xlUp).Row For INP1 = 3 To 7 Step 2 For INP2 = 4 To 23 If IsEmpty(WS02.Cells(INP2, INP1 - 1)) Then Exit For Else WS02.Cells(INP2, INP1).FormulaR1C1 = "=COUNTIF(抽選結果!R" & COUNTAREA1 & "C2:R" & COUNTAREA2 & "C7,RC[-1])" Select Case WS02.Cells(INP2, INP1) Case 6 WS02.Cells(INP2, INP1) = "◎" Case 5, 7 WS02.Cells(INP2, INP1) = "○" Case 4, 8 WS02.Cells(INP2, INP1) = "△" Case Else WS02.Cells(INP2, INP1) = "" End Select End If Next INP2 Next INP1 End Sub 'Alt+F11キーを押して左上の出現数のシートをダブルクリックして貼り付けてください。 'シート名は適宜変更して下さい。 'セルC2にカウント範囲を入力すると結果が出るようになっています。

moguo4649
質問者

お礼

ご回答ありがとうございます。 VBAではこのように記述するのですね。 参考になります。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.3

No2の回答の訂正です。 お分かりだと思いますが、提示した数式の「COLUMN(B1)」の部分は、「1」に対応する「COLUMN(A1)」が正しい数式です。 正しくは以下の式になりますが、もちろんこの部分はセル参照してもOKです。 =CHOOSE(COUNTIF(OFFSET(抽選結果!$B$1,COUNTA(抽選結果!$A:$A)-$K$1,0,$K$1,6),COLUMN(A1))+1,"","","","","△","○","◎","○","△","","","","")

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

K1セルに抽出回数が入力されていて、1から順に横方向に表示するなら以下のような数式を入力して右方向にオートフィルしてください。 =CHOOSE(COUNTIF(OFFSET(抽選結果!$B$1,COUNTA(抽選結果!$A:$A)-$K$1,0,$K$1,6),COLUMN(B1))+1,"","","","","△","○","◎","○","△","","","","") 上記の式は最大12回までの出現数に対応していますが、それよりも回数が多い場合は「""」の数を適宜増やしてください。

moguo4649
質問者

お礼

いつもご回答頂きありがとうございます。 また、スマートな回答を頂きありがとうございます。

noname#204879
noname#204879
回答No.1

添付図参照(Excel 2002) 「出現数シート」において、 A4: =IF(COUNTIF(OFFSET(抽選結果シート!$A1,MATCH(1000000,抽選結果シート!$A:$A)-$A1,1,MATCH(1000000,抽選結果シート!$A:$A),6),A3)=6,"◎",IF(OR(COUNTIF(OFFSET(抽選結果シート!$A1,MATCH(1000000,抽選結果シート!$A:$A)-$A1,1,MATCH(1000000,抽選結果シート!$A:$A),6),A3)=5,COUNTIF(OFFSET(抽選結果シート!$A1,MATCH(1000000,抽選結果シート!$A:$A)-$A1,1,MATCH(1000000,抽選結果シート!$A:$A),6),A3)=7),"○",IF(OR(COUNTIF(OFFSET(抽選結果シート!$A1,MATCH(1000000,抽選結果シート!$A:$A)-$A1,1,MATCH(1000000,抽選結果シート!$A:$A),6),A3)=4,COUNTIF(OFFSET(抽選結果シート!$A1,MATCH(1000000,抽選結果シート!$A:$A)-$A1,1,MATCH(1000000,抽選結果シート!$A:$A),6),A3)=8),"△","")))

moguo4649
質問者

お礼

早速のご回答ありがとうございます。 ちょっと試してみます。

関連するQ&A

専門家に質問してみよう