advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 779 for シリアル値 とは (0.008 sec.)
シリアル値 (1875), とは (29348)
[[20150328072331]]
#score: 8288
@digest: 9d174447e65411374bf073b93a009540
@id: 67622
@mdate: 2015-03-28T14:18:04Z
@size: 10683
@type: text/plain
#keywords: 席数 (84004), 欠席 (60833), 下痢 (48198), rollsh (44989), 席理 (44434), yearnmonth (44285), rownumtowrite (42959), 腹痛 (42158), 痛イ (36904), reasonsh (36340), ratiosh (36340), 痛骨 (35279), 折下 (34297), wstowrite (30483), 由10 (27823), 骨折 (25990), ンフ (23414), 頭痛 (23060), rowtowritereason (22494), 由9 (21971), 席率 (19393), 痛1 (19043), 準月 (15273), フル (10287), ズメ (8835), 他2 (8762), cel (7810), 理由 (7331), ルb (6067), ルa (5891), スズ (5776), 数10 (5058)
『欠席数と欠席率をまとめたい』(ジョニー)
下記Sheet1に、2015年2月の保育園の出欠実績があります。 A2 2/3のさくら組の出席数は12名で、欠席数は3名。 欠席数の内訳けとして、E2 F2には腹痛が1名。G2 H2にはインフルAが2名というような データがあります。 保育園全組のまとめを月ごとに、Sheet2(欠席数)に抽出していきたいと思ってい ます。 Sheet3(欠席率)には、全出席数71日+全欠席数15=86を分母とし、分子にSheet2(欠席数) になります。 *Sheet1の実際のデータは理由10 欠席数10まであります。 *Sheet2とSheet3の欠席理由は固定されあらかじめ、セットされています。 *Sheet2のH1は基準月(Sheet1のデータの年月)です。 ご指導よろしくお願いします。 Sheet1 A B C D E F G H I J 1 日付 組 出席数 欠席数 理由1 欠席数1 理由2 欠席数2 理由3 欠席数3 2 2/3 さくら 12 3 腹痛 1 インフルA 2 3 2/3 うめ 11 3 インフルA 2 インフルB 1 4 2/3 たけ 13 1 頭痛 1 5 2/4 さくら 13 2 インフルA 1 インフルB 1 6 2/4 うめ 9 5 インフルB 3 骨折 1 下痢 1 7 2/4 たけ 13 1 頭痛 1 Sheet2(欠席数) A B C D E F G H 1 腹痛 インフルA インフルB 頭痛 骨折 下痢 2015/2 2 2月 1 5 5 2 1 1 3 3月 4 4月 Sheet3(欠席率) A B C D E F G 1 腹痛 インフルA インフルB 頭痛 骨折 下痢 2 2月 1.2% 5.8% 5.8% 2.3% 1.2% 1.2% 3 3月 4 4月 < 使用 Excel:Excel2007、使用 OS:Windows7 > ---- とりあえず欠席数の集計はマクロを使えばできます。 Sub aaa() Dim a As Long Dim b As Long Dim c As Long Dim d As Long a = 2 b = 6 c = 0 d = 2 Do Until d = 5 Do Until a = 8 If Month(Cells(a, 2).Value) = d Then Do Until b = 26 If Cells(a, b).Value = "腹痛" Then c = c + Cells(a, b + 1).Value End If b = b + 2 Loop Sheets(2).Cells(d, 2).Value = c + Sheets(2).Cells(d, 2).Value c = 0 b = 6 Do Until b = 26 If Cells(a, b).Value = "インフルA" Then c = c + Cells(a, b + 1).Value End If b = b + 2 Loop Sheets(2).Cells(d, 3).Value = c + Sheets(2).Cells(d, 3).Value c = 0 b = 6 Do Until b = 26 If Cells(a, b).Value = "インフルB" Then c = c + Cells(a, b + 1).Value End If b = b + 2 Loop Sheets(2).Cells(d, 4).Value = c + Sheets(2).Cells(d, 4).Value c = 0 b = 6 Do Until b = 26 If Cells(a, b).Value = "頭痛" Then c = c + Cells(a, b + 1).Value End If b = b + 2 Loop Sheets(2).Cells(d, 5).Value = c + Sheets(2).Cells(d, 5).Value c = 0 b = 6 Do Until b = 26 If Cells(a, b).Value = "骨折" Then c = c + Cells(a, b + 1).Value End If b = b + 2 Loop Sheets(2).Cells(d, 6).Value = c + Sheets(2).Cells(d, 6).Value c = 0 b = 6 Do Until b = 26 If Cells(a, b).Value = "下痢" Then c = c + Cells(a, b + 1).Value End If b = b + 2 Loop b = 6 Sheets(2).Cells(d, 7).Value = c + Sheets(2).Cells(d, 7).Value c = 0 End If a = a + 1 Loop a = 2 d = d + 1 Loop End Sub これは理由が下痢まである場合のマクロなので、あとは付け足してください。こちらとしては7つめ以降の理由がわからないのでどうしようもありません。 (スズメ) 2015/03/28(土) 11:14 ---- 補足 Dim a As Long Dim b As Long Dim c As Long Dim d As Long と、 a = 2 b = 6 c = 0 d = 2 の間に、 Sheets(2).Range("B2:G2").ClearContentsを付け足してください。 (スズメ) 2015/03/28(土) 11:20 ---- あと、上のマクロを実行する際は、必ずシート1で実行してください。 (スズメ) 2015/03/28(土) 11:26 ---- > *Sheet2とSheet3の欠席理由は固定されあらかじめ、セットされています。 > *Sheet1の実際のデータは理由10 欠席数10まであります。 1.・・・と言うことは、実際はK列まで欠席理由が書かれているんですね? > *Sheet2のH1は基準月(Sheet1のデータの年月)です。 2.何の為に基準月なんて書き込むのですか? Sheet1が2月分なら書く必要ないような気がするんですけど、 実際は、1月分とか3月分もSheet2に混在しているのですか? 3.混在している場合、当然、集計基準月を書く必要がある訳ですけど 実際はどのセルに書いてあるんですか? (H1セルじゃないことは明らかですけど。L列なんでしょうか?) 4.・・・で、「2015/2」これはどんなデータなんですか?(文字列? 日付シリアル値?) 5.同じような疑問ですけど、Sheet2とSheet3のA列「3月」とかは、 どんなデータなんですか?(文字列? 日付シリアル値?) (半平太) 2015/03/28(土) 17:40 ---- 半平太さま、ありがとうございます。 1.・・・と言うことは、実際はK列まで欠席理由が書かれているんですね? 欠席理由は1から10まであり、欠席理由10はW列が最終で、欠席数10はX列になります。 Sheet1 A B C D E F G H I J W X 1 日付 組 出席数 欠席数 理由1 欠席数1 理由2 欠席数2 理由3 欠席数3 ・・・理由10 欠席数10 2.何の為に基準月なんて書き込むのですか? Sheet2やSheet3に転記する時に必要かと考えました。 3月分や4月分をするとき2月分が消えてしまわないかと。 不要なら無視してください。 Sheet1のデータは2月分だけです。3月が終わると3月分だけです。混在はありません。 4.・・・で、「2015/2」これはどんなデータなんですか? 5.同じような疑問ですけど、Sheet2とSheet3のA列「3月」とかは、 どんなデータなんですか?(文字列? 日付シリアル値?) 日付はすべてシリアル値です。 私のスキル不足で、的外れな事を書いてるようですみません。 ご指導よろしくお願いします。 (ジョニー) 2015/03/28(土) 18:57 ---- 欠席集計シートと欠席率シートの欠席理由はB1:L1に書いてあるものとします。(下図参照) 但し、順序は不問。 また、該当する月データがA列に無い場合は、最下行の下に自動的に追加されることにします。 <Sheet2 結果図> 行 _______A_______ __B__ __C__ __D__ __E__ __F__ __G__ __H__ __I__ __J__ ___K___ 1 テキトーな日付 腹痛 インフルA インフルB 頭痛 骨折 下痢 理由7 理由8 理由9 その他 2 2015/1/15 3 2015/2/3 1 5 5 2 1 1 4 2015/3/3 5 2015/4/7 <Sheet3 結果図> 行 _______A_______ __B__ __C__ __D__ __E__ __F__ __G__ __H__ __I__ __J__ ___K___ 1 テキトーな日付 腹痛 インフルA インフルB 頭痛 骨折 下痢 理由7 理由8 理由9 その他 2 2015/2/28 1.2% 5.8% 5.8% 2.3% 1.2% 1.2% 3 2015/3/15 4 2015/4/6 <Sheet2 結果図> もし月の情報が無い場合は、最下行の下に自動追加される。(日付はSheet1のA2セルと同じものにセット) 行 _______A_______ __B__ __C__ __D__ __E__ __F__ __G__ __H__ __I__ __J__ ___K___ 1 テキトーな日付 腹痛 インフルA インフルB 頭痛 骨折 下痢 理由7 理由8 理由9 その他 2 2015/1/15 3 ←テストの為、2月の日付をクリアして実行すると 4 2015/3/3 5 2015/4/7 6 2015/2/3 1 5 5 2 1 1 ←2月が見当たらないので自動追加される ※セルの書式はそちらで設定してください。 貼り付けるマクロ Sub ReasonsToBeAbsent() Dim rollSh As Worksheet, reasonSh As Worksheet, ratioSh As Worksheet Dim dic As Object Dim cel As Range Dim yearnmonth As String Dim rowToWriteReason As Long '書込み行番号 Dim rowToWriteRatio As Long Dim TTL As Long Set rollSh = Worksheets("Sheet1") '出欠シート Set reasonSh = Worksheets("Sheet2") '欠席集計シート Set ratioSh = Worksheets("Sheet3") '欠席率シート Set dic = CreateObject("Scripting.Dictionary") ' 連想配列をセット For Each cel In rollSh.Range("E2:X" & rollSh.Range("A10000").End(xlUp).Row) If Application.IsText(cel.Value) Then If IsNumeric(cel.Offset(, 1).Value) Then If dic.Exists(cel.Value) Then dic(cel.Value) = dic(cel.Value) + cel.Offset(, 1).Value Else dic(cel.Value) = cel.Offset(, 1).Value End If End If End If Next TTL = Application.Sum(rollSh.Range("C:D")) '分母 yearnmonth = Format(rollSh.Range("A2").Value, "yyyymm") rowToWriteReason = RowNumToWrite(reasonSh, yearnmonth, rollSh.Range("A2").Value) rowToWriteRatio = RowNumToWrite(ratioSh, yearnmonth, rollSh.Range("A2").Value) For Each cel In reasonSh.Range("B1:L1") If dic.Exists(cel.Value) Then reasonSh.Cells(rowToWriteReason, cel.Column).Value = dic(cel.Value) End If Next For Each cel In ratioSh.Range("B1:L1") If dic.Exists(cel.Value) Then ratioSh.Cells(rowToWriteRatio, cel.Column).Value = dic(cel.Value) / TTL End If Next dic.RemoveAll End Sub Function RowNumToWrite(wsToWrite As Worksheet, ByVal yearnmonth As String, ByVal defaultDate) Dim cel As Range For Each cel In wsToWrite.Range("A2", wsToWrite.Range("A500").End(xlUp)) If Format(cel.Value, "yyyymm") = yearnmonth Then RowNumToWrite = cel.Row Exit For End If Next If RowNumToWrite = 0 Then '書き込むベキ月の情報がA列に無い場合 With wsToWrite.Range("A500").End(xlUp).Offset(1) RowNumToWrite = .Row .Value = defaultDate End With End If End Function (半平太) 2015/03/28(土) 22:25 ---- 半平太さま、確認させていただきました。 完璧です。 2月の日付をクリアして、実行させると自動的に追加されるところまで考えていただき 感謝しております。 ありがとうございました。 (ジョニー) 2015/03/28(土) 23:18 ...
https://www.excel.studio-kazu.jp/wiki/kazuwiki/201503/20150328072331.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97043 documents and 608214 words.

訪問者:カウンタValid HTML 4.01 Transitional