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/
0178名無しさん@そうだ選挙にいこう
垢版 |
2024/04/15(月) 10:53:00.60
式を自分で分解してたとえば
={"A";"B"}
だけをセル入力して
どんな処理がされてるのかを理解して知識を深める学習作業が大事
0183名無しさん@そうだ選挙にいこう
垢版 |
2024/04/15(月) 12:58:20.39
は、配列数式っつーんですか はえー、勉強に成ります(2019でも使えるのがうれしい)
ただ、単純に配列数式だけでググってみても、大抵は数量×単価みたいなのばっかりだけど
このシフト単価計算だと、中かっこ使った配列?をみごとにまとめていて、使用する場面を具体的に想起できて
すばらしいケーススタディですね これなら他の場面でも似たケースにぶち当たった時に思い出して応用できる
覚えようという気にも成る このケースの単価に該当するものがいくつまで可能か試したく成ったりもする

いやあ、脊髄反射でバカだのしか書けない輩に比べたら雲泥の差 月とスッポン 下郎と天子様 さすがです
0185名無しさん@そうだ選挙にいこう
垢版 |
2024/04/15(月) 16:39:46.59
スピルいいな。
でも、2013しか持ってない。
古いPCだから新しいのは入れたくない。
しょうがない。
2016からつかえるんだな。
2013はスライサーのために必須だったけど、スピルはなくても何とかなるし。
0188名無しさん@そうだ選挙にいこう
垢版 |
2024/04/15(月) 23:24:17.21
>>183
単価を式内の組み込みじゃなくセル指定にすれば
単価が増えても式も延びないし単価もいくらでも増やせる

だが最後の行はいらん
無駄な火種を撒くな
0189名無しさん@そうだ選挙にいこう
垢版 |
2024/04/16(火) 02:36:15.64
今回の質問自体釣りだろ
ここしばらくそういうのばっか
0197名無しさん@そうだ選挙にいこう
垢版 |
2024/04/16(火) 20:26:46.82
機能的な相談とは違うがEXCELは今後勉強する意味はあるのだろうか?
自分はEXCELができる方ではないが、EXCELに長けることは会社にとって重宝される人材なんかな?
0198名無しさん@そうだ選挙にいこう
垢版 |
2024/04/16(火) 20:29:45.44
>>197
Excelに長けることで重宝はされない(これ直してみたいなPCの大先生扱いで雑務は増える)けど、Excelでの事務仕事を効率良く終わらせて他の仕事に時間使ったうえで成果出せば重宝されるんじゃないかな
あくまでExcelはただの道具
0202名無しさん@そうだ選挙にいこう
垢版 |
2024/04/16(火) 21:46:57.93
間違っても人に渡すエクセルでスピルなんて使っちゃダメ
Aの数を集計する列
Bの数を集計する列
Aの集計に単価を掛ける列
Bの集計に単価を掛ける列
合計
くらいやっとかないと絶対あとからメンテさせられる
0204名無しさん@そうだ選挙にいこう
垢版 |
2024/04/16(火) 22:06:13.45
>>202
スピルを使えばメンテはしづらくなるかもしれないが、元々先生が作ったワークセルに数式ふんだんに入力したEXCELなんて決まったセルに入力させる前提で展開してるからスピルを使ったところで作った本人しかメンテできないことには変わりない
0205名無しさん@そうだ選挙にいこう
垢版 |
2024/04/16(火) 22:12:18.34
逆に早くスピル使った数式入力が普通になって欲しいけどな
行列挿入で数式壊したりしないし計算速度もスピーディだしな
0209名無しさん@そうだ選挙にいこう
垢版 |
2024/04/17(水) 00:24:28.17
チャットgptに頼めば旧関数をスピルに変換やその逆も教えてくれるんじゃね
0211名無しさん@そうだ選挙にいこう
垢版 |
2024/04/17(水) 01:44:34.48
メンテ依頼来てもパパッと治せるスピル式が最強
0212名無しさん@そうだ選挙にいこう
垢版 |
2024/04/17(水) 04:52:50.62
請求書なんかのレイアウトで横に並んでる商品名や金額の行の高さが、
商品名の長さによって2段以上になってしまつのはよくない?
商品名省略してでも1行な気がしています
0216名無しさん@そうだ選挙にいこう
垢版 |
2024/04/17(水) 17:33:20.46
スピルに慣れると、以下の感じにしたくなる。
賛同する方ってここにおるんかな?と思って、今更感バリバリやが、あげてみた。

スピルに対する考えは、人それぞれで良いと思うが、自分はレガシーには戻れん感じや。

=LET(日給情報,B1:C1,勤務データ,B4:H6,
日給情報整理,TEXTSPLIT(TEXTJOIN("⭐︎",TRUE,日給情報),":","⭐︎",,,""),
日給情報_ランク,INDEX(日給情報整理,,1),
日給情報_日給,INDEX(日給情報整理,,2),
日給,XLOOKUP(勤務データ,日給情報_ランク,日給情報_日給,0)+0,
給与,BYROW(日給,LAMBDA(a,SUM(a))),
給与)
0219名無しさん@そうだ選挙にいこう
垢版 |
2024/04/18(木) 00:23:27.45
ワークシートの構成を治さずに関数書けちゃうのが寧ろ365のデメリットだな
ワークシートを治せば明快な式になるのにねー
216も160も煩雑すぎ
0220名無しさん@そうだ選挙にいこう
垢版 |
2024/04/18(木) 07:22:42.82
>>214
とはいえ入らないからなあ

請求書なんかの羅列されてるので等間隔(商品名により欄の太さが変わる)じゃないのは最悪だ、とネットに書いてあったのできになってます。コンビニレシートも省略だし、まあ相手も省略でもわかるだろうし問い合わせられたらすぐ答えられるから省略でいってみます

ちなみに、両面印刷はどう思いますか?
スマホの明細なんかは両面ですが
一般的には片面でしょうか?
ページと請求書番号書いてホチキスはつかわず郵送してます
0221名無しさん@そうだ選挙にいこう
垢版 |
2024/04/18(木) 08:10:09.48
>>220
勝手なことしてないで上司に確認しろ
無駄な仕事を増やそうとするな(聞かれたら答える、の部分)
ネットの感想なんか参考にするな、そもそも掲示板なんかで聞くな
0223名無しさん@そうだ選挙にいこう
垢版 |
2024/04/18(木) 08:26:34.04
どんなご商売なさっていらっしゃるか存じ上げませんが、別途納品書はあるのでしょうか?
納品書兼請求書でまとめていらっしゃるのでしょうか?
納品書があるなら納品書番号併記で省略は可能かと思われます。
納品書兼請求書で送られる場合はなるべく全文のがいいように思います。問い合わせなどの二度手間を省く意味でも。
コンビニレシートやスマホ明細と比較なさっていらっしゃいますが、それらは商売向けとは別物と捉えられた
ほうがいいように思われます。個人向けサービスの一環としての請求・領収に過ぎませんので。

とは言え、古い世代のムダな慣習から脱皮して、より効率的よりスマートより便利な手順として確立できるなら
新世代の方々には受け入れられ広まるかも知れませんので、自分なりに考察した方法で提出していくのも
ひとつの手立てかも知れません。ネットの情報は、ネットに載った時点ですでに古いものなのですから。
どうやら決定権者のご様子ですので、旧世代との違いを見せ付けて新世代・Zの時代を構築していく先駆者と
成るべく日々邁進されることを陰ながら応援させていただきます。 かしこ
0224名無しさん@そうだ選挙にいこう
垢版 |
2024/04/18(木) 11:47:36.67
項目が長くて入らないなら、最初から全体の枠を大きくしとくかフォントを小さくすればいいだけだし、後半を切りたきゃ切ればいい
てか、社長ならこれぐらいのこと自分で決めろよ
0225名無しさん@そうだ選挙にいこう
垢版 |
2024/04/18(木) 12:25:02.49
注文によって内容の差が大きく、数行にわたる説明が必要になるなら、無理に省略すると内容がわからなくなって相手方の経理担当者が発注者や212に問い合わせる手間が生まれるし
逆に会社名だけで内容は自明(単発ではなく毎月の取引が中心だったり、◯◯鮮魚みたいなわかりやすい社名)で、何十項目も並ぶような請求書でちょっとはみだすこともあるという程度なら、多少省略したり「縮小して全体を表示する」で文字を小さくしたほうが人間にもOCRにも読みやすいだろうし
会社によるんじゃない?

両面印刷は、相手方の領収書整理のスタイルによっては微妙にスキャンが面倒になるので、あんまりよくない
スマホ請求とかは1ページ目の表に合計額があるからそれ以降の明細はオマケだし、しっかり電子帳簿保存してる会社なら最初から紙じゃなくてデータで受け取るからこっちがメイン
0226名無しさん@そうだ選挙にいこう
垢版 |
2024/04/19(金) 21:53:37.37
【1 OSの種類         .】 Windows 11
【2 Excelのバージョン   】 Excel 365
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

行数
  A     B    C
1 日付    担当者 担当地域
2 2024/04/19 山田  東京都
3
4 取引先   取引先担当  住所
5 ○○会社  田中     東京都~

こんな感じで項目行・項目内容・空行の繰り返しの表ですらないブックが取引先の数だけあるんだけど
A列=項目名
B列=項目内容
に変換するのに一番効率いいやり方ってなんだろう
地道に別シートでイコールで引っ張っていくのが早いのかな
0229名無しさん@そうだ選挙にいこう
垢版 |
2024/04/20(土) 03:03:52.06
web版だと書式で日付にしているところにはカレンダーがでるんですが、365だとでない
昔はカレンダーでてたのになんでweb版だけ残ってるんでしょうか?
便利だから使いたいんですよね
0231名無しさん@そうだ選挙にいこう
垢版 |
2024/04/20(土) 11:13:06.21
項目が順番に並んでなかったのでやり直し
=LET(a,A1:C5,b,2,r,LAMBDA(x,y,IF(COLUMNS(y)=b,y,VSTACK(TAKE(y,,b),x(x,DROP(y,,b))))),r(r,WRAPCOLS(TOCOL(a,1),COLUMNS(a))))
0234名無しさん@そうだ選挙にいこう
垢版 |
2024/04/21(日) 02:40:29.98
>>226
取引先の数だけブックがあるんでしょ?
肝心の「1ブックづつ式をコピペする作業」を改善しなきゃ
0237名無しさん@そうだ選挙にいこう
垢版 |
2024/04/21(日) 11:18:01.02
>>234
A1:C5の部分をVSTACK(A1:C5,別ブック@!$A$1:$C$5,別ブックA!$A$1:$C$5…)みたいな感じでVSTACKで繋げていけばよいかと
VB組んだ方がラクかもしれないけど専門じゃないから他に良いやり方あったら提案してあげてみては?

>>235
どこが間違っているか教えて?見直すから
0239名無しさん@そうだ選挙にいこう
垢版 |
2024/04/21(日) 15:35:33.09
ExcelのVBAマクロを使用して、ご希望の操作を行うことができます。以下のマクロは、複数のブックに対してSheet2を挿入し、Sheet1の指定された範囲の値を転置してSheet2に転記する処理を行います。
Sub 転記マクロ()
Dim ws As Worksheet
Dim wb As Workbook
Dim arrBooks As Variant
Dim i As Integer

' ここに処理したいブックのパスを列挙してください
arrBooks = Array("C:\Book1.xlsx", "C:\Book2.xlsx", "C:\Book3.xlsx")

For i = LBound(arrBooks) To UBound(arrBooks)
Set wb = Workbooks.Open(arrBooks(i))
Set ws = wb.Sheets.Add(After:=wb.Sheets(1))
ws.Name = "Sheet2"

' Sheet1のA1:C1の値を転置してSheet2のA1:A3に転記
ws.Range("A1:A3").Value = Application.Transpose(wb.Sheets("Sheet1").Range("A1:C1").Value)

' Sheet1のA2:C2の値を転置してSheet2のB1:B3に転記
ws.Range("B1:B3").Value = Application.Transpose(wb.Sheets("Sheet1").Range("A2:C2").Value)

' Sheet1のA4:C4の値を転置してSheet2のA4:A6に転記
ws.Range("A4:A6").Value = Application.Transpose(wb.Sheets("Sheet1").Range("A4:C4").Value)

' Sheet1のA5:C5の値を転置してSheet2のB4:B6に転記
ws.Range("B4:B6").Value = Application.Transpose(wb.Sheets("Sheet1").Range("A5:C5").Value)

wb.Close SaveChanges:=True
Next i
End Sub

このマクロをExcelのVBAエディタに貼り付け、必要なブックのパスを配列に設定して実行してください。各ブックが開かれ、指定された操作が行われた後、自動的に保存されます。マクロを実行する前に、マクロが有効になっていることを確認し、実行する前には必ずバックアップを取ることをお勧めします。また、実際のファイルパスに応じて、arrBooks 配列内のパスを適宜変更してください。
0243名無しさん@そうだ選挙にいこう
垢版 |
2024/04/22(月) 21:17:07.07
【1 OSの種類         .】 Windows 11
【2 Excelのバージョン   】 Excel 365
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 関数で可能なら

VSTACKやEXPANDなどの新しい関数を自分なりに調べながら試してます。

A1セル:"前月"
D1セル:"当月"

  F
3 前月
4 当月
5 前月
6 当月
7 前月
  ・
  ・
  ・

と任意の回数、交互に繰り返して配列として入力したいとき、F3セルに入れる数式でこれを実現できるでしょうか?
非効率なことをやろうとしてることは承知の上で、関数でどこまでのことができるのか知識として学ぼうとしています。
お知恵をお借りできればと思います。よろしくお願いします。
0244名無しさん@そうだ選挙にいこう
垢版 |
2024/04/22(月) 22:04:11.27
>>243
ご参考程度に
=CHOOSE(MOD(SEQUENCE(任意回数),2)+1,D1,A1)
 or
=MAKEARRAY(任意回数,,LAMBDA(a,b,IF(MOD(a,2),A1,D1)))
 → 前月、当月をそれぞれ任意回数分繰り返し

=LET(a,任意回数,b,VSTACK(A1,D1),r,LAMBDA(x,y,IF(y<=1,b,VSTACK(b,x(x,y-1)))),r(r,a))
 → 前月、当月を2つ1セットで任意回数分繰り返し
0246名無しさん@そうだ選挙にいこう
垢版 |
2024/04/22(月) 23:38:43.96
また釣りか
0247名無しさん@そうだ選挙にいこう
垢版 |
2024/04/23(火) 01:07:31.39
下記条件を満たす式書ける人いる?
関数5つ以上使用不可
繰り返し回数以外の数値や四則演算は使用不可
使用可能な参照はA1、D1を各1回のみ
0249名無しさん@そうだ選挙にいこう
垢版 |
2024/04/23(火) 06:23:00.84
それ任意回数1000とかなったら使えんやろ
0250名無しさん@そうだ選挙にいこう
垢版 |
2024/04/23(火) 07:19:23.76
MS635
最近、起動時に「遅いブックですか?.....」[パフォーマンスの確認]ボタンが出るのですが
[すべてを最適化]ボタンを実行してもよいのでしょうか?
0253名無しさん@そうだ選挙にいこう
垢版 |
2024/04/23(火) 12:25:26.93
>244-245
ありがとうございます。いずれの数式も希望通りの結果が得られました。
シンプルなものから中身を確認していき、今後に活用していきます。

あえて複雑なように、連続してない独立した複数セルの繰り返しのパターンで質問させてもらいましたが、
単純な1列の同じ配列を任意の回数繰り返すパターンも、数式で表そうとすると難しくなるでしょうか・・・?
いただいた回答をもとに、B1:B4の範囲に繰り返したい文字列があったとして、
下記の数式で期待どおりの結果は得られたんですが、もしもっとスマートな式があればアドバイスをお願いします。
=CHOOSE(MOD(SEQUENCE(繰返回数)+3,4)+1,B1,B2,B3,B4)
0254名無しさん@そうだ選挙にいこう
垢版 |
2024/04/23(火) 14:24:39.57
MSのCopilotにDax関数の質問をしたら、間違いを数回やってそのたびに謝られた。
3回目かでバッチリ成功したよと伝えたら、喜んでた。
なんかどこかのスレより人間ぽいなと。

別な質問でやっぱり誤答してきて、別に調べたら、どうやらPower BI版でしかできなさそう。
そのことを指摘すると、以後は壊れたレコードのように同じ内容の繰り返し。
これまたどこぞの国会答弁みたいで妙に感心してしまった。
0256名無しさん@そうだ選挙にいこう
垢版 |
2024/04/23(火) 20:48:22.80
>>252
正解
可読性と汎用性を両立するこの式の考え方が重要
>>251は繰り返し回数に2を掛ける必要があるのと汎用性が低いので△
>>247は可読性と実用性×、式の長さ的にも繰り返し回数1000くらいでエラー出るので×

>>253
>>252のHSTACK(範囲)をTRANSPOSE(範囲)に変えるだけ
0258名無しさん@そうだ選挙にいこう
垢版 |
2024/04/23(火) 21:33:00.94
このスレは質問を装ってレベルの低い奴が試験を出すのか
0260名無しさん@そうだ選挙にいこう
垢版 |
2024/04/23(火) 23:54:25.83
>256-257
ありがとうございます!
シンプルな数式がわかってスッキリです。
確かにTOROWの方がより汎用性は高そうですね。検索方向も引数で指定できるので柔軟な対応もできそうです。
0261名無しさん@そうだ選挙にいこう
垢版 |
2024/04/24(水) 17:53:14.04
見積書の品名項 、例えばAの1から50までの各セル(左右2セル結合)内の文字列を
新たなシート見積書のBの1から50に一括コピペするにはどうすればいいですか?

わからなくて1セルづつコピペして疲れましたw

教えてください
0262名無しさん@そうだ選挙にいこう
垢版 |
2024/04/24(水) 17:55:53.29
>>261
まず知能検査してもらえ
0263名無しさん@そうだ選挙にいこう
垢版 |
2024/04/24(水) 19:09:51.71
>>261
マウスでドラッグして緑色の枠で選択してコピペ
…という部分が問題なら、あまりにも基本中の基本すぎて解説が見つからない
その段階なら、文章での説明を読むよりも、近くの誰かに教えてもらった方が速いかもしれない

数が多くて画面に収まらないときは、端と端をshiftで選択するか、ctrl+shift+↓でまとめて選択
https://www.yrl.com/column/wazaari_pc/excel_select_cells.html

セル結合が一緒にコピペされるのが邪魔なときは、形式を選択して貼り付け
https://www.pc-koubou.jp/magazine/42412

最近ようやくctrl+shift+Vで値だけ貼り付けられるようになった
https://forest.watch.impress.co.jp/docs/news/1527708.html
0264名無しさん@そうだ選挙にいこう
垢版 |
2024/04/24(水) 19:16:38.69
【1 OSの種類         .】Windows10
【2 Excelのバージョン   】 Excel365
【3 VBAが使えるか    .】YES
【4 VBAでの回答の可否】YES

他ブックのシートのA1~H20のセルを転記するマクロが欲しいのですが、
その転記元ブックの場所は常に同じ場所にあるわけじゃないから、マクロを実行した時にコモンダイヤログっていうの?
名前をつけて保存するときに出てくるような小さな窓を出現させてファイルを指定したい
転記が終われば転記元ファイルは閉じて開かれてるExcelブックは転記マクロが入ったものだけ
動作的には転記元ファイル指定したら勝手に転記されてるように見えるのが理想です

アドバイスお願いします
0265名無しさん@そうだ選挙にいこう
垢版 |
2024/04/24(水) 19:16:48.12
ありがとうございます
普通にそれが出来なくて??でした。
人の作った見積もりだったのでうまくいかなかったのかもしれません(恥)
もう一度やってみます
0267名無しさん@そうだ選挙にいこう
垢版 |
2024/04/24(水) 21:36:52.02
Sub CopyDataFromExcelFile()
Dim filePath As String
Dim wb As Workbook
Dim wsSource As Worksheet
Dim wsTarget As Worksheet
Dim sourceRange As Range
Dim targetRange As Range
' ファイルを選択
filePath = Application.GetOpenFilename("Excel Files (*.xls; *.xlsx), *.xls; *.xlsx")
If filePath = "False" Then
MsgBox "ファイルが選択されていません。"
Exit Sub
End If
' ワークブックを開く
Set wb = Workbooks.Open(filePath)
' ソースシートとターゲットシートを指定
Set wsSource = wb.Sheets("Sheet1")
Set wsTarget = ThisWorkbook.Sheets("Sheet1")
' コピー元の範囲を指定
Set sourceRange = wsSource.Range("A1:H20")
' コピー先の範囲を指定
Set targetRange = wsTarget.Range("A1:H20")
' データをコピー
sourceRange.Copy Destination:=targetRange
' ワークブックを閉じる
wb.Close SaveChanges:=False
End Sub
0268 警備員[Lv.1][新][苗][芽]
垢版 |
2024/04/24(水) 22:23:27.74
test
レスを投稿する


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