[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『集計方法』(あい)
表1
A B C ※A1:A3、A4:A5はセルで結合されています 1 北海道 りんご 100 Aの項目は変わりません 2 みかん 50 B,Cは固定ではありません 3 ぶどう 150 4 青森 りんご 200 5 ぶどう 100 6 岩手 りんご 200
表2
A B C 1 りんご 北海道 100 2 青森 200 3 岩手 200 4 みかん 北海道 100 5 ぶどう 北海道 150 6 青森 100
表2の情報を表1にまとめ直したいのですが、どういった方法で集計するのが良いでしょうか?宜しくお願いします。
< 使用 Excel:Excel2016、使用 OS:Windows10 >
表2のみかんは50の間違いです。
(あい) 2022/01/11(火) 13:44
'Sheet1からSheet2にまとめ Dim c As Range Sheets(2).Cells.Delete Sheets(1).Cells.Copy Sheets(2).Range("A1") Sheets(2).Cells.UnMerge For Each c In Sheets(2).Range("B:B").SpecialCells(2) If c.Offset(, -1).Value = "" Then c.Offset(, -1).Value = c.Offset(-1, -1).Value Next c With Sheets(2) .Columns(2).Cut .Columns(1).Insert Shift:=xlToRight .Sort.SortFields.Clear .Sort.SortFields.Add2 Key:=.Range("A:A") .Sort.SetRange .Range("A:C") .Sort.Apply For Each c In .Range("A:A").SpecialCells(2) If WorksheetFunction.CountIf(.Range("A1:A" & c.Row), c.Value) <> 1 Then c.Value = "" Next c End With End Sub (mm) 2022/01/12(水) 10:14
作業列使いまくりで関数でやってみた。 表1がSheet1で表2がSheet2だとする。 またSheet1のD,E,F列、Sheet2のD列を作業列とする。 Sheet1 D1セル:=A1 D2セル:=IF(B2="","",IF(A2="",D1,A2)) D2セルを下へフィルコピー。 E2セル:=IFERROR(INDEX(B:B,AGGREGATE(15,6,ROW($1:$50)/(COUNTIF(INDIRECT("B1:B"&ROW($1:$50)),B$1:B$50)=1),ROW(A1))),"") E2セルを下へフィルコピー。 (ねむねむ) 2022/01/12(水) 10:58
すまない。 上記のE2セルはE1セルの間違い。
Sheet1 F1セル:1 F2セル:=IF(E1="","",F1+COUNTIF(B:B,E1)) F2セルを下へフィルコピー。 Sheet2 A1セル:=D1 A2セル:=IF(D2=D1,"",D2) A2セルを下へフィルコピー B1セル:=IF(D1="","",INDEX(Sheet1!D:D,AGGREGATE(15,6,ROW($1:$50)/(Sheet1!B$1:B$50=D1),COUNTIF(D$1:D1,D1)))) B1セルを下へフィルコピー。 (ねむねむ) 2022/01/12(水) 11:02
Sheet2 C1セル:=IF(D1="","",SUMIFS(Sheet1!C:C,Sheet1!B:B,D1,Sheet1!D:D,B1)) C1セルを下へフィルコピー。 D1セル:=INDEX(Sheet1!E:E,MATCH(ROW(A1),Sheet1!F:F,1)) D1セルを下へフィルコピー。 これで完了。 なお上記では元データが最大50行までに対応している。 もっとある場合は式中の$50をおおきくしてくれ。 (ねむねむ) 2022/01/12(水) 11:05
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.