• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルのデータを関数で一行にまとめたい)

エクセルのデータを関数で一行にまとめたい

このQ&Aのポイント
  • エクセルで数字で区切られたデータを関数を使って一行にまとめたいです。現在は一部の処理はできているが、式として扱う方法やスマートなやり方を知りたい。
  • 現在、エクセルで数字で区切られたデータを一行にまとめるための関数を使っていますが、式として扱う方法やよりスマートなやり方を教えてほしい。
  • エクセルのデータを関数を使って一行にまとめたいです。現在は一部の処理ができているが、式として扱う方法や効率的なやり方を知りたい。

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

  • ベストアンサー
  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.2

作業列を使ってもいいのですか。 添付の図の場合、データはA1:A13まで入っていますが、その隣のB列とC列を作業列に使っています。 B2に =MAX(A$1:A2) C2に =IF(ISNUMBER(A2),"",C1&A2) と入れて13行目までコピーします。 後はVlookupで目的の文字列を表示させるだけ =VLOOKUP(1,B:C,2) ……1の下の文字列の場合

hisa133_1209
質問者

お礼

添付画像が見づらい状態での迅速な回答ありがとうございます。 作業列作っても大丈夫です。 出かけていたためお礼が遅くなり失礼しました。 mt2008さんの式だと私の関数の知識でもなんとか理解できそうです。 ありがとうございます

その他の回答 (3)

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.4

添付画像が小さくてレイアウトなどが良くわからないのですが、A1セル以下に例示のデータが入力されていて、最大連結個数が10個までなら、以下のような配列数式を使用すれば表示することができます。 C1セルに以下の数式を入力して、CtrlキーとShiftキーを押しながらEnterして下方向にオートフィルコピーしてください。 =IF(ISNUMBER(A1),LEFT(A2&A3&A4&A5&A6&A7&A8&A9&A10&A11,MIN(ISTEXT(OFFSET(A1:A10,1,0))*1000+ROW($A$1:$A$10))-1),"") #最終的にどのようにデータをまとめたいのかわからなかったので、ひとまず上記の式はA列の数字の右側のセルに連結文字を表示するようにしていますが、例えばまとめたい表が空白行が無い方が良い場合などは、さらに数式を工夫する必要があります。 また実際のデータが、例示のようにひらがなや英文字と限定されているなら、他の対処法も考えられますので、操作の目的を含めて補足説明されるとよいと思います。

hisa133_1209
質問者

お礼

添付画像が見づらい状態での回答ありがとうございます。 皆様に詳しく説明できてない状態で申し訳ないですが、 MackyNo1さんが自分のイメージに一番近い状態です。 ただご指摘のとおり最大連結個数が10までかどうか、多分10以上はないだろうという自分の判断 で質問させていただいたので、ご回答頂いた皆様の式をアレンジして自分で考えてみようと思います。 ありがとうございました。

noname#204879
noname#204879
回答No.3

貴方の添付した図はワークシート範囲が広過ぎるために内容が見え辛い。 [No.1]のように必要最小限の範囲を添付すれば見易いでしょ!

hisa133_1209
質問者

お礼

すみません。参照の式がとても長くなってしまったため 見づらい画面のまま投稿してしまいました。 今後気をつけます。 ありがとうございます。

noname#204879
noname#204879
回答No.1

添付図参照 F1: =IF(COLUMN(A1)>MATCH(LOOKUP($C1+1,$A:$A),$A:$A,0)-MATCH($C1,$A:$A,0)-1,"",INDEX($A:$A,MATCH($C1,$A:$A,0)+COLUMN(A1))) 此れを右方へズズーッとドラッグ&ペースト D1: =F1&G1&H1&I1&J1&K1 範囲 D1:K1 を下方へズズーッとドラッグ&ペースト

hisa133_1209
質問者

お礼

添付画像が見づらい状態での迅速な回答ありがとうございます。 出かけていたためお礼が遅くなり失礼しました。 MACH,INDEXともにあまり使わない関数なので勉強になります。 早速試してみますね。

関連するQ&A