Excel の列 A にすべてのデータがあり、数式を使用して列 B に入力したいと考えています。添付の画像を参照してください。
参照セルで「&_x1」と「&_x2」を使用すると機能しますが、この場合の制限は、それを下にドラッグして、列 B の次のセルに同じ数式を適用できないことです。列 B の各行に移動して、参照セルを手動で調整する必要があります。
他に使用できるアプローチはありますか? 私の目標は、Row1-ColumnB に数式を追加した後、角を下にドラッグすると、列 B のすべての行が埋められることです。列 B の他のセルの数式を調整する必要はありません。最終的な表は、添付の画像とまったく同じになるはずです。
答え1
次の数式により、必要な列が作成されます。
SPILL
説明から、正式なテーブルにデータを入力することが明らかなので、テーブルでは機能しない機能を使用しない方法で入力しました。
=INDIRECT("A" & ROUNDUP(ROW()/2, 0)) & "_x" & IF(MOD(ROW(),2)=1, 1, 2)
ソース セルのアドレス指定は、列の文字と数式から作成した文字列を使用して実行されますINDIRECT()
。数式は行番号を 2 で割り、切り上げます。2 で割ると、各入力のペアが得られます。セットごとに 5 つのアイテムが必要な場合は、5 で割るなどします。
「_x1」と「_x2」に必要な「1」または「2」の値は、別の算術演算で取得されます。今回はMOD()
2 を除数として使用し、1 (奇数行) または 0 (偶数行) を取得します。 は、IF()
どちらであるかをテストし、文字列のその部分を構築するための正しい 1 または 2 を返します。
(テーブルを使用しておらず、機能が必要な場合は、 の代わりにSPILL
を使用して同様のことを実行し、除算する数値を生成することもできます。または、より複雑な方法として、 を使用して行の値を直接生成することもできます。)SEQUENCE()
ROW()
答え2
これを試すことができます:
セル B42 の配列 (CSE) 数式:
{=INDEX($A$42:$A$45, MATCH(FALSE, COUNTIF($B$41:B41, $A$42:$A$45)=2, 0))}
フォーミュラを仕上げるCtrl+Shift+Enter必要になるまで補充してください。
2セル内の数式で
B42
からの値を繰り返すのに役立ちA42:A45
、編集可能です。セル C42 の数式:
=IF(COUNTIF(B$42:$B42,$B42)=1,B42&"_x1",IF(COUNTIF(B$42:$B42,$B42)=2,B42&"_x2",""))
または、これも使用できます:
=IF(COUNTIF(B$42:$B42,$B42)=1,B42&"_x1",B42&"_x2")
注意
- 必要に応じて数式内のセル参照を調整します。
- 見やすくするために、ヘルプ列を非表示にすることができます。