当事務所用)BASEの売上csvファイルから、売掛金a/cと支払手数料a/cの2つの仕訳を作成するには?

問題の所在

個人事業主の方で、BASEを利用されているので、BASEから提供されるデータで仕訳インポートを作成したい。

提供されるcsvデータは4つで、そのうち売上csvの表のファイルが、1行毎に、販売商品の販売価格とBASEの手数料と、控除した入金額を表示する形式。

なので、当事務所の仕訳インポートエクセルの仕様上は、元のファイルの1行を2行に複製加工のひと手間を加えれば足りる。

その複製加工は、

1)1行目2行目3行目 を 1行目1行目2行目2行目3行目3行目 と加工する、

2)1行目2行目3行目 を 1行目2行目3行目1行目2行目3行目 と加工する、

のいずれでも大丈夫だし、従来では、1)にしてかつ金額0円のダミー行をバッファーで設けてやっていたが、、、、

あまり美しくないので (^^)、今回は2)でトライ。

 

結論

INDEX(A:A, INT((ROW(A1)-1)/2)+1)

でOK。

理由

geminiで、「エクセル 元の表の右余白に、1行目2行目3行目、、、を 1行目1行目2行目2行目3行目3行目、、、 と行を増やした表を作成する。元の表の行数は不特定、任意。関数で解決したい。元の表の列数はAからVで固定で、行を増やす表の一番左上のセルはy2」でググったときの回答は以下:

 

元の表の各行を2行ずつ繰り返して表示するには、INDEX関数ROW関数を組み合わせるのが一番スマートです。
セル Y1(新しい表の左上)に以下の数式を入力し、右方向(V列分)および下方向へコピーしてください。
excel
=INDEX(A:A, INT((ROW(A1)-1)/2)+1)
コードは注意してご使用ください。

 

仕組みの解説
  • INT((ROW(A1)-1)/2)+1: この部分がポイントです。下にコピーするにつれて「1, 1, 2, 2, 3, 3…」という数字を生成します。
  • INDEX(A:A, ...): 上記で計算した行番号を基に、A列から値を持ってきます。右にコピーすると B:BC:C と自動で切り替わります。
ヒント
  • 3行ずつにしたい場合は、数式の「2」を「3」に変えるだけでOKです。
  • 元の表が1行目(見出しなど)を飛ばして2行目から始まる場合は、最後の +1 を +2 に調整してください。
この方法で、データの行数が増えても数式を下にドラッグするだけで対応できます。データの最終行まで数式をコピーして動作を確認してみてください。
===============

補足

いつも生成AIを利用するときと同様ですが、特にエクセルの場合には、もう、極力、具体的にプロンプトを書き込むのがベター。

特に gemini では、「テキトーにスタートし、新しいタブを追加していってリライトしていく」でOK。