- ベストアンサー
EXCELで検索して整理(1列から複数列へ)
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
1つの店に同じデータ数のデータセットがあるなら簡単に希望のデータを表示できますが、それ以外の場合は、たとえば店のセルには必ず「店」という文字が最後についているなどという基準がないと抽出することができません。 たとえば店のセルには必ず文末に「店」の文字が含まれているなら、以下のような数式で店名と住所を表示できます。 C1セルに以下の式を入力して右方向に1つ下方向にデータ数分だけオートフィルしてください。 =IF(ISNUMBER(FIND("店",$A1)),OFFSET($A1,COLUMN(A:A)-1,0),"") 同様に「情報2」が含まれている場合に、そのデータを抽出したいなら、A列の最後に「店」と入力して、E1セルに以下の式を入力して下方向にオートフィルしてください。 =IF(AND(ISNUMBER(FIND("店",$A1)),COUNTIF(A3:INDEX(A3:A8,MATCH("*店",A3:A8,0)-1),"情報2")=1),"情報2","")
その他の回答 (4)
- bunjii
- ベストアンサー率43% (3589/8249)
画像の情報のみでの判断ですが、「店名のセルには"店"の文字が必ず右端に含まれている」と言う条件で次の数式で抽出できます。 C1=IF(FIND("店",A1&"店")>LEN(A1),"",A1) D1=IF(C1="","",IF(AND(ISERR(FIND("店",OFFSET($A1,COLUMN(A1),0))),OFFSET($A1,COLUMN(A1),0)<>""),OFFSET($A1,COLUMN(A1),0),"")) E1=IF(C1="","",IFERROR(VLOOKUP("情報2",OFFSET(A1,0,0,MATCH("店",RIGHT(OFFSET(A1,1,0,10)),0)-1),1,FALSE),"")) E1の数式は計算途中で配列の返り値を扱いますので、数式の確定時にCtrl+Shift+Enterで確定します。 C1からE1までを選択して下へ必要数コピーしてください。 Excel 2013で検証した結果が貼付画像です。 Excel 2010でも再現できるはずです。
- kkkkkm
- ベストアンサー率66% (1719/2589)
取り敢えず一行目を項目行にして(挿入してください) C2は =A2 でいいですよね でD2に =IF(OFFSET($A2,0,COLUMN(B1))="","",IF(COUNTIF(OFFSET($A2,COLUMN(A1),0),"*店*"),"",OFFSET($A2,COLUMN(A1),0))) として 右に必要なだけコピーします(一番情報の多い店の行数分) 次にフィルターを使いA列で「店を含む」という条件で絞り込みます。 その後 さっきコピーした列数分選択して下方向にデータある最下行までコピーします。 データが表示されたら全ての範囲をコピーして別のシートに値貼り付けします。 このような操作でいかがでしょう。それぞれ店名に「店」という文字があるものとして考えています。
- tamao-chi
- ベストアンサー率52% (457/875)
情報は5種類程度のみで、みな同じ文字列なのでしょうか? 例えば情報1はすべて「みかん」、情報2はすべて「りんご」であるとか。 そうであれば、フィルターを使って情報1、3~5のチェックを外し、コピー、行列を入れ替えて張り付けすれば済むと思います。
- aokii
- ベストアンサー率23% (5210/22062)
自動処理するためには、まずは、何かのキーワードで全ての店の行を抽出することをお勧めします。人間にできないことは機械にもできません。
お礼
ありがとうございます。 うまくいきました。A列の最後に「店」を追加するのがポイントですね。