• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:セルの内容を合わせるエクセル関数)

エクセル関数でセルの内容を合わせる

このQ&Aのポイント
  • エクセルの関数を使用して、B列の空白から1が続いているセルまでをひとくくりとして、右側のセルに表示する方法を教えてください。
  • C列でひとくくりになるセルが下へ行ってしまい、希望する結果に表示されない問題があります。
  • 関数が組める方がいましたら、ご教授いただけますでしょうか。

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

  • ベストアンサー
  • mt2015
  • ベストアンサー率49% (258/524)
回答No.1

C2セルの式を↓にして、下方向にコピーしてみてください =A2&IF(B3=1,C3,"") 後は今E列でやっているような式で、B列が空白の時だけC列の値を表示します。

rutohamuni2012
質問者

お礼

回答ありがとうございます。ですがこれだと1が連続している場合でも2つ目のセルしかまとめてくれないので、解決できませんでした。

rutohamuni2012
質問者

補足

お礼コメントで「解決できない」と書きましたが、こちらのやり方が悪かっただけでした。解決できました。ありがとうございました、

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

VBAの回答は、お呼びじゃないと思うが、下記理由があってVBAでの回答を挙げてみる。 その理由は、A列文字列を蓄積を始める(始期)セルと、打ち切る終期セルが、B列の「データのあり様」によって変動するタイプの課題だからです。 ーー 処理ロジックは、最下行から上方向に、B列を判別していって、B列で空白行が見つかるまで、A列の文字列データを累積し、空白セルに達したら、そこの行で自身の行のA列データも含めて結合し、結果をその行C列に出し、累積はご破算にするもの。 標準モジュールに Sub test02() For i = 9 To 2 Step -1 '結果の表示順を希望のようにするため、下行から処理 If Cells(i, "B") = "" Then 'フラグ列が空白なら s = Cells(i, "A") & s '現在行のA列も結合 Cells(i, "C") = s '同行c列に代入 s = "" '蓄積は解消 Else s = Cells(i, "A") & s 'A列文字列を蓄積する End If Next End Sub をコピペして実行 ーー 結果 文字列 フラグ 結果 a ab b 1 c cde d 1 e 1 f fgh g 1 h 1 最下行は9という To具体数でやったが、 lr = Range("A100000").End(xlUp).Row MsgBox lr For i = lr To 2 Step -1 と変えればデータ数によって、相対化できる。

rutohamuni2012
質問者

お礼

VBAは使う予定ないです。でも回答ありがとうございました!

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.3

B列のフラグは3つ以上連続することはないのでしょうか? また、フラグは数値の1に限るのでしょうか? フラグが3セル連続まで対応する数式を提案します。 E2セルへ次の数式を設定して下へコピーしてみると良いでしょう。 =IF(B2="",IF(B3="",A2,IF(B4="",A2&A3,A2&A3&A4)),"") 4連続以上のときはIF関数を更に多重化すでば目的に合うでしょう。 C列とD列は不要です。

回答No.2

C2に =IF(B2=1,C1&A2,A2) と入力してC3以下にコピペ D2に =IF(B3<>1,C2,D3) と入力してD3以下にコピペ E2に =IF(D1<>D2,D2,"") と入力してE3以下にコピペ C列、D列は「希望する結果をE列に得るための途中結果」なので、必要です。

rutohamuni2012
質問者

お礼

問題は解決できますけど、セルが3列必要なので今回はNo1様にベストアンサーをつけさせて頂きます。でも丁寧な回答ありがとうございました!

関連するQ&A