2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

Excel総合相談所 155

1 :名無しさん@そうだ選挙にいこう:2023/08/19(土) 18:09:49.84 .net
【1 OSの種類         .】 Windows**
【2 Excelのバージョン   】 Excel**
【3 VBAが使えるか    .】 はい・いいえ
【4 VBAでの回答の可否】 可・否

注意事項
・情報を隠すために別の問題を設定するのはやめましょう。たいていの場合その問題は的外れな設定で、期待していたものからずれた回答が返ってきます。

スレッド作成は>>980がやります

※前スレ
Excel総合相談所 154
https://mevius.5ch.net/test/read.cgi/bsoft/1683290221/

252 :名無しさん@そうだ選挙にいこう:2023/10/24(火) 12:04:52.20 .net
エクセルで、フォルダ内に、a、ab、など複数ののファイルがあった場合に、

その中身を1枚にしたいので、単純にa.xlsxへのリンクをしているんだけど、、aというファイル名がcになったりするので、集計ファイルにどのファイルへのリンクかを記入して、リンクを都度変更させたい。

マクロでも可

253 :名無しさん@そうだ選挙にいこう:2023/10/24(火) 12:16:42.13 .net
マスターを設けてリンク先をかえたい。

254 :名無しさん@そうだ選挙にいこう:2023/10/24(火) 14:36:30.61 .net
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel Online版
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否

7-Zipでxlsxを展開→何もせず→同で再圧縮(通常、無圧縮〜超圧縮)して再開するとエラーになる
しかし、7-Zipで開いた状態でシート(sheet1.xml)を削除したものなら、「修復」して開くことができる(アプリ版なら開けた記憶と情報あり)

圧縮アプリなのか、圧縮オプションなのか?教えてください。

参考)そもそも何してるのかw
1番シートに関数を最終行まで誤操作で埋めてしまったため、列の削除もシートの削除も処理が終了しなくなってしまった
ファイルサイズも大きく、開くのにも要時間。むりくり当該シートを7-Zipで消しただけで何とか修復

255 :名無しさん@そうだ選挙にいこう:2023/10/24(火) 17:40:18.70 .net
>>252
意味がよく理解できないのだけど、
a.xlsx で開いたファイルから、a.txt のようなファイル名を生成したいってことかな

256 :名無しさん@そうだ選挙にいこう:2023/10/24(火) 17:47:17.57 .net
聞く人が馬鹿過ぎる

257 :名無しさん@そうだ選挙にいこう:2023/10/24(火) 19:18:56.51 .net
>>252
INDIRECT関数でファイルパスをこさえるのが一般的です。それならご存知かな
やはりOnline版特有の課題があるのだとしたら・・・申し訳ない

皆さん
>>254も、よろしくお願いしますw

258 :名無しさん@そうだ選挙にいこう:2023/10/24(火) 21:21:43.76 .net
ありがちなのは親フォルダを再圧縮してるやつ

259 :名無しさん@そうだ選挙にいこう:2023/10/25(水) 01:42:53.60 .net
>>258
やっちまったwww
ありがとうございます!

恥ずかしながらマトメです

■シートに関数埋めすぎてセルを消せない、シートを削除れないとき
ファイルを展開し、当該シート(xml)を削除する(番号が抜けてもよし)
再圧縮(同率は不問)にて再開すると修復され復活する
しかし修復の際、カーソル位置か表示位置なのか?消したシート(セル)の範囲だと整合性の問題で失敗する感じ→修復中に有効なシートに移動することで通過出来た
なお、再圧縮時にルートにフォルダを作らないこと。開くこともできませんw

260 :名無しさん@そうだ選挙にいこう:2023/10/25(水) 11:00:07.11 .net
セルに文字列で社名が入ってて
末尾に「Co.,Ltd.」が付いてる奴がけっこうある
だけど大文字小文字全角半角が入り乱れてる
これを「Co.,Ltd.」に関数で変換したい
SUBSTITUTEで全パターンネストは限界があるし
もっとスマートな方法はない?

261 :名無しさん@そうだ選挙にいこう:2023/10/25(水) 13:42:12.20 .net
とりあえず、全角を半角に、小文字を大文字に変換し置換するってのは

262 :名無しさん@そうだ選挙にいこう:2023/10/25(水) 14:17:38.03 .net
どうでしょ

=SUBSTITUTE(UPPER(ASC(A1)),"CO.,LTD.","Co.,Ltd.")

再圧縮をミスった私ですがw

263 :名無しさん@そうだ選挙にいこう:2023/10/25(水) 14:42:00.08 .net
実際はこんなもんですかね。ご査収ください

=MID(SUBSTITUTE(UPPER(ASC(A1)),"CO.,LTD.","Co.,Ltd."),1,FIND("Co.,Ltd.",SUBSTITUTE(UPPER(ASC(A1)),"CO.,LTD.","Co.,Ltd."))-1)&MID(SUBSTITUTE(UPPER(ASC(A1)),"CO.,LTD.","Co.,Ltd."),FIND("Co.,Ltd.",SUBSTITUTE(UPPER(ASC(A1)),"CO.,LTD.","Co.,Ltd.")),LEN(SUBSTITUTE(UPPER(ASC(A1)),"CO.,LTD.","Co.,Ltd.")))

264 :名無しさん@そうだ選挙にいこう:2023/10/25(水) 19:47:14.23 .net
>>245
無理だろう
アクセスできるフォルダに格納せえ

265 :名無しさん@そうだ選挙にいこう:2023/10/25(水) 20:17:09.67 .net
>>260
その分だとコンマやピリオドの位置も守られてないんだろ
素直にVBA使うか、csvに書き出してsedの正規表現で一気に置換した方が早い

ワークシート関数だけでやるのは難易度が高すぎる
UPPER関数とかASC関数とか使うと、手前の社名の方まで影響受けてしまうし

266 :名無しさん@そうだ選挙にいこう:2023/10/25(水) 21:22:25.36 .net
>>265
VBAって素直なの?
正規表現にしろコンマやピリオドの位置を探すんだし、アスキーファイルに書き出すとなると改行文字まで気にせなあかんよね?
コンマやピリオドが守られてないファイル相手。うーん
さらにExcelに戻すのも改行気になるよね。うーん

私のサンプルは無視なのwww
>>263

267 :名無しさん@そうだ選挙にいこう:2023/10/25(水) 21:43:48.46 .net
>>260

いまひとつの計算式じゃが以下はどうじゃろ?
txtに会社名一覧の配列、
txtaに変換前の文字列一覧配列
txtbに変換後の文字列
を入れる。

txtaの配列は左側が優先されるから、珍しい記載方法から順に並べるのが良い気がする。

LET(txt,A1:A10, txta,{"CO.,Ltd.","CO. ,Ltd.","Co.,Ltd."}, txtb," Co.,Ltd. ", r,ROWS(txt), c,COLUMNS(txta), txt2a,SUBSTITUTE(txt,txta,"★"),
x,TAKE(SCAN(0,EXPAND(LEN(txt2a)- LEN(SUBSTITUTE(txt2a,"★","")),r,c+1,-1), LAMBDA(i,x,IFS(i=1,0,x<>1,0,TRUE,1))),,c),
chgtxt,SUBSTITUTE(txt2a,"★",txtb), y,BYROW(IF(x=1,chgtxt,""),LAMBDA(x,TEXTJOIN("",TRUE,x))), IF(y<>"",y,txt))

268 :名無しさん@そうだ選挙にいこう:2023/10/25(水) 22:31:45.74 .net
>>265
VBAでやるとして
co.,ltd.の変形型かどうかの判断はどの様に?

269 :名無しさん@そうだ選挙にいこう:2023/10/25(水) 22:35:08.28 .net
>>267
これは高度すぎてわからない
明日会社で試します

270 :名無しさん@そうだ選挙にいこう:2023/10/25(水) 23:58:34.35 .net
質問させてください。
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2019
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 不可
Excel初心者です。
オートSUMで+2-2-4と計算をして合計を出すと、-4となります。マイナスの合計になる時はその合計の場所を0にして、0からマイナスにならないようにしたいのですが、どうやったらいいのでしょうか?よろしくお願いします。

271 :名無しさん@そうだ選挙にいこう:2023/10/26(木) 00:19:56.54 .net
>>270
追記です。
たくさんのマイナスの数字を計算に入れても合計値は0になり、その後の計算にプラスの数字が入ればプラスになる、みたいな感じにしたいです。
ちょっと分かりにくくてすみません。
よろしくお願いします。

272 :名無しさん@そうだ選挙にいこう:2023/10/26(木) 02:06:13.81 .net
>>268
ワークシート関数をネストしまくるよりは、複数条件の列挙や追加がずっと簡単にできるやろ
If文をどんどん並べればいいんだから

273 :名無しさん@そうだ選挙にいこう:2023/10/26(木) 02:09:37.88 .net
>>271
A1セル 2
A2セル -2
A3セル -4
みたいにセルが分かれてるなら、隣に合計を出す列を用意して
B1セル =A1
B2以下 =IF(B1+A2<0,0,B1+A2)

274 :名無しさん@そうだ選挙にいこう:2023/10/26(木) 04:24:10.01 .net
>>271
sumの替わりにsumif関数を使い、条件を0以上にする

275 :名無しさん@そうだ選挙にいこう:2023/10/26(木) 05:07:29.19 .net
=MAX(0,SUM(A1:A4))

276 :名無しさん@そうだ選挙にいこう:2023/10/26(木) 05:08:24.01 .net
>>271
+1 -1 -1 +1 の場合は1になるか2になるかどっち?
つまり、マイナスは無視するだけなのか、マイナスになったらそれまでの合計がリセットされるのか

277 :名無しさん@そうだ選挙にいこう:2023/10/26(木) 08:17:34.06 .net
>>269
なんかミスってる気がしてきた。
ちょっと再検討してみる。

278 :名無しさん@そうだ選挙にいこう:2023/10/26(木) 08:20:15.80 .net
>273>27>275
返信ありがとうございます。早速やってみます。
>276
そうです、この場合は1になります。

279 :名無しさん@そうだ選挙にいこう:2023/10/26(木) 10:08:44.61 .net
今更だが、Co.,Ltd. の件は置換じゃダメなのか 
質問書き込んで回答されたの読んで試して試行錯誤してる間に解決してる気がする
どんなイレギュラーな記述が有っても、ざっくり処理した後で再発見した部分だけ再度置換で済むような
問題は、今後も元データが次々投入されて、せっかく直したのがチャラに成ってしまう点のような
変則 Co.,Ltd. のバリエーションを別途リストアップしておくのも大事な気がする
変則のリストさえ出来てれば、どんな厄介が紛れ込んでも文字列一括置換で秒殺のはず

280 :名無しさん@そうだ選挙にいこう:2023/10/26(木) 10:14:56.28 .net
オートSUMなのにいっこずつチェックしながらマイナスを除外するのか?
>>276 なら0に成らなきゃいけないだろうに?
数値が入ってるセルの配列がどんなんか判らんが、最終行(または列)で一括オートSUMだと誤算するだろ
逐次計算でやるならオートSUMは使えない

281 :名無しさん@そうだ選挙にいこう:2023/10/26(木) 10:55:11.69 .net
>>278
できない事もないけど、具体的に範囲の番地わからないと適切なのを組めない
せめてデータが縦長(1列)か、横長(1行)かだけでもわからないと・・・

282 :名無しさん@そうだ選挙にいこう:2023/10/26(木) 11:42:00.07 .net
>>279
まあたった8文字だし、新パターンを見つけるたびに登録する方法で手動で全パターン列挙でも問題ないだろうね

283 :名無しさん@そうだ選挙にいこう:2023/10/26(木) 11:45:34.37 .net
俺ならまず =RIGHT(A1,8) で後半部分を抜き出してB列でソートして重複を削除して初期リストを作るな
変な場所にスペースが入ってりピリオドが抜けてたとしても、単純に重複削除だけでイレギュラーなパターンとしてすべてリストアップできてるから

284 :名無しさん@そうだ選挙にいこう:2023/10/26(木) 14:59:55.28 .net
クエリと接続で
フォルダからデータを取得
フォルダ内にはテンプレのエクセルブック
エディタで要らない列、行を外してテーブルを作った
そのテーブル隣の列にテキストを入れ込み、テーブルにサイズを変更し、テーブルを広げた
この状態でクエリを更新すると、追加した列が置き去りに、というかクエリの列に付随していかない。
クエリの接続の列の並べ替えを保持ってのはクエリにしか適応されないのか、無理だった。
更新してもズレない方法を 、誰か。。。

285 :名無しさん@そうだ選挙にいこう:2023/10/26(木) 15:00:20.82 .net
クエリと接続で
フォルダからデータを取得
フォルダ内にはテンプレのエクセルブック
エディタで要らない列、行を外してテーブルを作った
そのテーブル隣の列にテキストを入れ込み、テーブルにサイズを変更し、テーブルを広げた
この状態でクエリを更新すると、追加した列が置き去りに、というかクエリの列に付随していかない。
クエリの接続の列の並べ替えを保持ってのはクエリにしか適応されないのか、無理だった。
更新してもズレない方法を 、誰か。。。

286 :名無しさん@そうだ選挙にいこう:2023/10/26(木) 18:39:04.97 .net
>260 のCo.,Ltd.ですが

重複の削除は大文字小文字区別しないのでちょっとめんどくさいけど
なんとかリスト抽出したら
coとltdの間にスペースがあったりなかったり
coとltdの間の「.」「,」は全角と半角が混じってる「、」もある抜けてるのもある
ltdの後ろに.があったり全角だったりなかったり
なので抜けとか考えると文字数が不定でお手上げ

全パターンはスペースなしで1万通以上なので諦め
スペースありだと計算できない

なので正規表現で
[cCcC][oOoO][\..].{0,3}[lLlL][tTtT][dDdD][\..]?

co.の後ろ3文字の判定が手抜きだけど実績では不具合なさそう
どうしても関数でやりたいので
ネットで拾ってきたユーザー関数REGEXPを使う

=SUBSTITUTE(A2,REGEXP(A2,"[cCcC][oOoO][\..].{0,3}[lLlL][tTtT][dDdD][\..]?"),"Co.,Ltd.")

にした
もう疲れた

287 :名無しさん@そうだ選挙にいこう:2023/10/26(木) 19:20:14.09 .net
>>282
これだけの数を
5文字*(4種全半半大小)+3文字*2種全半ならに文字配置を列挙するの?
統計苦手だけどなんバターンなんだろ。これ手作業で作ったら検証がガバだよね、またちょんプロか
仕事柄・・・関数でできる範囲なのが全半大小だと考えれば諦めれる範囲なんちゃう
変換テーブル作り出したら(株)やら旧漢字やらなんでもかんでも変換するべきってなるのイヤやねw

288 :名無しさん@そうだ選挙にいこう:2023/10/26(木) 19:57:04.97 .net
お手伝いしたいけど
>>276

これが1or2なのが既に理解できない。0or2でないの?www

289 :名無しさん@そうだ選挙にいこう:2023/10/26(木) 21:15:02.02 .net
>>288
自分も?となったけど、順に足してその時点の数値で判断するということかと。
+1 -1 -1 +1
+1-1で0, 0-1で-1になるので0, 0+1で最終的に1かと。
vbaなら出来るけどワークシート関数では無理?
lambda関数で作り込めば出来るのかな。

290 :名無しさん@そうだ選挙にいこう:2023/10/26(木) 22:58:04.41 .net
>>289
なるほど。ありがとうですw

ならば>>273氏が良さそうですね

私は>>275氏のMAXをよく使うので

B1セル =A1
B2セル =MAX(B1+A2,0)
B3セル =MAX(B2+A3,0)
B4セル ~繰り返し~

291 :名無しさん@そうだ選挙にいこう:2023/10/27(金) 00:27:50.78 .net
windos10でExcel365を使ってるんですが、コメント機能がスレッド表示になりません。
メモと同じ表示になってしまうのですがスレッド表示にするにはどうすればいいでしょうか?

292 :名無しさん@そうだ選挙にいこう:2023/10/27(金) 00:43:52.57 .net
パワクの列分割で、数字/非数字の境目と非数字/数字の境目の両方で分割することはできますか?
同じ列にABC123と12ABがあったときに、ABC;12の列と12;ABの列に分割したい

293 :名無しさん@そうだ選挙にいこう:2023/10/27(金) 00:44:05.06 .net
パワクの列分割で、数字/非数字の境目と非数字/数字の境目の両方で分割することはできますか?
同じ列にABC123と12ABがあったときに、ABC;12の列と12;ABの列に分割したい

294 :名無しさん@そうだ選挙にいこう:2023/10/27(金) 00:50:03.97 .net
>>267

もうやり方を決めたみたいやが、ひとまず修正版をあげとく。多分なおってると思う。
ついでにひとつの変換前文字列が複数マッチングしてたら、Co.,Ltd.Co.,Ltd.のように2重変換とならないような対策も入れた。

LET(txt,A1:A10, txta,{"CO.,Ltd.","CO. ,Ltd.","Co.,Ltd."}, txtb," Co.,Ltd. ", r,ROWS(txt), c,COLUMNS(txta), txt2a,SUBSTITUTE(txt,txta,"★"),
x,EXPAND(LEN(txt2a)- LEN(SUBSTITUTE(txt2a,"★","")),r,c+1,-1),
y,SCAN(0,x,LAMBDA(i,x,IFS(x=-1,0,x=1,i+1,TRUE,i))),
z,HSTACK(TAKE(y,,-1),TAKE(y,,c)),
flg,TAKE(IF((z=0)*(y=1),1,0),,c),
chgtxt,SUBSTITUTE(txt2a,"★",txtb),
txtc,BYROW(IF(flg=1,chgtxt,""),LAMBDA(x,TEXTJOIN("",TRUE,x))),
IF(txtc<>"",txtc,txt))

295 :名無しさん@そうだ選挙にいこう:2023/10/27(金) 11:59:34.07 .net
MAPとREDUCEでもっとシンプルに書けないかな

296 :名無しさん@そうだ選挙にいこう:2023/10/27(金) 22:51:31.53 .net
内容から推測するに大体関数5個くらいでシンプルに書けると思う
あまり長い式を書くと1ヶ月後には本人すら改修困難になる

297 :名無しさん@そうだ選挙にいこう:2023/10/28(土) 09:52:59.79 .net
だいたい長い数式を組む事自体ヤバいのだが。

298 :名無しさん@そうだ選挙にいこう:2023/10/28(土) 10:36:15.07 .net
これぐらいで長い式なんかな?
この数倍の計算式はよく作るよ。
普通はメンテナンス性をよくするために、全然違う記載スタイルにするけど。

今回はそれをすっ飛ばして、かつ、計算式の吟味もサボってる感じやな。

299 :名無しさん@そうだ選挙にいこう:2023/10/28(土) 11:26:11.16 .net
その半分でも長い部類
その数倍の式をよく作るのはちょっと理解できない
原因が変数の名前がやたら長いからとか複雑な数学の公式を組み込んでるからとかならまだマシだけども

300 :名無しさん@そうだ選挙にいこう:2023/10/28(土) 11:47:02.77 .net
長くても、
> 全然違う記載スタイルに
して、可読性を確保してるんだろ?

301 :名無しさん@そうだ選挙にいこう:2023/10/28(土) 12:10:17.85 .net
今更だが、Co.,Ltd. に関してより正確な知見を
https://online.ecc.co.jp/column/inc/
企業の登記に関して会社名の英語表記は定款で決める、とある つまり、企業によりけりで自由だと
更にコンマは省略できるだの、様々があって当然の様子 統一する意義が薄い(気がする) 自己満?
対象企業の定款から抜き出した元データがあるやら、外国企業が前提やら

302 :名無しさん@そうだ選挙にいこう:2023/10/28(土) 13:04:02.35 .net
メンテナンス性だと思うけど
> 全然違う記載スタイルに
何と違うスタイルにするんだろう?

要求事項(仕様)に近い状態なら長短は気にならない。仕様と違えてまでも可読性は求めない


>>301
>英語では会社名の後ろに「Inc.」や「Co.,Ltd.」などの表記を記載します。
最後に表記するってしれっと書いてあるけど、決め事なのか通例なのか
汎用機の時代から考えれば全データ内に全半大小が混在してることも仕方ないと思う。1データで混在してるのは止めてほしいけどw

303 :名無しさん@そうだ選挙にいこう:2023/10/28(土) 14:05:54.15 .net
>>302
誰がお守りすんねん?

304 :名無しさん@そうだ選挙にいこう:2023/10/28(土) 14:22:35.02 .net
>>303
え?
未来予知できないから答えられない。永遠にお守りすることが出来ないことを前提にしないの?

305 :名無しさん@そうだ選挙にいこう:2023/10/28(土) 15:13:19.60 .net
昔は長い難解な数式が組めれば高度なExcelスキルがあると思われたからな。
のちに問題になって止めようって風潮になったはず。

306 :名無しさん@そうだ選挙にいこう:2023/10/28(土) 15:22:12.14 .net
>>305
どちらかというと、古ければ古いほど関数が少なくて長くなるしかなかったというのが正解。
IFERRORが無いだけでも1.5倍にはなるしな。

で、バージョン上がっていってるのに新しい関数を使わずに、昔の式を引きずって無駄に長い式を組む老害がいるもんだから、それが叩かれ、その流れで長い式時代忌み嫌われる傾向になっていった。
実際は、短いからと言って可読性が高いわけではないけどな。

365ならかなり見やすく短い式にできるんだから、世界全体が365になってほしい位だ。

307 :名無しさん@そうだ選挙にいこう:2023/10/28(土) 16:19:39.78 .net
古いバージョンだと入れ子制限厳しいからそういう意味では不正解

308 :名無しさん@そうだ選挙にいこう:2023/10/28(土) 16:26:34.40 .net
どこまで古いの出してくるんだw

309 :名無しさん@そうだ選挙にいこう:2023/10/28(土) 17:24:38.15 .net
どこまで古いの出してくるんだw

310 :名無しさん@そうだ選挙にいこう:2023/10/28(土) 17:24:58.64 .net
ごめんなさい

311 :名無しさん@そうだ選挙にいこう:2023/10/28(土) 17:58:04.35 .net
あんま引っ張る気が無いんやが、ヒント的なものだけあげとく。単に自分の考えや方針であって、一般的になりうるかは知らんが。

エクセル計算式は特に理由がないなら、1つのセルにのみ入力して、スピルを使いまくればことたりることが多い。計算式のメンテする時もそのセルをいじれば良いだけや。

1つのセル内で、複数の関数定義をして、それをセル内で利用できる。これができると知って、スタイルを変えた。今となっては癖はあるけど普通の言語に近い感じや。別にセルを分ける必要は無いし、定義した関数内でのローカル変数や、グローバル変数も使い分けできる。コメントも適時記載する。

計算式を複数セルに分割して使うのは、不揮発性関数の再計算しないことによる速度アップも目的になりうる。何を再計算対象とするのかってのは、かなり強力に機能する。エクセルの特性に合った計算を考慮できれば、資源の有効活用ができる。

といいつつ、実は自分もようやく一定のスタイルを構築できた段階に過ぎないし、今後の一般的な流れにあっているかもわからん。大幅な機能アップも予定されているし(Pythonのこと)、どうなることやら。

312 :名無しさん@そうだ選挙にいこう:2023/10/28(土) 21:41:58.49 .net
会社の事務では365だけど
現場では2004だからなるべく古い関数使ってる

313 :名無しさん@そうだ選挙にいこう:2023/10/29(日) 13:08:39.56 .net
↓に衝撃を受けてた。Pythonもすでにプレビュー版やし、私じゃもうダメかもw
>>295

>>303
当時読めるように書こうが世代交代が必要になれば手を入るべきだろうし
同じ結果だからと要求事項を曲解してまで短くとか意味あるんかなと思う
2023年現在でメンテナンス性を重視したら、MAPやREDUCEを使う方が良いとなるはずだけど・・・(VLOOKUPなんてX~使うでしょ?)
私自身のスキルをメンテナンスするのがやっとだよw

314 :名無しさん@そうだ選挙にいこう:2023/10/29(日) 14:58:28.72 .net
軽い?話題を振ってみる。

エクセルの機能強化がなされるに伴い、変数や関数名を日本語表記できる優位性はどんどん上昇していると感じる。

データ1、データ2
は使えるが、

dat1、dat2
は使えない。

でも、例えば汎用関数を作った時に、もし広く公開できるようにと考えた場合、前者だと計算式を読めん人口が多いので、やっぱローマ字のが良いのかなって思ってしまう。複雑な関数になればなるほど日本語表記したくなってくるが。

最近毛色は違うが、Shift-JISの日本語、および、多分中国語?のインプットがあって、文字がバケまくり?の環境に置かれてるので、やっぱ半角ローマ字は強いと考えてしまう。
コメントは日本語で許してねとは思うが。

皆さん何か考えていることなどあります?

315 :名無しさん@そうだ選挙にいこう:2023/10/29(日) 16:15:41.79 .net
私は古い人間なのでなかかな日本語にすることはできないです

関数名に日本語を利用した場合のデメリット
・ソート順が必ずしも読みのあいうえお順にならない(気持ち悪いw
・結局、並び順を意識すると日本語としてはおかしくなるから(ex. 月次決算、年次決算、月次予測→決済月次、決済年次、予測…
・エディタの「単語のみ」の範囲が違うイライラw(ex.重信メイ 「重信」と「メイ」でバラける。ジャニーk…
・正規表現で検索することが限りなく困難になる。アルファベットなら[A-Z,a-z]ですからね
・そもそも日本語だと技術的に縛ることが現実的に不可能(漢字はシナ文字にもありますからね
・日本語圏外スタッフが意外といるwwww

ExcelはカクカクシカジカでLenBが関数とVBAで違う仕様になってますからね。その変わり目を過ごしたのでなかなかw
関数名を日本語にせずjavadocのようにコメントにしっかり書きたいです
ビルトイン関数も英語ちゃいますからw

316 :名無しさん@そうだ選挙にいこう:2023/10/29(日) 17:07:18.79 .net
いちいち草生やさなきゃいいのに

317 :名無しさん@そうだ選挙にいこう:2023/10/30(月) 10:59:14.26 .net
いちいちwを草生や…って打たなくてもいいのにw

318 :名無しさん@そうだ選挙にいこう:2023/10/30(月) 18:00:32.40 .net
(笑)

319 :名無しさん@そうだ選挙にいこう:2023/10/30(月) 18:00:34.53 .net
(笑)

320 :名無しさん@そうだ選挙にいこう:2023/10/31(火) 11:04:33.79 .net
今日は質問はありません

321 :名無しさん@そうだ選挙にいこう:2023/10/31(火) 11:42:57.99 .net
>>306
ホントそう。ロータス123時から表計算やってる老害がドヤ顔で複雑で時代遅れな式組んでくるからね。
町内会の老害が作成したシートとか悲惨だわ

322 :名無しさん@そうだ選挙にいこう:2023/10/31(火) 12:30:33.66 .net
5chは老害の巣窟ですよ。
子供は他所で遊んだ方が良いですよ。

323 :名無しさん@そうだ選挙にいこう:2023/10/31(火) 15:10:45.33 .net
↓これに反応しないが老害は許せない世代は?
>>295

324 :名無しさん@そうだ選挙にいこう:2023/10/31(火) 23:05:43.57 .net
MS-DOS で Multiplan を使っていた俺が颯爽と通過

325 :名無しさん@そうだ選挙にいこう:2023/11/01(水) 07:50:24.39 .net
>>306
お前がライセンス無料配布すれば解決

326 :名無しさん@そうだ選挙にいこう:2023/11/01(水) 08:24:35.56 .net
例えば文字列の変換をPowerQuery使ってやろうとすると
こんな感じ。

エクセルの関数を使わずに文字列を一瞬で変換する方法【powerQuery】vs【RelaxTools】
https://bunkyudo.co.jp/word-replace-powerquery-relaxtools-t-h/

1文字ずつだけでなく語句もいける。
ただ、「111」を「222」に変換したいときに「1111」が「2221」になるので
少なくとも数値は列追加で
if [当該列] = 111 then 222 else [当該列]
とかやらなきゃならんけど。

明示的な変換テーブルに語句追加するメンテしてけばいいので、
感覚的にはわかりやすい。
半角カナの全角化や地名表記のブレなんかに使ってる。

327 :名無しさん@そうだ選挙にいこう:2023/11/01(水) 11:05:30.43 .net
>>325
読解力。野暮な解説

ライセンスがあるないで数式をどうするかではなく、ライセンスがあろうとも古い冗長的な関数を利用してしまうこと、または、それをする人のこと

を言いたいんだと思ふ。ライセンスで解決すると思ってくれてるならそれはそれで嬉しいですが

328 :名無しさん@そうだ選挙にいこう:2023/11/01(水) 11:05:46.69 .net
>>325
読解力。野暮な解説

ライセンスがあるないで数式をどうするかではなく、ライセンスがあろうとも古い冗長的な関数を利用してしまうこと、または、それをする人のこと

を言いたいんだと思ふ。ライセンスで解決すると思ってくれてるならそれはそれで嬉しいですが

329 :名無しさん@そうだ選挙にいこう:2023/11/01(水) 19:00:34.18 .net
>>327
オレの部署では古いエクセル現役なので
365もあるけど新しい関数は原則避ける

330 :名無しさん@そうだ選挙にいこう:2023/11/01(水) 19:39:11.57 .net
【1 OSの種類         .】 Windows11
【2 Excelのバージョン   】 Excel365
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

2つのシート、仮にαとβがあります
αとβには、それぞれA1からZ3000までのセルに値が入っています
別シートγを使用して、αとβを比較し、値の違うセルのみを見つけたいのですが
良い案はありますでしょうか?

最も簡単なやり方で言えば、γのA1からZ3000までEXACT(αn,βn)とすればよいのですが、それでは重くなってしまうので避けたいです。

規定上マクロの使用はできません。
パワークエリは使えます。
何卒お知恵をお貸しください。

331 :名無しさん@そうだ選挙にいこう:2023/11/01(水) 23:00:46.99 .net
AA1にA1&B1&C1&。。。。した奴を入れて
AA2にA1&B2&C2&。。。。した奴を入れて
AA列と3001行だけをEXACT

332 :名無しさん@そうだ選挙にいこう:2023/11/01(水) 23:03:22.12 .net
追加
A3001にA1&A2&A3&。。。。した奴を入れて
B3001にB1&B2&B3&。。。。した奴を入れて


AA列と3001行だけをEXACT

333 :名無しさん@そうだ選挙にいこう:2023/11/02(木) 07:01:32.21 .net
ありがとうございます。でもそれだと列ごとしか異なっていることが分からないですよね?
どこのセルが違っているのか、できるだけ軽くなるように一発で特定したいんです。
自分はある程度であれば分かるのですが、実際のファイルの使用者はExcelがほぼ分からない人なので、可能な限り視覚的に簡単に特定できる方法にしたいんです。
本当はマクロを使いたいのですが、先述した通り社内規定により不可です。

334 :名無しさん@そうだ選挙にいこう:2023/11/02(木) 08:01:29.17 .net
>>333
AA列の否と3001行の否の重なった所

335 :名無しさん@そうだ選挙にいこう:2023/11/02(木) 10:40:53.86 .net
ググってみればすぐ出て来る
https://www.excelspeedup.com/shi-tohikaku/
一画面に収まらない大きな表とかなら
https://www.excelspeedup.com/shi-tohikaku2/
小賢しい真似して新しめの関数使いたいとか以前に、旧来のシンプルな計算式とかでも容易に可能

336 :名無しさん@そうだ選挙にいこう:2023/11/02(木) 11:23:31.01 .net
厳格なEXACT関数と曖昧なイコール演算子はどちらが重いですか?

337 :名無しさん@そうだ選挙にいこう:2023/11/02(木) 11:41:41.10 .net
そんな基本中の基本、頻用中の頻用な話なのね・・・自分の読解力に不安を覚えてしまった
流石です>335さん

338 :名無しさん@そうだ選挙にいこう:2023/11/02(木) 11:52:06.22 .net
為念。ご存知なら申し訳ない

Aとaの比較、EXACTは偽ですが=やifだと真です

339 :名無しさん@そうだ選挙にいこう:2023/11/02(木) 11:55:22.13 .net
もひとつおまけに。ご存知なら申し訳ない

文字列セル9と数値セル9の比較、EXACTは偽ですが=やifだと真です

340 :名無しさん@そうだ選挙にいこう:2023/11/02(木) 16:10:04.68 .net
=IF(αn=βn,EXACT(αn,βn))

341 :名無しさん@そうだ選挙にいこう:2023/11/02(木) 20:00:41.83 .net
厳格なEXACT関数と曖昧なイコール演算子はどちらが重いですか?

342 :名無しさん@そうだ選挙にいこう:2023/11/02(木) 20:53:16.97 .net
50kgぐらいあるん?

343 :名無しさん@そうだ選挙にいこう:2023/11/02(木) 20:53:40.70 .net
3000行26列というデータから視覚的に探すというのもなんなので、値が異なるセルのアドレスを表示するものを組んでみた。処理が重いかどうかはわからない。
(TOCAL使ってるからExcel365かonlineしか動かない)

Sheet1,2にデータがあるとして、Sheet3のA1セルに
=TOCOL(IF(NOT(EXACT(Sheet1!A1:Z3000,Sheet2!A1:Z3000)),ADDRESS(ROW(Sheet1!A1:Z3000),COLUMN(Sheet1!A1:Z3000),4),""))

Sheet3のB1セルに
=FILTER(A1#,A1#<>"")
これでB列にスピルして表示される。

344 :名無しさん@そうだ選挙にいこう:2023/11/02(木) 21:11:43.26 .net
同じようなものを作ってみた。
ひとまずEXACTじゃなくてif版やけど。
詰めて表示するんで、大量に差がなければ一目瞭然やろ?
処理が高速だと思っているindexを使ってるので、重くないと思う。サクッと作ったんでイマイチかもしれんな。

=LET(a, Sheet1!A1:Z3000, b, Sheet2!A1:Z3000, r, ROWS(a), c, COLUMNS(a), mar, MAKEARRAY(r, c, LAMBDA(r,c, c)), mac, MAKEARRAY(r, c, LAMBDA(r,c, r)), eq, IF(a = b, 1, 0), eqmar, IF(eq = 0, mar, ""), eqmac, IF(eq = 0, mac, ""), tjeqmar, BYROW(eqmac, LAMBDA(x, TEXTJOIN("_", TRUE, x))), tjeqmac, BYROW(eqmar, LAMBDA(x, TEXTJOIN("_", TRUE, x))), tstjeqmar, TEXTSPLIT(TEXTJOIN("★", , tjeqmar), "_", "★", , , ""), tstjeqmac, TEXTSPLIT(TEXTJOIN("★", , tjeqmac), "_", "★", , , ""), qa, IF(tstjeqmar <> "", INDEX(a, tstjeqmar, tstjeqmac), ""), qb, IF(tstjeqmar <> "", INDEX(b, tstjeqmar, tstjeqmac), ""), q, IF(qa <> "", qa & " -> " & qb & " (" & tstjeqmar & "," & tstjeqmac & ")", ""), q)

345 :名無しさん@そうだ選挙にいこう:2023/11/02(木) 21:46:09.11 .net
>>343
344さんの関数をみてLET関数も使ってみた。これなら作業用の列も不要になる。

=LET(a,Sheet1!A1:Z3000, b,Sheet2!A1:Z3000, c,TOCOL(IF(NOT(EXACT(a,b)),ADDRESS(ROW(a),COLUMN(a),4),"")), FILTER(c,c<>"") )

LET関数の使い方がよくわかってなかったけど、なんとなく理解できた。LAMBDAも勉強しなければ。

346 :名無しさん@そうだ選挙にいこう:2023/11/02(木) 22:00:28.65 .net
そんなことよりEXACT関数とイコール演算子はどちらが重いの?

347 :名無しさん@そうだ選挙にいこう:2023/11/03(金) 01:00:25.18 .net
じゃあVBSで

348 :名無しさん@そうだ選挙にいこう:2023/11/03(金) 07:04:13.73 .net
>>344

ここで使ってるTEXTSPLITは、多量のデータが扱えん気がしてきた。
いつもは違う関数を使ってるが、サボってこれにした。
もし、要望があれば改良版を検討するか?

349 :名無しさん@そうだ選挙にいこう:2023/11/03(金) 14:12:40.93 .net
ねぇねぇEXACT関数とイコール演算子はどちらが重いの?

350 :名無しさん@そうだ選挙にいこう:2023/11/03(金) 14:18:29.33 .net
両方重い
適当にあしらってみる
自分で試せやガキ

351 :名無しさん@そうだ選挙にいこう:2023/11/03(金) 14:29:28.24 .net
>>350
自分で試すならこのスレは要らない
バカなの?

352 :名無しさん@そうだ選挙にいこう:2023/11/03(金) 17:46:31.71 .net
>>351
コノスレにお前は要らない
バカなの?

総レス数 1002
267 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
read.cgi ver.24052200