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/

202 :名無しさん@そうだ選挙にいこう:2023/10/12(木) 20:48:17.46 .net
>>200です。
デスクトップアプリでは上手くいきましたが、Excel for the web では上手くいきません。
どうしたら良いでしょうか?
chatGPTに聞いたらそもそもfor the webではhyperlink関数で別シートに飛べないと言われてしまいました。そうなんでしょうか?

203 :名無しさん@そうだ選挙にいこう:2023/10/12(木) 21:49:06.06 .net
>>202です。
結局VBAで実装しました。これでいいです。

204 :名無しさん@そうだ選挙にいこう:2023/10/16(月) 12:27:05.99 .net
ん? VBAじゃなおさらExcel for the web上で動作しないんじゃ?
Office スクリプトとかいうのが利用できるようだけど、タスクの自動化程度の利用価値しか無いんだろ?
何をどうしたいとかが、とっ散らかってるのか
それとも、ものっそ裏技使って実装したとかなのか 事の顛末がわやだ 
「これでいいです。」には、こちら側はコケるしか応じようも無いな

205 :名無しさん@そうだ選挙にいこう:2023/10/16(月) 12:57:39.07 .net
お願いします!
40升ごとにある値の横に累計出したいです。

206 :名無しさん@そうだ選挙にいこう:2023/10/16(月) 15:45:11.71 .net
お願いいたします!
40セルおきにある値を隣の升に都度合計したいのですが

207 :名無しさん@そうだ選挙にいこう:2023/10/16(月) 16:13:26.82 .net
相変わらず馬鹿ばっか

208 :名無しさん@そうだ選挙にいこう:2023/10/16(月) 19:11:15.37 .net
意味が分からないけど、sumifで列数が40の倍数の値を足せばいいんじゃね?
範囲の頭を絶対参照、ケツを相対参照にすれば累計になるやろ

209 :名無しさん@そうだ選挙にいこう:2023/10/16(月) 19:12:19.14 .net
横ってことは行数か?
やることはほぼ同じだけど

210 :名無しさん@そうだ選挙にいこう:2023/10/16(月) 19:20:34.20 .net
>>206

考えてるのと合ってるかわからんが、以下はどうやろ?サクッと書いたんでイマイチな気もするが。
Lambda使えん環境なら他の方にまかせる。

=LET(a,A1:A1000, s,SEQUENCE(ROWS(a)), b,IF(MOD(s,40)=0,1,0), SCAN(0,a*b,LAMBDA(i,x,i+x)))

211 :名無しさん@そうだ選挙にいこう:2023/10/16(月) 20:26:25.24 .net
こんな事出来ますか?
A1セルに今日の日付
B1セルに『リンゴ』と入力
C列に365日の日付

A1セルの今日の日付とC列の日付の一致した(同日)セルの取得
そのセルの右横にB1セルの『リンゴ』を代入

vlookupは一致したセルの横の値を取得ですが、その逆の一致したセルの横に値を代入するみたいな感じって可能ですか?

212 :名無しさん@そうだ選挙にいこう:2023/10/16(月) 21:40:27.78 .net
すごい発想だね(いや、褒めてんじゃなくて)
二つのセルに入力したら、それに該当するセルまで飛んでその値を自動で代入しろってか
365日ってことは一年それを使い続けるわけで、当然それ一年で済む問題じゃ無くて
先々を想定してもそんな程度の仕組みで使い続けられる環境なんだろうか
VBAでなら可能です という答えしか出来んわ

213 :名無しさん@そうだ選挙にいこう:2023/10/17(火) 01:09:23.31 .net
>211
D列に=IF($C行番号=$A$1,$B$1,"")って入れりゃできるだろーが。

ただただナンセンスの極みだけどな。A1の日付変えるたびにD列の結果が変わるんだぞ。
どんな使い方だ?日付入力するごとにシート or ファイルを新しく作るのか?アホみたいにシートかファイルが増えるな。明らかにムダだ。
それとも入力した日付の行までわざわざスクロールしてD列のセルを値貼り付けか?それなら直接入力しろよって話だ。D列に数式と値(文字列)が混ざってミスのもとにもなる。

214 :名無しさん@そうだ選挙にいこう:2023/10/17(火) 12:26:48.30 .net
>>211
User I/Fの細部は置いといて、やりたいことは何となくわかるけど、一つ疑問が。
同じ日に、複数のアイテムがある場合はどう表示したいと思ってるんやろ?
横にどんどん伸ばすってことか?
とすると、横のリミットは付けるのか、付けないのかってところ。

215 :名無しさん@そうだ選挙にいこう:2023/10/18(水) 19:34:51.89 .net
>>204
こちらいろいろありまして、結局おっしゃる通りOfficeスクリプトで解決しました。

216 :名無しさん@そうだ選挙にいこう:2023/10/19(木) 08:41:37.83 .net
そもそもなんでそんな事やりたいのかと先に言わないと

217 :名無しさん@そうだ選挙にいこう:2023/10/19(木) 13:19:41.30 .net
VBAで実装しました → Officeスクリプトで解決しました この経緯がわがんね
誰しもどんな企業でもいろんな事情を加味しながら設定しなきゃならないのは世の常・人の常だが
関数だけで済んだってことか? Officeスクリプトの出番ねーじゃん?
ハイパーリンクでどんな操作を自動化するんだ? ま、当人に説明させるともっと混乱するかもだな

Officeスクリプトって、こんなに便利 って事例を羅列されたら食指も動くってもんだが

218 :名無しさん@そうだ選挙にいこう:2023/10/19(木) 14:15:38.86 .net
今の50代60代の人達がExcelてかなり無茶な事をやりすぎた弊害が引き継いだ部下に出てきてるらしいな。

219 :名無しさん@そうだ選挙にいこう:2023/10/19(木) 20:34:27.52 .net
くそ難しい仕事が来たのでヒントをください

内容は研修の振り分け

候補は1人に付き第5候補くらいまで取る

研修は上限もあるが下限もある
参加人数が少なすぎてはいけない

研修は午前の部と午後の部がある

1人に付き午前と午後両方受ける

この条件で出来るだけ簡単に振り分けたい
この際候補は厳密でなくていい
第1優先して振って後から微調整とかでもいい

220 :名無しさん@そうだ選挙にいこう:2023/10/19(木) 20:53:44.23 .net
請求書をデータベースみたいにつくる解説では
転記先に請求書ごとに1行というのが多いです
これだと去年の請求書の中で一番金額が高いのは何だったのか、などの検索ができないと思うのですが、
列に転記していくのでは駄目なのでしょうか?
横にやってるのを縦にするだけで
正規化的には何度も同じ請求書IDをもたせることになるので間違ってるのかもしれませんが
フィルタやソートなどができるようになると思うのですがどうなのでしょう

221 :名無しさん@そうだ選挙にいこう:2023/10/19(木) 20:54:14.75 .net
請求書をデータベースみたいにつくる解説では
転記先に請求書ごとに1行というのが多いです
これだと去年の請求書の中で一番金額が高いのは何だったのか、などの検索ができないと思うのですが、
列に転記していくのでは駄目なのでしょうか?
横にやってるのを縦にするだけで
正規化的には何度も同じ請求書IDをもたせることになるので間違ってるのかもしれませんが
フィルタやソートなどができるようになると思うのですがどうなのでしょう

222 :名無しさん@そうだ選挙にいこう:2023/10/19(木) 22:11:20.99 .net
馬鹿の考え休むに似たり

223 :名無しさん@そうだ選挙にいこう:2023/10/19(木) 22:14:58.39 .net
>>220
> 転記先に請求書ごとに1行というのが多いです
>これだと去年の請求書の中で一番金額が高いのは何だったのか、などの検索ができないと思うのですが、
普通に出来ると思う。何故出来ないと思ったの?
どんなデータか見せてもらわないと答えられない。

224 :名無しさん@そうだ選挙にいこう:2023/10/19(木) 23:07:57.14 .net
知恵袋より役に立たねえな

225 :名無しさん@そうだ選挙にいこう:2023/10/19(木) 23:10:31.42 .net
>>2

226 :名無しさん@そうだ選挙にいこう:2023/10/20(金) 08:43:09.10 .net
>>218
負の遺産は削除すべし
根性世代は後工程のことなんて考えてないから。

227 :名無しさん@そうだ選挙にいこう:2023/10/20(金) 11:47:43.05 .net
くそ難しい仕事 とか書いておきながら、どこがどうくそ難しいのか、こちらでは判断できない
 出来るだけ簡単に振り分け 候補は厳密でない 第1優先で振って後から微調整
これはくそ難しいんじゃなくて 単に面倒ってだけ コツコツ手作業でもサイコロ振ってでも
紙に氏名書いたのを放り投げて決めたって、どうとでも成りそう  泣き言にも程がある

請求書をデータベースみたいに作る解説  そのサイトとかを見せてもらえば判断付けやすい
なんか誤解している気がする 気がするだけだけど
フィルタやソートなどは、その元のデータベースに対してするもの 出力されたものは対象じゃ無い

228 :名無しさん@そうだ選挙にいこう:2023/10/20(金) 20:33:36.49 .net
教えてください。
エクセルで住所2地点から距離を算出する方法ありますか?

229 :名無しさん@そうだ選挙にいこう:2023/10/20(金) 21:44:32.32 .net
Google Map でやってください
直線距離なのか電車経路なのか自動車・自転車・徒歩 一口に距離と言っても様々です

ま、憎まれ口ばかり叩いていてもお客さん寄り付かなくなるだけなので、
https://wp.kobore.net/%E6%9C%AA%E5%88%86%E9%A1%9E/post-5634/  とか
https://zenn.dev/music_shio/articles/3c59e10842fcc7   とか
https://oshiete.goo.ne.jp/qa/12377892.html  これは教えて!gooとかでおんなじ質問
ググりもしないで質問してる? それともヨソの事例を持ち込んでるだけ?

>>219 のも、ちょっとググればすぐ出て来る
https://prau-pc.jp/excel/grouping/
まあ、こうやって必死こいてExcelで調整したとしても、実務上は「おれ、その日出張だからムリ」
だの「その二人は一緒にしちゃダメ」だの「納期忙しいのに研修なんか受けてられっか」だのだの
苦情のてんこ盛りが押し寄せるだけだろうけど
先ずは本人の希望を聞いて埋めて行って、フリーな連中を穴に押し込んでく ってのがよっぽど現実的

230 :名無しさん@そうだ選挙にいこう:2023/10/20(金) 23:01:28.06 .net
ありがとうございました。

231 :名無しさん@そうだ選挙にいこう:2023/10/20(金) 23:11:55.63 .net
馬鹿が質問するスレ

232 :名無しさん@そうだ選挙にいこう:2023/10/20(金) 23:33:45.15 .net
ありがとうございました。

233 :名無しさん@そうだ選挙にいこう:2023/10/21(土) 13:22:52.38 .net
>>231
君は天才なの?

234 :名無しさん@そうだ選挙にいこう:2023/10/21(土) 18:12:44.43 .net
馬鹿の反対語は天才じゃないらしいよ

235 :名無しさん@そうだ選挙にいこう:2023/10/21(土) 18:22:16.84 .net
5ちゃんてもともと専門家顔負けの凄腕が集まるサイトじゃなかったか?

236 :名無しさん@そうだ選挙にいこう:2023/10/21(土) 19:53:51.41 .net
運営のゴタゴタとシステムの改悪で快適じゃなくなったからとっくにいなくなってる

237 :名無しさん@そうだ選挙にいこう:2023/10/22(日) 02:34:44.01 .net
よろしくお願いします。
【1 OSの種類       .】 Windows10
【2 Excelのバージョン   】 Excel365
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】

シートのある列に、「電話:090-1234-5678」とか「No.03-1234-5678」などという文字列が入力れされています。
これを、数字だけのこして他を全部削ってたうえで頭にアポストロフィを付けるという状態にしたいです。
つまり「'09012345678」「'0312345678」のようにしたいです。

Sheet.cells(r,1) = ?????

というようにVBAで書きたいのですが、どうやればいいのかおしえてください。

238 :名無しさん@そうだ選挙にいこう:2023/10/22(日) 03:01:25.59 .net
こんなこともわからんでVBAが使えると自己紹介する馬鹿

239 :名無しさん@そうだ選挙にいこう:2023/10/22(日) 07:56:29.06 .net
性器表現でOK

240 :名無しさん@そうだ選挙にいこう:2023/10/22(日) 10:49:22.77 .net
Option Explicit

Function NUMBERCHARACTERONLY(source_string As String) As String
  Dim loop_counter As Integer
  Dim destination_string As String
  Dim work_character As String
  destination_string = "'"  '先頭のアポストロフィを先にセットしておく
  For loop_counter = 1 To Len(source_string)  'ループして1文字ずつ処理する
    work_character = Mid(source_string, loop_counter, 1)  '元の文字列から1文字切り出す
    Select Case work_character  '数字なら出力に追加していく
      Case "0", "0", "〇", "零"
         destination_string = destination_string & "0"
      Case "1", "1", "一", "①", "Ⅰ", "ⅰ", "壹", "壱", "弌"
         destination_string = destination_string & "1"
      Case "2", "2", "二", "②", "Ⅱ", "ⅱ", "弍", "弐", "貳", "貮"
         destination_string = destination_string & "2"
      Case "3", "3", "三", "③", "Ⅲ", "ⅲ", "参", "參"
         destination_string = destination_string & "3"
      Case "4", "4", "四", "④", "Ⅳ", "ⅳ", "泗", "肆"
         destination_string = destination_string & "4"

241 :名無しさん@そうだ選挙にいこう:2023/10/22(日) 10:49:49.69 .net
      Case "5", "5", "五", "⑤", "Ⅴ", "ⅴ", "伍"
         destination_string = destination_string & "5"
      Case "6", "6", "六", "⑥", "Ⅵ", "ⅵ", "陸"
         destination_string = destination_string & "6"
      Case "7", "7", "七", "⑦", "Ⅶ", "ⅶ", "漆", "質"
         destination_string = destination_string & "7"
      Case "8", "8", "八", "⑧", "Ⅷ", "ⅷ", "捌"
         destination_string = destination_string & "8"
      Case "9", "9", "九", "⑨", "Ⅸ", "ⅸ", "玖"
         destination_string = destination_string & "9"
    End Select
  Next loop_counter
  NUMBERCHARACTERONLY = destination_string  '結果を返す
End Function

242 :名無しさん@そうだ選挙にいこう:2023/10/22(日) 12:56:48.37 .net
先ずはググってみましょう
https://ponicom.net/flash-fill/
https://prau-pc.jp/excel/extract-numbers/#toc5
https://toushitsu-off8.com/excel-suuti-chuushutu/  たーくさん出てきます

243 :名無しさん@そうだ選挙にいこう:2023/10/22(日) 12:58:13.75 .net
文字列関数だけで数字を抜き出すのは、
こんなの使ってはいる。

エクセル関数でどんな文字列からでも数字だけを抽出できる方法!裏技
https://whiteleia.com/%E3%82%A8%E3%82%AF%E3%82%BB%E3%83%AB-%E9%96%A2%E6%95%B0-%E6%96%87%E5%AD%97%E5%88%97-%E6%95%B0%E5%AD%97-%E6%8A%BD%E5%87%BA/

244 :名無しさん@そうだ選挙にいこう:2023/10/22(日) 19:36:31.17 .net
OSの種類       .】 Windows10
【2 Excelのバージョン   】 OFFICE2019
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】
特定のセルを16進数2桁のみと受付としたいのですがどのようにすればよいですか?

245 :名無しさん@そうだ選挙にいこう:2023/10/23(月) 16:44:20.15 .net
【1 OSの種類         .】 Windows11,10
【2 Excelのバージョン   】 office365
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

PowerQuery で OneDriveやShrepointの中のファイルから引っ張って
自動更新の表を社内の皆さんが見られるフォルダに作りたいのですが
ソースファイルが管理職のみアクセス権限のあるフォルダにある時、
権限のない平社員さんにもそのExcelを開けて自動更新をかけられるようにしたいのですが、
なにか設定の方法があるのでしょうか?
よろしくお願いします。

246 :名無しさん@そうだ選挙にいこう:2023/10/23(月) 21:43:58.68 .net
次から次へと馬鹿が質問するスレ

247 :名無しさん@そうだ選挙にいこう:2023/10/23(月) 21:51:05.18 .net
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel365
【3 VBAが使えるか    .】 はい(VBAコードをコピペするぐらいしかできない)
【4 VBAでの回答の可否】 可

やりたいことは
1~10行はPS5
11~20行はPS4
21~30行はSwitch

みたいにソフトリストを作って随時更新
別シートにハードリストの表示非表示を選択表を作ってボタンを押せば非表示ハードの列は消える
こういう事なんだけど、

ソフトリストA列にハード名、B列にはVKOOKUP数式を自動で入れる方法はないですか
自分が使うわけじゃないから入力時AB列に空白が絶対生まれる
それをマクロでカバーしたい

行に名前の定義をして非表示も考えたんだけど、別シートの表示リストに書かれてる非表示対象の名前を選択する方法が見つけられなかった

248 :名無しさん@そうだ選挙にいこう:2023/10/23(月) 21:59:42.02 .net
>>246
君はオークション板に居るか?

249 :名無しさん@そうだ選挙にいこう:2023/10/23(月) 22:29:49.33 .net
Excel365って
本当に馬鹿ばっか

250 :名無しさん@そうだ選挙にいこう:2023/10/23(月) 23:09:37.06 .net
せっかくのFILTER関数が泣いてるよ

251 :名無しさん@そうだ選挙にいこう:2023/10/23(月) 23:32:09.22 .net
>>250
FILTER関数って抽出先のデータを書き換えれるわけじゃないから不便じゃない

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

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

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