Excel総合相談所 150
■ このスレッドは過去ログ倉庫に格納されています
【1 OSの種類 .】 Windows**
【2 Excelのバージョン 】 Excel**
【3 VBAが使えるか .】 はい・いいえ
【4 VBAでの回答の可否】 可・否
注意事項
・情報を隠すために別の問題を設定するのはやめましょう。たいていの場合その問題は的外れな設定で、期待していたものからずれた回答が返ってきます。
※前スレ
Excel総合相談所 148
https://mevius.5ch.net/test/read.cgi/bsoft/1643843984/
Excel総合相談所 149
https://mevius.5ch.net/test/read.cgi/bsoft/1647570025/ >>237
早速の返答ありがとうございます。
このやり方だとコード別でまとめて右側に結果表示だけされてしまう気がするのですが
個人的には元の重複したコードのあるリスト1番目の右側にどんどん列を足していくような形にしたいのですが
この方法でも結果的にそういう風に出来たりするのでしょうか? >>238
質問が少し判りにくかったかもしれないので
改めて写真のような形に一括変換できるかどうか
お聞きできればと思います。
https://i.imgur.com/KKRGqHG.png >>239
作業列可なら
1 idと重複数でキーを作るz2_3とか
2 二番目の表で一番目の表の一行下の範囲でキーを検索してデータ抽出
3 三番目の表は二行下の範囲で同様に抽出 縦10行、横x列のセルにそれぞれ数値が入力されています(xは任意の整数)。各行で最大値を抽出したいです。
=max(1:1)を下方向にオートフィルすればできると思いますが、スピルでやる方法があれば教えてください。
できればラムダは無しでお願いします。 >>239
COUNTIF関数でIDの登場回数をカウント
→countif($A$1:A1,A1) 等で下にフィルする
パワクエで登場回数2だけ右隣に抽出
パワクエで登場回数3だけ更に右隣に抽出
パワクエで(以下略)
Filter関数が使えればもっと楽なんだろうが >>241
できん事はないけど、lambda使わないと
10行分それぞれ指定するような、くそだっさい式になるよ
(計算は自動でいけるけど) ラムダまで使わないといけないのは、もはや実務の範疇を越えている作業だ。
やるべきではないと思う。 そんなの言い出したらVBAも同じだと思うけどな
最近の新関数は下手すりゃVBAよりすっきり書ける場合がある そもそもlamdbaを理解できる事務員が何人いるのだろう。。 詳しい方教えてください
下記条件をピックアップできる関数を探しています。
№ 種類 名前
1 八百屋 Aさん
2 魚屋 Bさん
3 肉屋 Aさん
Aさんが担当する「№」を関数で自動的に表示させたい
例えば上記表でAさんが担当する番号(1,3)をセルに表示させたいのです。
逆にBさんにすれば、番号2を表示できるととてもうれしいです >>249
=INDEX(FILTER(A1:C3,C1:C3="a"),,1) こんばんは。下記のことができないか相談させてください。
A列には市町村名が入力されており
B列には各市町村の名産品が入力されています。
そこでCセルにはA市○○と住所を入力するのですが
A市の住所が一部含まれているときには、DセルにはA市の名産品が表示されるようにはどうしたらいいでしょうか?
A列 B列 Cセル Dセル
A市 A市トマト 市町村の住所を入力 各住所が含まれた名産品が自動表示
B市 B市ナス (CセルにA市の住所がふくまれていればトマトが表示、B市ならナスが表示)
C市 C市キャベツ >>252
ご丁寧に本当にありがとうございました(´・ω・`) >>250さま
ありがとうございました。
後出しになって申し訳ございませんが私のExcelバージョンが2013であるため、
フィルターが使えないようでした。
代替の関数はあるでしょうか >>248
=LET(開始,【表の左上セル番地】,列数,COLUMNS(【どこでもいいので列数がわかる範囲】),CHOOSE(SEQUENCE(10),MAX(OFFSET(開始,0,0,1,列数)),MAX(OFFSET(開始,1,0,1,列数)),MAX(OFFSET(開始,2,0,1,列数)),〜以下略
もっといい方法あるかもしれないけども。 =CHOOSE(SEQUENCE(10),MAX(1:1),MAX(2:2),略,MAX(10:10)) 241です
あまり良いやり方が無いことが理解できました
ありがとうございました どうかよろしくお願いします
【1 OSの種類 .】 Windows*10
【2 Excelのバージョン 】 Excel2013
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
249 名前:名無しさん@そうだ選挙にいこう[] 投稿日:2022/07/14(木) 21:42:36.60
詳しい方教えてください
下記条件をピックアップできる関数を探しています。
№ 種類 名前
1 八百屋 Aさん
2 魚屋 Bさん
3 肉屋 Aさん
Aさんが担当する「№」を関数で自動的に表示させたい
例えば上記表でAさんが担当する番号(1,3)をセルに表示させたいのです。
逆にBさんにすれば、番号2を表示できるととてもうれしいです 日付+文字列のセルを作りたいのですが、
=TODAY()&"が今日の日付"
という風なセルを作ると、日付が44757になってしまいます。
https://i.imgur.com/Fvr9c8N.png
セルの書式設定はきちんと日付になっております。
https://i.imgur.com/EKA008S.png
=TODAY()だけならきちんと日付が表示されます。
解決法ないでしょうか?宜しくお願い致します。 >>260
+text(today(),"yyyymmdd")&"きょうのひづけ" >>261
ありがとうございます!
日付の間にアンダーバーを入れたいのですが、
yyyy_mm_dd
という風に入れるとアンダーバーが認識されず半角スペースになってしまいます。
そちらをyyyy_mm_ddとして出す方法ないでしょうか?(今日だと2022_07_16で出したい) >>263
言います!!!本当にありがとうございます! >>262
=TEXT(TODAY(),"yyyy!_mm!_ddが今日の日付") >>259
関数じゃないけどフィルター機能かテーブルで一発では >>259
D1 Aさん
D2 =IF(C2=$D$1,A2,"")
↓
=SUBSTITUTE(TRIM(CONCATENATE(D2," ",D3," ",D4))," ",",") 【1 OSの種類 .】 Windows10
【2 Excelのバージョン 】 Office365
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
ExcelVBAでOutlookメールを作っているのですが
本文1(リンクあり)
画像1
本文2(リンクあり)
画像2
本文3
のようなメールを作りたいです
Bodyの中に画像を入れる方法がわからなくて1行ずつ書きましたが
その方法だとリンクを入れる方法がわかりません
本文はExcelシートに書いてあってForで1行ずつBodyに加えていく
あるいはtype textで書いてます
本文は複数行あり、文字色を変えたり、太字にする必要もあります
今はA列に本文1や画像1やリンク1といったキーワード
B列に実際の本文を入れてます
Excel VBAのみで作りたいです
よろしくお願いします 下記の表がありまして、C列に住所を番地まで入力します。
その後にD列に青森県であれば青森県事務所と入力することになります。
そこでD列に関数をいれて都道府県名の一部が一致すれば自動的に
該当する○○県事務所にしたいと考えています。
C列に入力すると、A列の単語を検索し、B列の単語をD列に表示させたい感じです。
(青森県の住所が入力されれば青森県がヒットすれば、青森県事務所が選ばれる)
A列 B列 C列(住所を入力) D列(ここに関数をいれて自動表示させたい)
1 青森県 青森県事務所 青森県八戸市 青森県事務所
2 秋田県 秋田県事務所 岩手県盛岡市 岩手県事務所
3 岩手県 岩手県事務所 宮城県仙台市 宮城県事務所
4 宮城県 宮城県事務所 福島県郡山市 福島県事務所
5 福島県 福島県事務所 秋田県男鹿市 秋田県事務所
【1 OSの種類 .】 Windows*10
【2 Excelのバージョン 】 Excel2013
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否 市町村でなく都道府県なら
=IFERROR(INDEX(B:B,MATCH(LEFT(C1,3),A:A,0),INDEX(B:B,MATCH(LEFT(C1,4),A:A,0)) 【1 OSの種類 .】 Windows10
【2 Excelのバージョン 】 Excel2013
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
金種計算のようなことをしたいのですが、
実際の金種と違って割りたい数が(120,100,80,60)です。
A1セルに140と入力したら
80が1つと60が1つというような結果を求めたいのです。
しかし単純に除余算しようとすると、
最初に120で割ってしまうため120が1つで余り20となり、割れる数なしという結果になります。
綺麗に割り切れるようにこなすのは可能でしょうか? >>272
ご対応ありがとうございます。
一覧としては市町村名もありえるので、C列内の検索一致性を部分検索にできるでしょうか。
下記のように一致させたい単語がどの位置にあってもヒットさせるようにしたいです
○○○青森県○○○
青森県○○○○○○
○○○○○○青森県 >>273
一種のアルゴリズムが必要だからVBAが必須かな ありがとうございます。
テンプレでVBA否にしてましたが、
VBAで実装するとしたらどのようになるのでしょうか?
かなり難しいものでしょうか? VBAの知識よりアルゴリズムを作るのが先
例えばお前さんがやりたい事が全パターン網羅出来る計算式を組むにはどうしたらいいか紙と鉛筆を使って規則化するんだよ >>274
それは無理だと思う
仮にできたとしても「県」という単語で複数ヒットすることになる
他のやり方だったら作業列使えばやれんこともないが、A列の行数分の作業列が必要
Excel2021か365ならスピル使って作業列無しでいけそうなんだが >>273
VBAでも数式でもそんなに難しくはないけど、条件が足りない
たとえば160は「100+60」「80+80」など複数のパターンが見つかるが、どうやって1つを選ぶのか
正解がない場合、たとえば150は割り切れないけどどうするのか 「Libre Office Calc」のコピペ方法について教えて下さい。
「Libre Office Calc」をexcelの代わりに使っています。
1行から10行まで10個の文字列があったとします。
その場合、それ(10個の文字列)を貼り付けると、通常は、1行目がA1、2行目がA2、3行目がA3に貼り付けられると思います。
そうではなく、「2行」空いた状態で貼り付けたいのです。
1行目はA1、2行目はA4、3行目はA7、というふうにです。
「Libre Office Calc」はexcelより高性能なのでたぶんできる設定があるかと思うのですが、やり方が分かりません。
表計算ソフトに詳しい方、教えて頂けると幸いです。
よろしくお願い致します。 >>282
「excelより高性能」
いらん機能を付けてそう言ってるだけだよ
あんまりその手のしょーもない文言に騙されないように 【1 OSの種類 .】 Windows10
【2 Excelのバージョン 】 Excel for Microsoft 2019
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
あるエクセルファイルAを事務処理中に、開きたいxlsxファイルBのシートがあるがそのファイルを開けるまえに、BファイルのシートのリストをAのユーザーフォームにリスト表示させて、リストを選ぶと、Bのシートが開く。
ていうコードを書きたいのですが、アドバイスをお願いします。 リストがなにを表してるのかよく分からんなあ
リストを選んで開くシートが変わるんなら理解できるが ありがとうございます。
リストはこんなイメージです。
ユーザーフォームに表示された、シート名を選択(クリック)したら、そのシートが開きます。
どうでしょうか。。
ttp://officetanaka.net/excel/vba/tips/142-01.png
ttps://samurai-blog-media.s3.ap-northeast-1.amazonaws.com/blog/wp-content/uploads/2017/11/listbox03.jpg あ、すいません。
「リスト」とは、Bファイルにあるワークシート名のことです。 【1 OSの種類 .】 Windows10
【2 Excelのバージョン 】 Excel 2019
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
式の見方について教えてください
=if(c1>0,vlookup(c1,単価,2,true),"")という式において
別シートの単価を参照しているというのは分かったのですが、単価!という表記ではなく
単価となっています。また、式を選択して単価シートを開くと青い線で範囲が指定されています
この青い線を広げたいのですがどうすればいいのでしょうか?拙い説明で申し訳ありません >>289
思いついただけだけど、
Bブックのコメントプロパティにシート情報を記録して、これを閉じたままAブックから読み込んでユーザーフォームに反映させるのはどうかな?
参考
OfficeTANAKA ブックのドキュメントプロパティを操作する sumif関数で
=sumif(g1:g7m,$a$1,e1:e7)
ってな感じので a1に入るものを変えたいんですが、Bチーム 空白 * の3つを入れても
動作するにはどうすればいいですか?*はアスタリスクなので、Bチームだろうが空白だろうが
ヒットさせて=sum(e1:e7) と同じ処理をして欲しいってことです。 =SUMIF(G1:G7,IF(A1="*","<>",IF(A1="",0,A1)),E1:E7) >>295
すみません。やってみたのですが、本来は
=SUMIF(INDIRECT($G$1&$B7&":"&$G$1&$C7),$A$1,(INDIRECT(I$1&$B7&":"&I$1&$C7)))
って感じだったのですが、ややこしいのでindirect抜かして書いたのを書き直したら
=SUMIF(INDIRECT($G$1&$B7&":"&$G$1&$C7),IF($A$1="*","<>",IF($A$1="",0,)),(INDIRECT(I$1&$B7&":"&I$1&$C7)))
で動作せず長くてわけがわからなくなりました。
どこが悪いんですかね >>286
1.ファイルAを開いている
2.Bファイルのシートのリストを取得
3.Aのユーザーフォームにリスト表示させる
4.リストを選ぶと、Bのシートが開く。
2と3の間で、ユーザーフォームを開くと同時に、Bを開いてリストを取得する >>296
後出しでもくっそ面倒なのにインダイレクトとかセルになにか書いてあるか分からん 【1 OSの種類 .】 Windows10 64bit Pro
【2 Excelのバージョン 】 Excel2019
【3 VBAが使えるか .】 いいえ(やり方を見れば使えそう)
【4 VBAでの回答の可否】 可
現在、2つの列の行の値が一致してるかのチェックを行っているのですが、
行の一致を確認する方法で悩んでおります。
行列は以下のようになっており、チェックを行うのによい方法はありませんでしょうか?
シート1
商品番号,管理番号
000005,AA-0001
000006,CD-0002
000010,ND-0004
001000,AB-0010
100001,BC-0145
シート2
商品番号,管理番号
000005,AA-0001
000006,CD-0002
000007,AA-0003
000009,AA-0001
000010,ND-0004
001000,AB-0010
057410,KK-1044
100001,BC-0145
101100,AA-0001
102134,WQ-0123
のように、シート1では行が入っていなかった000006~10の間などに行が入っており、
単純比較のexact関数を使用しての比較ができませんでした。
また、管理番号は重複する場合があり、重複している管理番号を抽出する方法も検討しています。
Vlookupを使用し比較も検討したのですが、形にまとまりませんでした。
シート1,2の行単位の比較だけもよいので、何か良い案はありませんでしょうか?よろしくお願いします。 【1 OSの種類 .】 Windows10
【2 Excelのバージョン 】 Excel 2019
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
シートが20あって各シートのA1~B10セルに値が入っています
それを別のシートにてピボットテーブルで
各セルの平均値(A1ならシート1~20のA1セルの平均値)を取得したいのですがどうすれば良いでしょうか >>299
Sheet1のC2に書く
=vlookup(A2,Sheet2!A:B,2,0)=B2
一致していたらtrue,していなかったらfalseになる >>268
行数が多いため、下記の場合、D5、D6と作成していくのが非常に苦労します
関数上、簡潔にできないでしょうか
=SUBSTITUTE(TRIM(CONCATENATE(D2," ",D3," ",D4))," ",",") >>300
ピボット使わずに串刺し計算じゃダメなの? 教えてくださいな
セルの中で○○○が含まれている場合は何々するという関数を使っています、
ただ、そのセルの中が関数の場合は、○○○という内容ではないため関数を返すことができません。
関数の結果をもって関数で返すにはどうすればいいのでしょうか? >>304
多分勘違いをしている
中が関数かどうかは関係がない。基本的には関数の結果を参照する >>305
セルの中が1であった場合は、何々するという場合、
そこを参照しているセルが=2-1だとしても認証するということでしょうか? >>306
エクセルに認証なんて概念はない
おそらくあなたは、PCには強いけどエクセルは使い始めたばかりだと感じます
スクリーンショットなどをあげてくれれば解決できると思いますよ >>296
だいたいそんな難解な数式の時点で分からなくなるでしょ~ >>296
IF文が最後までコピーされてないだけだな 【1 OSの種類 .】 Windows10
【2 Excelのバージョン 】 Office365
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
Aのセルの行に以下の数値があるとします。
100の行を基準に何回切り下がっているかを求める関数を知りたいのですが
どのように関数で組めばよいでしょうか?
1:100 ※基準値(この行に関数をセット)
2:80 ※切り下がり1回目
3:60 ※切り下がり2回目
4:60 ※同値のため切り下がり2回目
5:30 ※切り下がり3回目
6:50 ※ここで切り上がっているのでセットした関数の値は3になる
7:20
8:80 >>311
作業列に差分を並べて正の数がいくつあるか数える
ただし0未満があったら計算打ち切り =LET(
a,MATCH(FALSE,A1:A7>=A2:A8,0),
b,FILTER(A1:A8,ROW(A1:A8)<=a),
ROWS(UNIQUE(b))-1) 一旦リセットとしてシートを全部表示にした後
いくつかのシートを非表示にするというマクロを
For Each ~nextで作ったんですがエラーが出て動きません
全部表示というループが終わったら次の作業へ以降するのはどう書けばいいんでしょうか >>311
=ROWS(UNIQUE(OFFSET(A1,0,0,XMATCH(TRUE,A2:A8>A1:A7))))-1 マクロのボタンを2つ作成しました
1つめはtxtデータを取り込むマクロのボタン
2つめは少し手で加工した後に、要らない部分を消去してCSVで吐き出すボタン
何故か2つめのボタンが1つめのボタンを押した後に消えてしまいます・・ 【1 OSの種類 .】 Windows10/11
【2 Excelのバージョン 】 Excel2016/365
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
windows(KB5015807)のセキュリティ更新プログラムアップデートがあってから
ブックを開く動作のマクロを含んでいると、保存不可やオートメーションエラーが発生します。
該当箇所のマクロを削除しても個体差があるようで、保存できるPCとできないPCがあります。
何か知っている方いましたら、知恵をお貸しください。 書き込むスレを間違えてしまいました。取り下げます。 そんな難解な数式ばっかであんたら何の仕事してるんだよ。。。 別に難解とかではない
ステップ毎に作業列へ数式を入れていけば簡単になる
それを作業列を使わずに一発の数式でやってるから難解に見える なぜ今日になって描画系のバグが発生した。
Excelファイルと使ってる、急にシートを切り替えたりセルを移動しても描画が止まったままになるバグ
セルの値は変わってるのだが描画だけが止まったままで見えない
なんなんだこのバグは
だれか似たようなバグ心当たりない? >>322
だよな。
自分の職場じゃ上のネスト多用は「組み合わせ一発芸」と呼ばれているわ。
必ず作業列を作る派と一発で計算する派に分かれてはいるけど。 >>323
ttps://forest.watch.impress.co.jp/docs/news/1426/109/amp.index.html
こっちはこれで直った >>326
もちろんofficeの更新もして最新にしたけど直らなかった
office365? >>327
2019だったかも。
出先なので確認出来ず申し訳ない >>329
いえいえ、報告ありがとうございます。
Twitterを見てもoffice365での報告が多いので、たぶん365ユーザーだけの可能性が高いです うちもマクロ含みExcelの描画が更新されなくて仕事が止まってる。
HB2019だけどこれは実質365なんでしたっけ。 元々入ってなかったTeams 入れて抜いたら治りました。お前か。 ネスト多用と作業列多用とユーザー定義関数ならどれが一番軽いの? ■ このスレッドは過去ログ倉庫に格納されています