X



Excel総合相談所 156

0001名無しさん@そうだ選挙にいこう
垢版 |
2024/02/28(水) 14:46:32.64
【1 OSの種類         .】 Windows**
【2 Excelのバージョン   】 Excel**
【3 VBAが使えるか    .】 はい・いいえ
【4 VBAでの回答の可否】 可・否

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

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

※前スレ
Excel総合相談所 155
http://mevius.2ch.net/test/read.cgi/bsoft/1692436189/
0371名無しさん@そうだ選挙にいこう
垢版 |
2024/05/21(火) 19:37:55.08
馬鹿を甘やかすとロクなことにならない
0375名無しさん@そうだ選挙にいこう
垢版 |
2024/05/21(火) 22:39:27.47
よっぽど悲惨な人生を送ってる真っ只中なんだろう
他人に罵声浴びせたり貶したりすることでしか鬱憤を晴らせないような
人一倍かわいそうな人なんだなと、憐みの目で読み飛ばしてやるのが情けってもん
結構なベテランさんの様子だし、老い先短いだろうから
スルーし続けてれば人間誰しもに必ず訪れる「その日」が来てくれて平安に成るだろう
モノホンのバカが自分はバカでは無いと思ってるように、老害は自分は老害では無いと思ってるってこと
0377名無しさん@そうだ選挙にいこう
垢版 |
2024/05/22(水) 10:14:54.65
自分もそう思う。明確な回答できる人が回答すれば良いと思う。余計な茶々入れてくる奴いるから流れがおかしくなる。
0379 警備員[Lv.19]
垢版 |
2024/05/22(水) 20:23:04.35
【1 OSの種類         .】 Windows11
【2 Excelのバージョン   】 Excel365
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

日ごとの来客データを月ごとにcvaでまとめています
毎日来る客やたまに来る客など、来客回数は様々です
どの客が何人来たかカウントし、「客A ○回」「客B △回」のようにまとめたいです
最終的にそれを別シートに報告書形式でまとめたいのですがVBAではどのようなコードを書けばいいでしょうか
Excel内で済ませるのであればCOUNTIFでよいかと思いますが月により行数がかなり変わるのでどのように書けばよいか迷っています
0380名無しさん@そうだ選挙にいこう
垢版 |
2024/05/22(水) 20:40:04.31
cvaって何?俺が馬鹿なだけ?
それともCredit Valuation Adjustmentとか?
0382名無しさん@そうだ選挙にいこう
垢版 |
2024/05/22(水) 20:46:54.36
それならそもそもexcelの操作だけで集計できるだろ
それが嫌ならデータベースに入れてorder byしろ
power queryでもできるだろ
0383名無しさん@そうだ選挙にいこう
垢版 |
2024/05/22(水) 20:47:40.79
order byではなく、group byな
0384名無しさん@そうだ選挙にいこう
垢版 |
2024/05/22(水) 20:55:53.97
>>380
お前はバカだw
0386 警備員[Lv.20]
垢版 |
2024/05/22(水) 21:15:12.45
>>382
おっしゃる通りですが人数にして100人以上、件数だと500くらいいくのでちょっと面倒です
>>383様も併せて、group byの件はありがとうございます
ちょっと勉強してみます
0387名無しさん@そうだ選挙にいこう
垢版 |
2024/05/22(水) 22:17:43.00
>>386
教えられても調べようともせずに否定する馬鹿
人数なんて関係ないわ
0388名無しさん@そうだ選挙にいこう
垢版 |
2024/05/22(水) 22:24:20.10
>>379
集計したいデータのイメージがわからないので想像ですが、A列に客A、客B…と集計したいキーが入っているとして、A列を客先ごとに集計するとすればVBAではなく数式になりますが以下のような数式で集計可能かと

=LET(集計範囲,A:A,客先,UNIQUE(TOCOL(集計範囲,1)),HSTACK(客先,COUNTIFS(集計範囲,客先)))
0390名無しさん@そうだ選挙にいこう
垢版 |
2024/05/22(水) 22:37:13.77
ほんとスレの邪魔>>378,384
0391名無しさん@そうだ選挙にいこう
垢版 |
2024/05/22(水) 22:38:27.71
ほんとスレの邪魔>>387
0395名無しさん@そうだ選挙にいこう
垢版 |
2024/05/23(木) 07:54:36.19
>>388
ありがとうございます
説明が下手で申し訳ないです
ざっくり補足しますとA列に顧客名、B列に来訪日時、C列に相談項目が入ります
月内に何度も来られると同じ方が何行も並ぶわけですが、○○さんが何回、△△さんが何回こられたか表示したい感じです
ご教示の数式で一度動かしてみて勉強してみます
0398名無しさん@そうだ選挙にいこう
垢版 |
2024/05/23(木) 18:50:46.03
まさかとは思うけど小計でできることを知らない人なのかな
0400名無しさん@そうだ選挙にいこう
垢版 |
2024/05/24(金) 11:12:03.30
毎度ヒント混ぜた叩き繰り出してんのにィ
あのさ巷のキョウシツっつー守銭奴の巣窟じゃココのレベルはプロフェッショナルコースwネ申を邪険にすな
0405名無しさん@そうだ選挙にいこう
垢版 |
2024/05/27(月) 19:54:26.19
【1 OSの種類         .】Windows10
【2 Excelのバージョン   】 Excel365
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

質問がふたつあって、
1つめ
B~BZ列に項目
100行
こんな表を毎月作るんだけど前月シートと比較して違いが発生してる行のA列に○を入れたい
最初は比較作業シートを作って当月シートB1=先月シートB1みたいな数式入れてFALSEが発生した行だけA列に△入れる
当月シートのA列にそれを反映させようと思ったんだけどここの人ならもっとスマートにやる方法知ってそうだなと思って

2つめ同じ表のB列には進捗が%で入っている
その進捗状況によってC列以下の入力項目が増えていくんだけど20%ならCDE列、40%ならさらにFG列、50%なら…って入力項目に色を付けたい
これも一番上に進捗別必須入力項目またいな行作って%ごとに行作って○入れてそこが○なら色をつける条件付き書式を考えているんだけど
こっちももっと効率いい方法あるのかなと

説明下手で申し訳ない
アドバイス貰えれば助かります
0407名無しさん@そうだ選挙にいこう
垢版 |
2024/05/27(月) 21:17:50.83
最近のExcelって全部パワークリエになったのか
webクエリを久しぶりに使おうと思ったらなくて「webから」ってのしかなくて使いづらいわ
0410名無しさん@そうだ選挙にいこう
垢版 |
2024/05/28(火) 11:47:16.40
クラウド・ERPに頼らず経理の月次を多拠点で集めて分析するとか、
気象データや公的・私的統計、市場データといった、
容量が大きいもの(もはや死語のビッグデータ)を
商売に利用しているところかな
PowerQueryを利用しているのは
0413名無しさん@そうだ選挙にいこう
垢版 |
2024/05/29(水) 02:10:33.97
馬鹿の特徴

自分勝手な略語を使う
0417名無しさん@そうだ選挙にいこう
垢版 |
2024/05/29(水) 15:26:33.18
>>406
ありがとう
うまくいきました!
と言いたいところなんだけど別の問題が
2つの比較する表は日付列の順に並び替えているから日付を変えられたら全部差が発生してる形になってしまう
行そのものは番号に紐付けているから、前月シートと今月シートのC列の値が一致した行の差分をチェックする方法はないでしょうか
教えてもらった数式の範囲を変えればなんとかなるのかと試してたけどうまく行かず
何度も申し訳ない
0418名無しさん@そうだ選挙にいこう
垢版 |
2024/05/29(水) 21:05:38.93
>>417
ではこれで
=LET(a,前月!B1:BZ100,b,B1:BZ100,c,LAMBDA(x,y,LET(z,XLOOKUP(TAKE(y,1),INDEX(a,,2),a),IF(ROWS(y)=1,z,VSTACK(z,x(x,DROP(y,1)))))),IF(BYROW(c(c,INDEX(b,,2))=b,LAMBDA(d,AND(d))),"","○"))
0419名無しさん@そうだ選挙にいこう
垢版 |
2024/05/29(水) 21:27:03.34
こっちでもいけるのでお好きな方をお使いください
=LET(a,前月!B1:BZ100,b,B1:BZ100,c,SORT(HSTACK(SEQUENCE(ROWS(b)),b),3),DROP(SORT(HSTACK(TAKE(c,,1),IF(BYROW(SORT(a,2)=DROP(c,,1),LAMBDA(d,AND(d))),"","○"))),,1))
0421名無しさん@そうだ選挙にいこう
垢版 |
2024/05/30(木) 00:03:06.43
=LET(
a,BYROW(前月!B1:BZ100,LAMBDA(a,ARRAYTOTEXT(a,1))),
b,BYROW(当月!B1:BZ100,LAMBDA(a,ARRAYTOTEXT(a,1))),
XLOOKUP(b,a,IF(a=a,"違いなし"),"違いあり"))
0422名無しさん@そうだ選挙にいこう
垢版 |
2024/05/30(木) 00:38:33.24
おまいら一体何の仕事してるんだよその複雑な式とか。。
一般事務やっているけどそんな奇をてらった数式なんて見たことないぞ
0424名無しさん@そうだ選挙にいこう
垢版 |
2024/05/30(木) 13:55:23.69
LET、LAMBDA、スピル機能の実装以降は恐らくこういうプログラミングチックな数式がかけるのも意図した機能追加だと思うので使わなきゃ損と思ってる
VBAでしか実装できなかった処理の代替が数式できるようになったと捉えてる
0426名無しさん@そうだ選挙にいこう
垢版 |
2024/05/31(金) 20:53:41.91
>>419>>421
ありがとうございます
助かりました

関数の意味調べてたりしてふわっとした事は何となく分かったけど自分で使えと言われたら無理だなこれ…
0430名無しさん@そうだ選挙にいこう
垢版 |
2024/06/01(土) 17:17:44.40
Chatgpt 無料版が偉くなってるとのことなので、
デバッグ中のlambda バリバリ使った計算式と、
バグなおして、
を送信すると良き結果が出てくる。おもしろい。
0433名無しさん@そうだ選挙にいこう
垢版 |
2024/06/02(日) 08:35:28.78
猿や犬でも反省ポーズするぞ
0437名無しさん@そうだ選挙にいこう
垢版 |
2024/06/04(火) 13:15:31.39
onedriveに入っているexcelを更新中です。
ひとつのセルの中に例えば
遊ぶ+見る
という文字列があるとしてます。
+の前の「遊ぶ」という文字を「戦う」に修正しようとキーボードを入力すると、なぜか「tあたかう」と最初のtを押した時点で文字が確定されてしまいます。
どうも+が入っていることが原因なのですが、これを回避する方法はないでしょうか?
セル設定を文字列にしているのにですが、回避できません。
0439名無しさん@そうだ選挙にいこう
垢版 |
2024/06/04(火) 14:26:57.13
>>435
「出してきたりする」と書いたのは、
実は、ものによっては壊れたレコードのように、
角度を変えて質問しても、同じ内容を繰り返して強弁するだけのケースもあった。

どこぞの国の国会答弁を学習してしまったのかのように・・・
0441名無しさん@そうだ選挙にいこう
垢版 |
2024/06/05(水) 00:16:45.33
A2から下に文字列が入ってて
同じ物がB1から横に入ってる
A2とB1が同じ文字列
A3とC1が同じ文字列
みたいな
A3の文字列とB1の文字列比較して
連続して何文字が同じか数えて
その文字数をB3に表示
A4の文字列とB1の文字列比較して
連続して何文字が同じか数えて
その文字数をB4に表示したい
関数だと嬉しいけど
関数が無理ならVBAでユーザ関数で実現したい
文字列は先頭から一致とは限らない
0442名無しさん@そうだ選挙にいこう
垢版 |
2024/06/05(水) 01:09:20.07
文字列の長さは?
0445名無しさん@そうだ選挙にいこう
垢版 |
2024/06/05(水) 11:48:09.56
不定なのはわかってるけど長すぎると激重なので聞いた
0448名無しさん@そうだ選挙にいこう
垢版 |
2024/06/06(木) 12:31:49.83
=LET(a,A2:A4,b,TRANSPOSE(a),
MAP(IF(b=b,a&""),VSTACK(IF(a=a,b&"")),LAMBDA(a,b,
IF(EXACT(a,b),LEN(a),LET(
f,LAMBDA(f,x,y,z,IF(x>LEN(a),z,IF(x+y-1>LEN(a),f(f,x+1,z+1,z),IF(ISERROR(FIND(MID(a,x,y),b)),f(f,x+1,z+1,z),f(f,x,y+1,y))))),
f(f,1,1,0)
)))))
0449名無しさん@そうだ選挙にいこう
垢版 |
2024/06/06(木) 14:07:56.12
Microsoft365

最近だけど、 =EDATE("2024/6/6",1) というように文字列として日付を与えたらそのまま計算できるようになってたんだけど、これっていつから?

どこかに説明してるサイトある?できればMS公式で
昔の認識だと DATEVALUE で必ず変換しないといけなかったんだけど
0451名無しさん@そうだ選挙にいこう
垢版 |
2024/06/06(木) 20:21:35.28
【1 OSの種類         .】 Windows10  Mac
【2 Excelのバージョン   】 Excel2021 Excel2013
【3 VBAが使えるか    .】 なんとか
【4 VBAでの回答の可否】 なんと可

複数の列を列丸ごと記号を挟んで合体させたいです
A B C → A/B・C

合体はできますが、記号を入れて合体知るのが灯りません。
よろしくです。
0454名無しさん@そうだ選挙にいこう
垢版 |
2024/06/06(木) 20:41:03.85
=A1&"/"&B1&"・"&C1
0457名無しさん@そうだ選挙にいこう
垢版 |
2024/06/06(木) 21:42:10.39
スピルさせたいならA1の代わりにA:Aにすればいいだけ
スピルさせないならオートフィルするだけ

前提知識が欠けてるようだがここだと1から10まで教えられないから本とかで勉強した方がいい
0460名無しさん@そうだ選挙にいこう
垢版 |
2024/06/07(金) 00:58:18.94
>>450
よ~く読んだら公式の説明にもそれに該当する記述あるのね、言われてみないとそういう意味だとは気づかなかった

https://support.microsoft.com/ja-jp/office/datevalue-%E9%96%A2%E6%95%B0-df8b07d4-7761-4a93-bc33-b7471bbff252
> ほとんどの関数では、日付を表す文字列は自動的にシリアル値に変換されます。

この「ほとんど」ってのが曲者なんだろな
まず検索系の関数はちゃんと型変換しないと絶対引っかからないだろうし
0461名無しさん@そうだ選挙にいこう
垢版 |
2024/06/07(金) 01:20:48.31
>>457
押しながらリターンでした
久しぶりなんで想い出しました
サンクス
0462名無しさん@そうだ選挙にいこう
垢版 |
2024/06/07(金) 06:38:18.47
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 バージョン2308
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否
列を挿入した時に、関数のセルの参照がシフトしてくれません。参照をシフトしてくれるセルもあれば、シフトしてくれないセルもある感じです。
バグっぽい挙動ですが、前に戻って列挿入できないのは何かと不便で、簡単な解決策を教えていただけたく。
データや関数が入っているシートの範囲は、A1:FM8767です。
複雑な数式を入れていて他のシートのマスタも参照したりしています。

1 DD列に以下の関数
=LET(基本給, $CV6, 変化額, $DB6, IF($DC6=“”, “”, 基本給+変化額))
2 CL列に列を挿入する。
3 DD列の関数がシフトしてDE列へ。DE6セル以下の関数だが、DE7セルは以下になる。

・DE6セル
=LET(基本給, $CW6, 変化額, $DC6, IF($DD6=“”, “”, 基本給+変化額))

・DE7セル
=LET(基本給, $CW7, 変化額, $DB7, IF($DC7=“”, “”, 基本給+変化額))
0463名無しさん@そうだ選挙にいこう
垢版 |
2024/06/07(金) 07:57:23.76
リアルで過去にこういうケース相談受けたことあるけどその時は列挿入前から参照ズレ起きてた
0465名無しさん@そうだ選挙にいこう
垢版 |
2024/06/07(金) 09:51:29.61
vbaが使えるのなら、新しいブックから値、数式、書式を一から入れ直しをしたらどうだろう
0467名無しさん@そうだ選挙にいこう
垢版 |
2024/06/07(金) 14:55:11.89
>>465
ご回答ありがとうございます。
Web版のExcelに最適化機能があると知り試してみたところ解決しませんでした。
ただWeb版で列を追加したところ、問題なく追加できました。列を増やすのはちまちまWeb版でやっていきたいと思います。

それでも作業効率上問題ある時は、お教えいただいた解決策を実行したいと思います。chatGPTにざっとコード書かせてみて準備までしています。

ありがとうございます。
0469468
垢版 |
2024/06/07(金) 15:20:52.50
つうことで、早速Copilotに聞いてみた

Q1. ExcelのLET関数はテーブル内でも使えますか?

A1. はい、LET関数はExcelの計算式内で変数を定義して使用できる便利な関数です1。
テーブル内でも利用できますよ!この関数を使うと、計算式の中で繰り返し使用される値や一時的な中間結果を格納できます。
具体的には、数式内で名前を付けた値や計算結果を再利用できる点に注意してください2。
例えば、以下のように使えます:
 =LET(合計点,SUM(C4:F4),人数,COUNT(C4:F4),合計点/人数)
この式は、セルC4からセルF4までの「合計点」と「人数」を利用して「合計点/人数」の計算結果を求めるものです3。
便利な機能ですね!

Q2. ありがとうございます。
事例の「C4:F4」や「C4:F4」の部分が同じ行なら、テーブルの構造参照になっても良いのですね?

A2. はい、その通りです!「C4:F4」の部分が同じ行であれば、テーブルの構造参照として利用できます。
ExcelのLET関数は、セル範囲やセルの値を名前で参照することができるため、便利に活用できます。
お役に立てていただければ幸いです。

なんか回答がちょっとはしゃぎでハシゴ外されそうな気もするが、試してみるわ
レスを投稿する


ニューススポーツなんでも実況