ExcelのCONCATENATE関数にセル範囲を指定したいが出来ないので、代替手段として。(Twitterまとめ)
Excel先生の CONCATENATE関数
ないしは &結合
で、セル内容を文字列結合する事ができて便利。
多くのエンジニアはこれで、
マスタデータの管理表からマスタテーブルへのINSERT文を作ったり、
項目定義表からデータのマッピングクラスのプロパティ実装をコメント付きで生成したり、
いわゆる定形コードの量産をやってるかと思います。
CONCATENATE
よく困ること
結合するセルの数が増えると、関数にせよアンパサンド結合にせよ、式を書いていくのがめんどくさいですよね。
こういうシチュエーション。
実際には あいうえお
レベルじゃなく、もっと多くの列を結合しないといけないケースも普通に有り得ますね。
めんどくさいだけならまだしも、たまに間違って歯抜けにしちゃったり、どっかで重複させちゃったり、情報源が増えたり減ったりした時にどこが何番目か解らなくてメンテナンスする気が失せるなんてこともありますね。
つまり、作業ミスを起こしやすい。(そしてめんどくさい)
代替案
本当は A1 & A2 & A3
じゃなく CONCATENATE( A1:A3 )
みたいな指定が出来たら素敵、でも出来ない。
ので、こういう方法を考えました。
なんだろう、あんまり説明するようなアレじゃないんですが、強いて言えば以下のような擬似コードみたいなことをやってる訳ですね。
string[] parts = { "あ", "い", "う", "え", "お", "か", "き", "く", "け", "こ", }; // B2~K2 の内容 string result = ""; foreach ( string p in parts ) { // このロジックが B4~K4 部分に相当。 result += p; } string L6 = result;
範囲コピーしてぴゃーってやるだけで、大量の列でも簡単に(間に無駄が挟まるけど)結合出来るんで、割と重宝するテクニックです。
Twitterのスレッド
Excelでさぁ、、、
— Sugaryo as a Service (@sugaryo1224) 2019年7月6日
CONCATENATE ないしは `&` でセル内容を文字列結合出来るじゃん?
で、これを利用してソースコード断片を作りまくって、がっちゃんこしてソースコード自動生成ってよくやるじゃん?
別解(コメ欄で教えてもらった)
コメント欄に神が降臨されたので追記させて貰います。
これは盲点!!
シチュエーション前提として「マクロを組むほどではないが、全部手でやるにはだるい」ってレベルの作業の自動化なので、GoogleSpreadSheetで出来るならそれも十分にアリですね。
こりゃすげぇや。
モノをgit管理に置けないって点だけがネック感ありますが、選択肢は多いに越したことはないし、その時々で一番良い方法を選択すれば良いでしょう。
(゚∀゚) とても良いことを教えてもらいました。
別解2(更に教えてもらいました)
TEXTJOIN 関数、あるで。
まじだああああああああああ!!!
しかもこれ、区切り文字の指定が出来る(CSV形式みたいなのをやるのが主目的っぽい)みたいですね。
CONCATENATE関数事態を拡張しようとすると破壊的変更になるからやめた、新しい関数作るお!!
ってことなんですかね、普通に知らなかった。