dポイントプレゼントキャンペーン実施中!

図のようにA~C列の”〇”があるセルの見出しを抽出してD列に表示する関数を教えて下さい。

「エクセルでデータがある列の見出しを抽出す」の質問画像

A 回答 (2件)

こんばんは!



1セル内に収めなければいけないのでしょうかね?
となると手っ取り早くVBAになりますが、一例です。
画像の配置通りだとして・・・

Sub Sample1()
 Dim i As Long, j As Long, lastRow As Long
 Dim myStr As String

  '//▼最終行取得//
  For j = 1 To 3
   lastRow = WorksheetFunction.Max(lastRow, Cells(Rows.Count, j).End(xlUp).Row)
  Next j
  '//▼ココから操作//
  For i = 2 To lastRow '/←2行目~最終行まで///
   For j = 1 To 3 '//←A列~C列まで//
    If Cells(i, j) = "○" Then
     myStr = myStr & Cells(1, j) & "、"
    End If
   Next j
    Cells(i, "D") = Left(myStr, Len(myStr) - 1)
    myStr = ""
  Next i
End Sub

※ 記号の「○」と漢数字の「〇」は全く別ものです。
(とりあえず記号の「○」としています)

※ 関数でないのでデータ変更があるたびにマクロを実行する必要があります。

別セル表示で良いのであれば関数で可能です。

まずはこの程度で・・・m(_ _)m
    • good
    • 1
この回答へのお礼

ご丁寧にありがとうございます。参考にさせていただきます。関数は自分で考えてみます。

お礼日時:2020/06/16 22:26

手作業で行う手順を文章にして説明できますか。


できるのであれば、それを再現するように数式を組み合わせれば良いのです。

まずは手順を文章で書き出してみましょう。
それができないと、同様の問題を自分で解決することはできませんよ。
そのうえで分からない点を質問すると、具体的なやり方のアドバイスを貰えるでしょう。

とりあえず、手順を「補足」に書いてみましょう。
間違っていても良いんです。アドバイスを貰うことが目的なのですから。
例:
 A2セルの値が”〇”かを調べる。
 ”〇”ならA1セルの値を参照する。
 B2セルの値が”〇”かを調べる。
 ”〇”ならB1セルの値を参照する。
 (中略)
 C5セルの値が”〇”かを調べる。
 ”〇”ならC1セルの値を参照する。
ちなみに略さず全部書きましょう。
そして一つずつ、どんな関数を使った数式にするかを考える。
 A2セルの値が”〇”かを調べる。
 ”〇”ならA1セルの値を参照する。
 =IF(A2="〇",A1,"")
など。
そしてそれらを整理して組み合わせる。
 =IF(A2="〇",A1"、","")&IF(...
など。

まあ、中にはベストアンサー狙いで「質問者に自力解決されたら次の質問こないじゃないか!」という人が、具体的な数式を代わりに考えてくれるかもしれませんが...。

・・・
ここは「代わりに作業をお願いします」と「作業依頼」する場所ではありません。
自力で解決できるようなアドバイスを貰う場所です。
もしも「作業依頼」をするのであれば、専門業者に委託しましょう。
    • good
    • 1
この回答へのお礼

ご意見ありがとうございます。おっしゃるとおりと思います。

お礼日時:2020/06/16 22:26

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています