
No.5ベストアンサー
- 回答日時:
〇の無い列をSheet2では表示させないようにしました。
図は上がSheet1、下がSheet2です。
Sheet1に以下の式をいれる
B1 =COUNTIF(B$3:B$100,"〇")
右方向へフィル
$100の部分は人数に応じて適宜変更
Sheet2に以下の式をいれる
B1 =IFERROR(INDEX(Sheet1!$A2:$Z2,,SMALL(IF(Sheet1!$B$1:$Z$1>0,COLUMN(Sheet1!$B$1:$Z$1)),COLUMN(B$1)-1)),"")
注:配列数式なのでCtrl+Shift+Enter同時押しで入力すること
右方向および下方向へフィルする
式中の$Z2や$Z$1の"Z"は質問数に応じて適宜変更
ただしこのままでは〇の無いセルにゼロが表示されてしまうので
セルの書式設定→表示形式→ユーザー設定で [=0]"" を設定する

どうも、ありがとうございました!
やりたかった事が上手く出来ました。
非常に解りやすく簡潔に教えて頂き助かりました。
改めて、ありがとうございました!
No.7
- 回答日時:
ご質問の仕様とは、多少異なりますが、こんな方法もあります。
このマクロは、Sheet1の2行目以降(A~F列)に実数が入力(〇にこだわらず)されている列だけをSheet2にコピーします。
Sub sample()
Dim myRng As Range
Set myRng = Worksheets("Sheet1").Range("A2:F" & Rows.Count)
Set myRng = myRng.SpecialCells(xlCellTypeConstants, 23)
Set myRng = Intersect(myRng.EntireColumn, Worksheets("Sheet1").Rows(1))
myRng.EntireColumn.Copy Destination:=Worksheets("Sheet2").Range("A1")
End Sub
ちなみに、この程度の作業ならマニュアル操作でも可能ですよ。頻繁に行うのであればVBAも有効ですが、たまにしか使わない、または、その度に条件が変わるような場合は、マニュアル操作をお勧めします。
No.6
- 回答日時:
こんばんは!
別シートに「○」がついている項目名を表示させるのはどうでしょうか?
手っ取り早くVBAでの一例です。
↓の画像のような配置で元データはSheet1にあり、Sheet2に表示するとします。
標準モジュールにしてください。
Sub Sample1()
Dim i As Long, j As Long
Dim cnt As Long, wS As Worksheet
Set wS = Worksheets("Sheet2")
wS.Cells.ClearContents
wS.Range("A1") = "名前"
With Worksheets("Sheet1")
cnt = 1
For i = 2 To .Cells(Rows.Count, "A").End(xlUp).Row
If WorksheetFunction.CountIf(.Rows(i), "○") > 0 Then
cnt = cnt + 1
wS.Cells(cnt, "A") = .Cells(i, "A")
For j = 2 To .Cells(1, Columns.Count).End(xlToLeft).Column
If .Cells(i, j) = "○" Then
wS.Cells(cnt, Columns.Count).End(xlToLeft).Offset(, 1) = .Cells(1, j)
End If
Next j
End If
Next i
wS.Columns.AutoFit
End With
End Sub
こんな感じではどうでしょうか?m(_ _)m


No.4
- 回答日時:
シート1のレイアウトは添付図であってますか。
また、添付図のような場合、どのような結果を望みますか。
赤線で囲んだセルが該当セルと考えて良いですか。
画像で望む結果(シート2)を提示していただけると、よりわかりやすかと。
画面の画像の切り取りは、アクセサリのsnipping toolを使うと便利です。
(この画像もsnipping toolを使ってます)

No.2
- 回答日時:
こんにちは
いまひとつなさりたいことがよくわかりませんが・・・
(各セルの区切りが「|」なのでしょうが「.」の意味がわからないし)
『いろいろな条件に応じてデータを抽出したい』
ということかと想像しますので、そのまま「オートフィルタ」の機能を利用すればよさそうに思います。
結果だけを別の範囲に表示したければ、フィルタオプションを利用すれば可能です。
https://pasonyu.com/how-to-use-auto-filter-for-e …

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelマクロ 差分抽出の方法が知りたいです。 2 2023/03/07 13:25
- Excel(エクセル) VBAで、シート間の転記するコードを教えてください。 4 2023/03/26 10:43
- Excel(エクセル) Excelマクロの差分抽出のコードを教えていただきたいです。 2 2023/03/14 11:40
- Excel(エクセル) エクセルのマクロで複数条件に当てはまるものを全て抽出したいです 7 2022/05/21 08:51
- Visual Basic(VBA) AdvancedFilterについての質問 2 2022/07/02 22:58
- Excel(エクセル) エクセルの関数を教えてください。② 9 2023/05/25 15:28
- Excel(エクセル) 複数セルデータを別シートの単一セルにコピーしたい。(詳細をご参照ください) 1 2022/12/14 15:08
- Visual Basic(VBA) 複数シートの複数列に入力されているデータを重複なしで抽出するVBAを作りたいです。 9 2022/06/17 10:33
- Excel(エクセル) Excelの関数でこんな処理ができますか 1 2023/02/08 13:46
- Excel(エクセル) VBA セルの値と同じ名前のシートにデータを貼り付けするやり方を教えてください 2 2022/05/17 16:26
このQ&Aを見た人はこんなQ&Aも見ています
-
○印がある場合、そこから情報を抽出して上から順に表示
Excel(エクセル)
-
Excelで〇のついたものを抽出したい
その他(Microsoft Office)
-
会員名簿から出席者のみ一覧表の作成
その他(Microsoft Office)
-
-
4
エクセル2016でfilter関数がないので、、抜き出す関数をおしえてください。
Excel(エクセル)
-
5
EXCELで2つの数値のうち大きい方を採択する数式
Excel(エクセル)
-
6
複雑なシフト表から1日ごとの出勤者、シフトを抜き出したいです
Excel(エクセル)
-
7
関数を使用して、エクセルの勤務表から、勤務形態別に担当者を抽出したい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
お肉の下のシートを煮込んでし...
-
エクセルで1行だけ数式が反映さ...
-
条件にマッチする行を抽出するV...
-
エクセルのシートをコピーして...
-
指定した条件でTRANSPOSE関数を...
-
VBA 縦のデータを横にするコード
-
エクセルを利用して、日計と累...
-
エクセルでフラグがたっている...
-
毎日の日計を別シートに自動で...
-
EXCELで受験票を作成したい(名...
-
チュロス袋の代用
-
エクセルでシート間の相対参照
-
EOMONTH関数の代わり
-
excelマクロで複数シート間のデ...
-
excel シート1の奇数(偶数)...
-
エクセルで2つのシートに同じ名...
-
エクセルの日々表計算の翌日繰越を
-
エクセルの複数シート集計について
-
Excelで一発検索させたい。
-
エクセルの帳簿の作り方でアド...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
お肉の下のシートを煮込んでし...
-
エクセルを利用して、日計と累...
-
エクセルのシートをコピーして...
-
条件にマッチする行を抽出するV...
-
エクセルで1行だけ数式が反映さ...
-
2つのシート間での重複データ...
-
毎日の日計を別シートに自動で...
-
指定した条件でTRANSPOSE関数を...
-
エクセルでフラグがたっている...
-
エクセルで○のついた項目を抽出
-
チュロス袋の代用
-
EOMONTH関数の代わり
-
エクセル ○印がついている行を...
-
excel シート1の奇数(偶数)...
-
EXCELで受験票を作成したい(名...
-
2つのシート突合の相違時色塗り...
-
エクセルで2つのシートに同じ名...
-
VBA 縦のデータを横にするコード
-
派遣会社の担当者からタイムシ...
-
Excelで複数のシートに列のグル...
おすすめ情報
説明が解りづらくて申し訳ありません。
実際のデータは人物は30人ほど、どんどん増える予定で、質問項目は50項目あります。
その中には一人も○をつけてない項目もあります。
なので、DEBU-NEKARUさんの言うようなデータの場合
名前|りんご好き|みかん好き|ぶどう好き
C男 |. | ○. |
と出して、本当に1人も○をつけてないデータだけ省略しようと思っています。
実際はC男はみかん好きだけのデータで抽出したいですが、そうすると他の人の時に項目をどうするかとなりそうなのでよろしくお願いします。
質問本文に補足しました。
もしよろしければ、回答頂けないでしょうか。
よろしくお願いします。
.は、ただの誤入力です。申し訳ありません。
説明が解りづらくて申し訳ありません。
オートフィルターはすみませんが事情があり使わず関数かVBAでと考えていますが、VBAも関数も作ってはみたんですが、上手く抽出できなくて、他の方ならどのような感じで組むのか知りたくて質問しました。
どうぞよろしくお願いします。