Excel総合相談所 156
【1 OSの種類 .】 Windows**
【2 Excelのバージョン 】 Excel**
【3 VBAが使えるか .】 はい・いいえ
【4 VBAでの回答の可否】 可・否
注意事項
・情報を隠すために別の問題を設定するのはやめましょう。たいていの場合その問題は的外れな設定で、期待していたものからずれた回答が返ってきます。
スレッド作成は>>980がやります
※前スレ
Excel総合相談所 155
http://mevius.2ch.net/test/read.cgi/bsoft/1692436189/ >>369
助けられるなら助けてやれよ
助けられないなら引っ込んでろ 知恵袋も昔は良質問掲示板だったな。
このスレと同じでな 答えられるやつだけレスすればいいのよ
一番いらないのは叩くだけの無能 よっぽど悲惨な人生を送ってる真っ只中なんだろう
他人に罵声浴びせたり貶したりすることでしか鬱憤を晴らせないような
人一倍かわいそうな人なんだなと、憐みの目で読み飛ばしてやるのが情けってもん
結構なベテランさんの様子だし、老い先短いだろうから
スルーし続けてれば人間誰しもに必ず訪れる「その日」が来てくれて平安に成るだろう
モノホンのバカが自分はバカでは無いと思ってるように、老害は自分は老害では無いと思ってるってこと 誰かを叩いて憂さ晴らししてる自覚もなく
荒らしは自分は荒らしでは無いと思ってる 自分もそう思う。明確な回答できる人が回答すれば良いと思う。余計な茶々入れてくる奴いるから流れがおかしくなる。 【1 OSの種類 .】 Windows11
【2 Excelのバージョン 】 Excel365
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
日ごとの来客データを月ごとにcvaでまとめています
毎日来る客やたまに来る客など、来客回数は様々です
どの客が何人来たかカウントし、「客A ○回」「客B △回」のようにまとめたいです
最終的にそれを別シートに報告書形式でまとめたいのですがVBAではどのようなコードを書けばいいでしょうか
Excel内で済ませるのであればCOUNTIFでよいかと思いますが月により行数がかなり変わるのでどのように書けばよいか迷っています cvaって何?俺が馬鹿なだけ?
それともCredit Valuation Adjustmentとか? それならそもそもexcelの操作だけで集計できるだろ
それが嫌ならデータベースに入れてorder byしろ
power queryでもできるだろ >>382
おっしゃる通りですが人数にして100人以上、件数だと500くらいいくのでちょっと面倒です
>>383様も併せて、group byの件はありがとうございます
ちょっと勉強してみます >>386
教えられても調べようともせずに否定する馬鹿
人数なんて関係ないわ >>379
集計したいデータのイメージがわからないので想像ですが、A列に客A、客B…と集計したいキーが入っているとして、A列を客先ごとに集計するとすればVBAではなく数式になりますが以下のような数式で集計可能かと
=LET(集計範囲,A:A,客先,UNIQUE(TOCOL(集計範囲,1)),HSTACK(客先,COUNTIFS(集計範囲,客先))) >>387
こんなとこで強がって馬鹿呼ばわりする方がカッコ悪いぞ バカバカって人格否定してくる奴はいったいどういう育てられ方したんだ? 荒らしに構うのも荒らし
>>389-393も同類
bakaをngワードに入れて無視しとけ >>388
ありがとうございます
説明が下手で申し訳ないです
ざっくり補足しますとA列に顧客名、B列に来訪日時、C列に相談項目が入ります
月内に何度も来られると同じ方が何行も並ぶわけですが、○○さんが何回、△△さんが何回こられたか表示したい感じです
ご教示の数式で一度動かしてみて勉強してみます ここ、何か感じ悪いのでヤフー知恵袋で聞きますね。ごめんさい そもそもこんなことも自分で調べてできない奴に仕事をさせるなと まさかとは思うけど小計でできることを知らない人なのかな 毎度ヒント混ぜた叩き繰り出してんのにィ
あのさ巷のキョウシツっつー守銭奴の巣窟じゃココのレベルはプロフェッショナルコースwネ申を邪険にすな 守銭奴?適当な語句思いつかなくて悪かった
ググって出る答えでメシ食うのはどうかと思うぞ^^; 【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%なら…って入力項目に色を付けたい
これも一番上に進捗別必須入力項目またいな行作って%ごとに行作って○入れてそこが○なら色をつける条件付き書式を考えているんだけど
こっちももっと効率いい方法あるのかなと
説明下手で申し訳ない
アドバイス貰えれば助かります >>405
2つ目はあまりいい案が浮かばなかったので1つ目だけ
=IF(BYROW(前月!B1:BZ100=B1:BZ100,LAMBDA(a,AND(a))),"","○") 最近のExcelって全部パワークリエになったのか
webクエリを久しぶりに使おうと思ったらなくて「webから」ってのしかなくて使いづらいわ でも職場でpowerquery使ってる人見たこと無いな 職場によるのかな ウチは何人か講習会に行かされて?パワークエリをちょくちょく使い出している クラウド・ERPに頼らず経理の月次を多拠点で集めて分析するとか、
気象データや公的・私的統計、市場データといった、
容量が大きいもの(もはや死語のビッグデータ)を
商売に利用しているところかな
PowerQueryを利用しているのは パワクは書き込みが出来んじゃないか
やっぱ書き込みが出来るADOだろう >>412
PowerQueryの「入力」はテーブルか名前定義のセル >>406
ありがとう
うまくいきました!
と言いたいところなんだけど別の問題が
2つの比較する表は日付列の順に並び替えているから日付を変えられたら全部差が発生してる形になってしまう
行そのものは番号に紐付けているから、前月シートと今月シートのC列の値が一致した行の差分をチェックする方法はないでしょうか
教えてもらった数式の範囲を変えればなんとかなるのかと試してたけどうまく行かず
何度も申し訳ない >>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))),"","○")) こっちでもいけるのでお好きな方をお使いください
=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)) =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,"違いなし"),"違いあり")) おまいら一体何の仕事してるんだよその複雑な式とか。。
一般事務やっているけどそんな奇をてらった数式なんて見たことないぞ 他人が作った後処理の事を全く考えてないアホみたいな書式の定期的に送られてくるファイルのデータを処理するとき LET、LAMBDA、スピル機能の実装以降は恐らくこういうプログラミングチックな数式がかけるのも意図した機能追加だと思うので使わなきゃ損と思ってる
VBAでしか実装できなかった処理の代替が数式できるようになったと捉えてる 表を作成した奴の自尊心を破壊するのって楽しいからなw >>419>>421
ありがとうございます
助かりました
関数の意味調べてたりしてふわっとした事は何となく分かったけど自分で使えと言われたら無理だなこれ… 100book位のA列から○○を抜き出す関数書ける奴おる? Chatgpt 無料版が偉くなってるとのことなので、
デバッグ中のlambda バリバリ使った計算式と、
バグなおして、
を送信すると良き結果が出てくる。おもしろい。 コパイロットが間違えたときは怒ってやると謝るよ
精進しますとか言って反省もする 動物は反省ポーズを再現してるだけで反省はしない
AIも言葉だけ Copilotは「ダメだったよ?」っていうと、謝って別案出してきたりする。 onedriveに入っているexcelを更新中です。
ひとつのセルの中に例えば
遊ぶ+見る
という文字列があるとしてます。
+の前の「遊ぶ」という文字を「戦う」に修正しようとキーボードを入力すると、なぜか「tあたかう」と最初のtを押した時点で文字が確定されてしまいます。
どうも+が入っていることが原因なのですが、これを回避する方法はないでしょうか?
セル設定を文字列にしているのにですが、回避できません。 >>435
「出してきたりする」と書いたのは、
実は、ものによっては壊れたレコードのように、
角度を変えて質問しても、同じ内容を繰り返して強弁するだけのケースもあった。
どこぞの国の国会答弁を学習してしまったのかのように・・・ A2から下に文字列が入ってて
同じ物がB1から横に入ってる
A2とB1が同じ文字列
A3とC1が同じ文字列
みたいな
A3の文字列とB1の文字列比較して
連続して何文字が同じか数えて
その文字数をB3に表示
A4の文字列とB1の文字列比較して
連続して何文字が同じか数えて
その文字数をB4に表示したい
関数だと嬉しいけど
関数が無理ならVBAでユーザ関数で実現したい
文字列は先頭から一致とは限らない 不定なのはわかってるけど長すぎると激重なので聞いた 何でそんな表があるのかわからんが、
横を縦に変換した方が楽なんじゃないの? 2つの文字列比較して
何文字一致か調べるプログラムって
どんな感じ? =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)
))))) Microsoft365
最近だけど、 =EDATE("2024/6/6",1) というように文字列として日付を与えたらそのまま計算できるようになってたんだけど、これっていつから?
どこかに説明してるサイトある?できればMS公式で
昔の認識だと DATEVALUE で必ず変換しないといけなかったんだけど >>449
文字列が自動的にシリアル値に変換されるようになったのは、そんな最近のことじゃないと思う 【1 OSの種類 .】 Windows10 Mac
【2 Excelのバージョン 】 Excel2021 Excel2013
【3 VBAが使えるか .】 なんとか
【4 VBAでの回答の可否】 なんと可
複数の列を列丸ごと記号を挟んで合体させたいです
A B C → A/B・C
合体はできますが、記号を入れて合体知るのが灯りません。
よろしくです。 するのがわかりません です。
激しいタイプミス、スマソです。 >>453
複数行選択してセル接合の「横方向に結合」です。
>>454
サンクス
それだと特定の行だけになりませんか? スピルさせたいならA1の代わりにA:Aにすればいいだけ
スピルさせないならオートフィルするだけ
前提知識が欠けてるようだがここだと1から10まで教えられないから本とかで勉強した方がいい >>450
ありがとう
わりと昔なのか気づかなかったわ >>450
よ~く読んだら公式の説明にもそれに該当する記述あるのね、言われてみないとそういう意味だとは気づかなかった
https://support.microsoft.com/ja-jp/office/datevalue-%E9%96%A2%E6%95%B0-df8b07d4-7761-4a93-bc33-b7471bbff252
> ほとんどの関数では、日付を表す文字列は自動的にシリアル値に変換されます。
この「ほとんど」ってのが曲者なんだろな
まず検索系の関数はちゃんと型変換しないと絶対引っかからないだろうし >>457
押しながらリターンでした
久しぶりなんで想い出しました
サンクス 【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=“”, “”, 基本給+変化額)) リアルで過去にこういうケース相談受けたことあるけどその時は列挿入前から参照ズレ起きてた リアルで過去にこういうケース相談受けたことあるけどそいつは頭の悪い奴だったので答えず逃げた vbaが使えるのなら、新しいブックから値、数式、書式を一から入れ直しをしたらどうだろう >>465
ご回答ありがとうございます。
Web版のExcelに最適化機能があると知り試してみたところ解決しませんでした。
ただWeb版で列を追加したところ、問題なく追加できました。列を増やすのはちまちまWeb版でやっていきたいと思います。
それでも作業効率上問題ある時は、お教えいただいた解決策を実行したいと思います。chatGPTにざっとコード書かせてみて準備までしています。
ありがとうございます。 LET関数っていいな。
テーブル内でも使えるのかしら? つうことで、早速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関数は、セル範囲やセルの値を名前で参照することができるため、便利に活用できます。
お役に立てていただければ幸いです。
なんか回答がちょっとはしゃぎでハシゴ外されそうな気もするが、試してみるわ