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

A列とB列を繋げてC列に反映させたいです。

イメージ画像添付します。

C列に数式を入れるか、マクロで対応することで自動的に反映させることが可能なのでしょうか。
可能でしたらやり方まで教えていただきたいです。

「Excelで数式またはマクロを使用してで」の質問画像

A 回答 (7件)

=TOCOL(A1:B4,1,TRUE)



で良かった…
普段使わない関数に挑戦してみたら余計な手間を入れてしまった。
    • good
    • 2

ご質問者が掲出されたような、A列、B列のデータともに途中空白がない一団のデータの場合、他の回答者さんも指摘されておられますが、手作業でコピペした方が、数式を記述するより早い気がします。



どうしても数式にこだわるなら、空白セルのない一団のデータの場合、fujillinさんの回答にある数式やchonamiさんの回答にある数式を用いることになると思います。
あるいは、添付画像①のように、C1セルに

=IF(A1<>"",A1,IF(OFFSET(B1,-COUNTA(A:A),0)<>"",OFFSET(B1,-COUNTA(A:A),0),""))

という数式を記述し、下方向へフィルコピーする方法もあります。

また、途中に空白のあるデータの場合、バージョンが365ならchonamiさんの回答にある数式で対応可能だと思います。
もし、バージョンが365でない場合、添付画像②のように、C1セルに以下のような数式を記述することでで対応できます。

=IFERROR(INDEX(A:A,AGGREGATE(15,6,ROW(A$1:A$100)/(A$1:A$100<>""),ROW(A1))),IFERROR(INDEX(B:B,AGGREGATE(15,6,ROW(B$1:B$100)/(B$1:B$100<>""),ROW(B1)-COUNTA(A:A))),""))

※A列、B列とも100行目までデータがある場合の例です。
「Excelで数式またはマクロを使用してで」の回答画像6
    • good
    • 0

365をお使いなら



C1=TOCOL(TEXTSPLIT(TEXTJOIN(",",TRUE,A1:A4,B1:B4),","))

質問の際にはバージョンを必ず書いて下さい。
    • good
    • 0

こんばんは



私も手作業の方が簡単だと思いますけれど・・

A列、B列は空白セルを開けずに、必ず詰めて入力すると仮定してよいのなら・・
C1セルに
=IFS(ROW()<=COUNTA(A:A),INDEX(A:A,ROW()),ROW()<=COUNTA(A:B),INDEX(B:B,ROW()-COUNTA(A:A)),1,"")
を入力して、下方に十分なところまでフィルコピーしておくとかでできると思います。

空白セルがある場合でも関数でできないことはありませんが、もっと長ったらしい式になります。

もちろん、質問者様が作成できるのであれば、マクロでも対応可能です。
    • good
    • 0

関数マクロより、手の操作の方がはやいのでは?



関数なら、=A1、と入力してオートフィルしたら少しはできます。
写真の例だとA4の次はB1に手で変更しないといけないだけです。
    • good
    • 0

> A列とB列を繋げてC列に


とはいいながら、
C列の表示は「A列とB列を繋げて」になってはいませんけど。

C列の表示条件を示してください。
    • good
    • 0

やろうと思えばできるけど、こういう線形でないデータ構造ではバカバカしくてやる気がしない。

こういう問題が生じるということは根本的にデータ構造設計を間違えているということなのだ。
    • good
    • 0

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