サポートシェアリングソリューション
OKWAVE Plus
お知らせ
株式会社NTTぷららは、2022年7月1日(金)をもって株式会社NTTドコモと合併しました。
これに伴い、映像配信サービス「ひかりTV」およびインターネット接続サービス「ぷらら」のサービス提供事業者は、株式会社NTTドコモへと変更になります。
  • ひかりTVからのお知らせはこちら
  • ぷららからのお知らせこちら
  • 「OKWAVE Plus の利用」に関するアンケートご協力のお願い
    アンケートに答えると抽選で500名様にAmazonギフト券100円分をプレゼント!
    回答締切:2022年12月7日(水)18:00まで
    アンケートはこちら

    このQ&Aは役に立ちましたか?

    ベストアンサー
    すぐに回答を!

    1セル内の複数キーワード集計

    2015/10/24 10:42

    1つのセルに好きな季節を記入してあります
    行に集計項目があります。A1:春 B1:夏 C1:秋 D1:冬
    E列に好きな季節をカンマで区切って入れます。
    E2:【春】、E3:【秋、春】、E4:【春、初夏】です。

    E2:【春】でA2で★表示
    E3:【秋、夏】でB3とC3で★表示
    E4:【春、初夏】でA4で★表示
    としたいです。好きな季節が、1セルに1個だと可能なのです。春=IF($A$1=E2,"★"," ")、夏=IF($B$1=E2,"★"," ")、秋=IF($C$1=E2,"★"," ")、冬=IF($D$1=E2,"★"," ")の関数設定です。1セルに2個以上だとE3で秋、夏に★、E4で春に★は集計できません。これを集計できる方法を教えて下さい


    ※OKWaveより補足:「ひかりTVのサービスやISPぷらら」についての質問です。

    質問者が選んだベストアンサー

    ベストアンサー
    2015/10/24 11:27
    回答No.1

    【春、初夏】に夏が無いことを人間が区別できませんので、難しいです。
    【春、初夏】も夏があるもの考えれば、A2セルに以下の式を入れ、
    =IF(AND(ISERR(FIND(A$1,$E2)),ISERR(FIND(A$1,$E2))),"","★")
    その後、右と下にドラッグコピーでいかがでしょう。

    お礼

    早速の回答ありがとうございます。
    関数を実行したら100%近く納得のいく結果でした。
    【初】【晩】の入っている分は、修正して使用開始しました。

    2015/10/24 12:56

    このQ&Aは役に立ちましたか?

    この質問は投稿から一年以上経過しています。
    解決しない場合、新しい質問の投稿をおすすめします。

    質問する

    その他の回答 (3件中 1~3件目)

    2015/10/24 18:23
    回答No.3

    #2です。関数を中心に考えた。ただカンマ区切りのデータをセルに分割するのは、よく知られた下記「操作」(データー区切り位置)で賄った。
    ーー
    データ
    A4:F7 変なところから始まっていますがすみません、意味はありません。
    A5:F7は下記の関数を入れた後の結果です
    acd df c tu x v
    ★ ー ★
    ー ★ ー ★ ★
    ー ー ー ー ー ★
    5-7行は関数の結果です。関数は後述。
    ーー
    H5:H7に元データがあり、I列より右列に、M7までカンマで区切ったデータを分離した。
    acd,b,c acd b c
    accd,df,tu,x accd df tu x
    vb,v,gh,hjk,x vb v gh hjk x <-H列からM列までの分離後の列データ
    すなわち、I列からM列は、データー区切り位置ーカンマで各セルに分離しました。
    ーー
    関数
    A5セルに
    =IF(NOT(ISERROR(MATCH(A$4,$I5:$L5,0))),"★","")
    と入れて、A5セルを第7行目まで、かつA5:A7のセルをF列まで式を複写します。
    結果は上記の通りです。
    だい4行を優先するのか、I列ーM列が優先するのか、質問者の意図と違うかも。

    2015/10/24 14:06
    回答No.2

    この質問以は、補足が必要なのではないか。
    下記の私の処理例を読んで、私の考え違い・間違いなど補足すべきだろう。
    余り具体的にデータ例を提示しているために、質問していることの全貌をつかみにくい。
    具体例だけ提示すればわかりやすいと思うのは間違いだと思う。
    質問では、説明文章を適当に添えて、説明が必要なことを覚えておいて。
    ーー
    A1:E4について
    春 夏 秋 冬
    * ー ー ー 春
    ー * * ー 秋、春
    * ー ー ー 春、初夏
    までは読み取れるが(星印は*に空白セルはーで表示)
    A1:D1はデータ列のようだが、下の第2行から第4行間で、該当する結果を入れるセルだとすると、第1行に当たる、他のデータはどこに現れるのか。E列より右列に現れるのか。
    またA5からE10などに、データと検索結果を出すセルが現れるのか?。
    普通はこんな構成は少ないだろう(エクセルの使い方が経験不足とおもう)
    ーー
    E列は条件を示す列のようで、カンマで条件語句(文字列)をOR条件で示しているようだな。たとえば、春、初夏は、春か初夏の語句が含まれているセルなら、★マークを出すらしい。
    また第1行のデータにない条件語句もE列に出現するらしい。
    ーー
    多数データを列方向に展開するのは、エクセルの使い方として経験不足だと思う。
    ==
    1セルにカンマで区切って条件語句を並べるのは、エクセル関数では区分け(Split)処理がむつかしい(関数では複数データとなる配列等に振り分けるのがむつかしく)ので、むつかしいと思う。関数で回答が出ても質問者にはすぐ理解できない式だろう。
    こういう場合はVBAの出番かとおもう。
    質問者は、VBAは使ったことがないだろうが、挙げてみておく。
    標準モジュールに
    Sub test01()
    dr = Range("E100000").End(xlUp).Row 'E列の最下行をプログラムで掴む
    'MsgBox dr
    For i = 2 To dr '第2行目からdr行まで繰り返し
    For j = 1 To 4 'A列からD列まで繰り返し
    dt = Cells(1, j) '第1行J列 既定分類
    g = Split(Cells(i, "E"), ",") '第i行目のE列データ=条件語句、をカンマで分離 g(k)に入れる
    For k = 0 To UBound(g) '分離した語句それぞれについて
    MsgBox g(k)
    f = InStr(dt, g(k)) '分離した語句が第1行目に見つかれば
    If f <> 0 Then
    Cells(i, j) = "★"
    End If
    Next k
    Next j
    Next i
    End Sub
    結果
    A1:E6
    春 夏 秋 冬 条件?
    ★ ー - ー 春
    ★ ー ★ ー 秋,春
    ★ ー ー ー 春,初夏
    ー ★ ー ★ 夏,冬
    ー ー ー ★ 厳冬,冬
    ーーー
    関数で、もし現状E列データを、カンマで分離し、分離したものを複数セルにF列より右列に振り分ければ、Match関数で、存非をチェックできるかもしれない。
    ===
    「集計」という言葉が出てくるが何のこと。
    集計は数字セルを足すのじゃないの。それはどこ?

    関連するQ&A

    お礼をおくりました

    さらに、この回答をベストアンサーに選びますか?

    ベストアンサーを選ぶと質問が締切られます。
    なおベストアンサーを選びなおすことはできません。