Excel 数式または VBA のサポート

Excel 数式または VBA のサポート

これが数式で可能かどうか、またはVBAが必要になるかどうかはわかりませんが、以下のデータセットがあります。

データセット

A:F から値を取得し、空のセルは無視して、セル G に値を構築します (各ペアの後の改行を含む)

テキスト結合を試してみましたが、ある程度は成功しましたが、すべての値が 1 つの文字列になってしまいました。ご覧のとおり、A => B B => C C => D の順序でなければなりません。

ただし、空白は無視します。

ご協力いただければ幸いです。

答え1

使用:

=TEXTJOIN(CHAR(10),TRUE,INDEX(FILTER(A1:F1,LEN(A1:F1)>0),SEQUENCE(COUNTA(FILTER(A1:F1,LEN(A1:F1)>0))-1,,1))&" => "&INDEX(FILTER(A1:F1,LEN(A1:F1)>0),SEQUENCE(COUNTA(FILTER(A1:F1,LEN(A1:F1)>0))-1,,2)))

と を使用してINDEX(FILTER(A1:F1,LEN(A1:F1)>0),SEQUENCE(COUNTA(FILTER(A1:F1,LEN(A1:F1)>0))-1,,1))INDEX(FILTER(A1:F1,LEN(A1:F1)>0),SEQUENCE(COUNTA(FILTER(A1:F1,LEN(A1:F1)>0))-1,,2))空でないセルの配列を 2 つ作成します。1 つは最初のセルから始まり最後から 2 番目のセルで終わり、もう 1 つは 2 番目のセルから始まり最後で終わります。

次に、を連結し" => "、TEXJOIN を使用して改行を追加します。

コピーします。

ここに画像の説明を入力してください

答え2

私は次のように解決します:

中間結果を生成する各データ行にヘルパー行を導入します: T1、T1、T5、T3、T6、T6、T2、T2、T3l、T3、T7

ルール: 「セルが空の場合は、前のセルに入力します」 A3: =A1 B3: =if(b1="";a1;b1)

別のヘルパー ラインでは、改行に vbCrlf を使用して、累積的な方法で最終的な式を構築できます。ルール:「セルの内容が変更された場合は、数式に別のサブ式を追加し、変更されていない場合は古い数式を繰り返します」b4: =if(b3<>a3;a4 & vbcrlf & a3 & "=>" b3;a4) ...

関連情報