■ このスレッドは過去ログ倉庫に格納されています
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/
- 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
- 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のこと)、どうなることやら。
総レス数 1002
267 KB
新着レスの表示
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver.24052200