- ベストアンサー
エクセルのリスト表からマトリクス表に丸いを付けたい
- Excel2016を使用して、リスト表のデータをマトリクス表に変換する方法を教えてください。
- VLOOKUP、INDEX、MATCHなどの関数を試しましたが、うまくいきませんでした。適切な方法はありますか?
- 要約文3
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>何かよい方法はありますでしょうか。 IF関数とCOUNTIFS関数を使えば良いでしょう。 リスト表をSheet1、マトリックス表をSheet2とすればマトリックス表のB2セルへ次の数式を設定して右と下へ必要数コピーすれば良いでしょう。 =IF(COUNTIFS(Sheet1!$A:$A,$A2,Sheet1!$B:$B,B$1),"◯","")
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17069)
ピボットテーブル利用法。 まずピボットテーブルで表を作ります。 合計 / コード 列ラベル 行ラベル 111 222 333 444 総計 AAA 111 111 BBB 222 444 666 CCC 222 333 555 DDD 333 333 EEE 333 444 777 総計 111 444 999 888 2442 そして ピボットテーブルをコピーし、値だけを別シートに貼りつける。 そして https://tonari-it.com/excel-jump-replace/ エクセルで空白や空白以外のセルを一気にまとめて置換する方法 の方法で、数字を〇に置換します。 Ctrl+gの画面で、セル選択 定数ー数値 OK 次に Ctrl+H の画面で 検索する文字列 * 置換後の文字列 〇 ーー 不要な部分は消す。
- imogasi
- ベストアンサー率27% (4737/17069)
関数でもできるので、VBAを使うまでもないが 参考に SHeet1 A1:B8 AAA 111 BBB 222 BBB 444 CCC 222 CCC 333 DDD 333 EEE 333 EEE 444 標準モジュールに Sub test01() Set sh1 = Worksheets("Sheet1") Set sh2 = Worksheets("Sheet2") lr = Range("A100000").End(xlUp).Row For i = 1 To lr r1 = sh1.Cells(i, 1) 'AAA 'MsgBox r1 c1 = sh1.Cells(i, 2) '111 'MsgBox c1 '--- Set r2 = sh2.Range("A1:A8").Find(r1) 'MsgBox r2.Row Set c2 = sh2.Range("A1:E1").Find(c1) 'MsgBox c2.Column sh2.Cells(r2.Row, c2.Column) = "?Z" Next End Sub を入れて実行。 結果 列が崩れるので実際のシートで見てください Sheet2 111 222 333 444 AAA 〇 BBB 〇 〇 CCC 〇 〇 DDD 〇 EEE 〇 〇
- kkkkkm
- ベストアンサー率66% (1734/2604)
E2から下にAAA,BBBとなっていてF1から右に111,222となっているとした場合で考えた式ですが F2に以下の式を記載して下と横にコピーしてください。 =IF(SUMPRODUCT(($A$1:$A$8=$E2)*($B$1:$B$8=F$1)*1),"◯","") 実際に合わせてセルに指定を変更してください。