Excel総合相談所 132
■ このスレッドは過去ログ倉庫に格納されています
▼━質問テンプレ (出来れば使ってね) ━━━ 【1 OSの種類 .】 Windows** 【2 Excelのバージョン 】 Excel** 【3 VBAが使えるか .】 はい・いいえ 【4 VBAでの回答の可否】 可・否 ▼━関連スレ━━━━━━━━━━━━ 前スレ Excel総合相談所 131 https://find.5ch.net/search?q=excel Excel VBA 質問スレ Part51(1000到達済み) https://find.5ch.net/search?q=excel+vba 【質問不可】Excel総合相談所スレの雑談・議論スレ4 https://find.5ch.net/search?q=excel+%E3%80%80%E7%9B%B8%E8%AB%87%E6%89%80 【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 初心者です。 工事毎作成する複数のシート(※1)の数値をデータベース用の他ブックのシートに工事毎に転記しています。 現在は工事が発生する事に保存してある(※1)原紙を該当工事用に更新し、保存後データベースにハイパーリンクを設定していますが、 いちいちハイパーリンクの設定をするのが大変なので、一連の流れを自動化は出来ませんか? できるよ 要は単票フォームのデータをテーブルに保存/テーブルから読み出しできるようにしたいんだろ Access使えない環境だとそういうのはときどきつくったりする VBA必須だけどな >>756 3が読めないのかおまえは だからみんな出来ないって言ってんだよ バカだろ できるかできないかでいえばできる ただしVBA使用が条件 別におかしくはない このスレではひとりのことをみんなっていうのかな このvbaが使えるかって設問、そろそろ見直したほうがいいかもね ・本人がvba使えるかどうか こんなことどうでもよくて、覚えろって話 ・職場環境的に絶対に使えない じゃあ仕方ないね となる 出来るかでいえば、VBAでペンタゴンハッキングできる人も居るかもしれないが とりあえず、VBA無しの範囲=数式とリボンの中のものとして 固定のデータソースから値を取ってきて計算まで 処理 となるとマクロコピペぐらい要るかなあ。 使える使えないってのは、本人が、の他に、環境が(会社が')、ソフトがって意味もあると思う 3.より4.でしょ ちゃんとテンプレに従って > 【4 VBAでの回答の可否】 否 って書いてあるのにVBA必須の回答するとか頭おかしい そもそもVBA使った回答なんかしてないだろう どこにVBA記述してるんだ できるって書くことすらだめなのか なんなのこのスレ VBA毛嫌いしてるヤツの気持ちもわかってほしい コンプレックスの裏返しさ 少なくとも俺はバカとか頭おかしいとは書いてない それはいいのか? >>768 小学生並みの煽りだな バカ 頭おかしい 文盲←New! VBA可で質問しているのに自己解決出来ないなら使わない方が良いんじゃね?と思う 職場なりで多数の人が使う場合は特に オフィス2019って一般人はいつ買えるんですか? 今後数週間のうちにリリースと、1ヶ月前に見た気がするんですが。 あと、excelしか使わないんですが、オフィス2019発売の際、バラ売りしてくれますか? それともバラ売りは少し発売日が遅れる、もしくはバラ売り自体やらないんでしょうか? 会社で自分以外が使うブックには基本VBAは入れないな。 あいつらファイル参照や自動作表どころか単純な関数すら別のブックにシートコピーとかやって効かなくして壊れたと騒ぐ。 vba内にデータを持たせたり 参照しているシートはロックしたり隠したり手段はあるが まぁ作る側は面倒だよな フールプルーフの良い練習になるから、あまり不満は無いかな Office2019は海外Amazonとかだともう売ってるんだよな 日本語版はまだらしい。いつになるかは分からなくてすまん ただ、2019の新機能はOffice365にしてればアップデートでもう反映されてる >>775 逆にそういうのをVBAで防ぐこともできるじゃん >>775 マクロはロックしてます。公開後の修正はめんどいですが。 2019使ってるけど、正直そこまで・・・感 OCRもグダグダだし、SORT関数もそもそもVBAでさんざんやってきたこと まぁ2019がデフォの世代はすごく生産性が高いだろうね 【1 OSの種類 .】 すみません、分かりません… 【2 Excelのバージョン 】 Excel2016 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 分かる方いたら教えてください。 例 A1セル:10 B1セル:15 C1セル:5 であったときに、 @A1からC1の間で、一番大きい数のセルを選んでください。 AA1が1番大きかった場合はAを、B1が1番大きかった場合はBを、C1が1番大きかった場合はCを返してください。 この2つの関数を組み合わせたいのですが、教えて頂けませんか? よろしくお願いします。 excelの差分ツール教えて いままでAiperDiffexを便利に使ってたんだけど、 Win 10にしたら調子悪くなってしまった スクロールすると波打つ感じ >>783 どれがいいのかわからんかった =MAX(A1:C1) =MATCH(MAX(A1:C1),A1:C1,0) =MID("ABC",MATCH(MAX(A1:C1),A1:C1,0),1) >>785 、787 785の方の3つめの式で解決しました! ありがとうございました!助かりました!! 787の方も回答下さりありがとうござきました! >>785 、787 785の方の3つめの式で解決しました! ありがとうございました!助かりました!! 787の方も回答下さりありがとうござきました! 【1 OSの種類 .】 Windows10 【2 Excelのバージョン 】 Excel2010 【4 VBAでの回答の可否】 可 シートにテーブルTable1がありまして列3と列5だけをCSVで出力したいのですが よろしくおねがいします。 行数は日々変動いたします。 >>790 順番は? C1,C2,C3 改行 E1,E2,E3 改行 でいいの? >>791 具体的にデータを作りました テーブル1(Table1) 番号, 都市, 名前, クラス, 判定 1002, 東京, 山本, A組, o 1003, 千葉, 戸田, B組, o 1005, 東京, 鈴木, A組, x ・ ・ これを下のようにCSVで出力です 名前, 判定 改行 山本, o 改行 戸田, o 改行 鈴木, x 改行 アドレスではなくテーブル名と列名を使った構造化参照での回答がありがたいです 自分なら別ブックにデータを抜き出して それをCSVで保存する 別シートに列コピーを2回やってCSVで保存だな こんな単純な作業、VBAとかで自動化するまでもないと思うけど >>794 これと同じ操作がテーブル違い列違いで30テーブルくらいあるんですよ そして最低週1回以上のCSVデータの更新が必要でして テーブルをどうやって指定するかとか、csvファイルの名前や保存場所をどうするかとか、色々ある。 inputboxで指定するのか、シートにテーブルは1つと決まっていてそれを自動で取得するのかとか。 自分で作らないと思うようにできなさそう。 データの抜き出しはコピペでもいいしピボットでもいいしvbaでもいいし 好きにやればいいと思う 【1 OSの種類 .】 Windows** 7 【2 Excelのバージョン 】 Excel** 365(体験版みたいなやつ) 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 今まで24型モニタDPI=100%で印刷していたのを 27型モニタDPI=117%で印刷しようとしたところ、印刷範囲がずれてました。 原因はDPIみたいで、最初に作ったのがDPI=100ならば、それが基準になるので 新しい環境に変えてもDPI=100%しなければならないとの事で これを踏まえての質問があります。 DPI=100%以外の数値でも、印刷範囲をずれなくする方法を 液晶モニタを変える 解像度を変える 以外であれば教えてください 1年に十数ファイルも印刷するので、特定のファイルにのみ効果を及ぼす方法は駄目です。一度設定すると今あるファイルは勿論、今後作成するファイルにも 影響する方法が望ましいです。 Windows10にする Excel2019にする 特定のシェアウェア フリーウェアを導入する等、あらゆる方法をOKとします。 >>790 Sub TEMP() Dim TBL As ListObject Dim RowClient As ListRow Set TBL = Worksheets("Sheet1").ListObjects("Table1") Open "D:\TEMP.CSV" For Output As #1 Print #1, TBL.HeaderRowRange(3) & "," & TBL.HeaderRowRange(5) For Each RowClient In TBL.ListRows Print #1, RowClient.Range(3) & "," & RowClient.Range(5) Next Close #1 End Sub >>799 印刷範囲はずれるものと思っておいたほうが良い 個人的には、vbaで改ページ合わせるしか無いと思ってる >>793 >>800 ありがとうございます いただいた情報を参考にしなが自分なりに作成してみます >>790 >>795 について 全シートの3・5列をCSVで出す。より 全シートを1つにまとめたシートかCSVを作る マクロを作っておいたほうが将来的に楽よ シート名,行番号,A列,B列・・ の1つにまとまったものがあれば 今回の要望も手作業のコピペ+出力で足りる可能性がある >>799 ディスプレイの設定が印刷に関わる? Excelのバージョン、OS、プリンタとプリンタドライバは同じなのかな。 印刷範囲の設定がちがちにして、余白に余裕があれば、PC変えても大概ズレないが 環境により印刷可能サイズが狭くなるので、ギリギリの%指定で作ってるとたまにはみ出す A. もし印刷だけの資料なら、PDFにしてしまったほうが確実 【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2013 【3 VBAが使えるか .】 いいえ(マクロの記録程度なら可) 【4 VBAでの回答の可否】 可能であれば使わない方法で、使わなければ解決しないようであれば使った回答をお願いします。 直撮りで申し訳ないのですが、画像のような表で、17行目の@〜Eに、空白を除き、各行ごとに比較して、各列(H31〜H26)に最小値が入っている個数をカウントしたいです。 例えば、 @は10行目の1908と16行目の1913の2個が最小値なので「2」 Aは14行目の1805が最小値なので「1」 Bは最小値が無いので「0」 と表示させたいです。 COUNTIFやMINを使ってやってみたのですが、うまく行きません。ご教授よろしくお願いします。 https://i.imgur.com/jd1K1JD.jpg >>805 追記 たとえば@に入る関数を示していただければ、A〜Eについては引数を変える程度はできますので、1つ例として挙げていただくだけで結構です。 よろしくお願いします。 =if(SMALL(a2:h2,COUNTIF (a2:h2,"")+1)=a2,1,0)+if・・・ 別シートで、最小値かどうかを1,0で保持する そこの縦で1のカウントをとる Sheet2のA2に =IF(A2=MIN($A2:$H2),1,0) で票の範囲全部にコピー @〜には=COUNTIF(A$1:A16,1) いっぱいシートがあったり、行数がちょくちょく変わるのであれば。。。困ったな >>805 G列に最小値を入れて配列数式で計算するのはどうでしょう? >>809 具体的に数式書くと =sum(if(A2:A16=$G$2:$G$16,1,0)) これを配列数式で入力 【1 OSの種類 .】 Windows10 【2 Excelのバージョン 】 Excel2019 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 2019から搭載されたideasって機能が見当たらないのですが、 表示させるにはなにか操作が必要なのでしょうか? https://i.imgur.com/exstLyf.png shareの下辺りに出ると思うのですが >>811 >>2019 から搭載されたideasって機能が見当たらないのですが、 2019から搭載??? Excel のアイデア(Excel for Office 365) https://support.office.com/ja-jp/article/excel- のアイデア-3223aab8-f543-4fda-85ed-76bb0295ffc4 AIとか搭載されたのか、知らなかった。 そのうち「先月と同じ報告書」って入力したら同様の書類全部作ってくれるようになるな >>801 えー マイクロソフトは何年も前から仕様です で済ませてるし 全然改善しようしないですよね。VBAはよく判らない>< >>804 液晶モニタのみ買い換えたんですよ 他は同じです 毎日の売り上げを基調してるんで、pdfオンリーではないです>< Excelで質問です A1に数字の1が入力されたら B2に300を入力するという 関数を教えてください >>812-813 365の機能でしたか、残念 2019で搭載!と言ってるブログが多くて信じてしまいました。試したかったなぁ 【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2016 【3 VBAが使えるか .】 はい(コピペして一部編集して使うくらいのレベル) 【4 VBAでの回答の可否】 可 表の構成が同じSheet1とSheet1(1)があります 最終行はSheet1とSheet1(1)で違います A列をA5から順番に1つ1つ下に見てA列が一致するB列以降をSheet1(1)からSheet1に B列以降の列を値で貼り付けしたいです B列からどこまでコピペするかは変えるかもしれないので簡単に変えられるようにしておきたいです 要はvlookupのようなことがしたいですが vlookupだと式を1列ずつコピーして値で貼り付けになり時間かかるので 値でいきなり貼り付けたいです >>819 Sub 探すで() Dim Y1 As Long Dim Y2 As Long Dim X As Long Dim r As Range Const START_ROW As Long = 5 Const COPY_MAX_COL As Long = 20 On Error GoTo eH Application.ScreenUpdating = False For Y1 = START_ROW To Sheet1.Cells(START_ROW, 1).End(xlDown).Row '、空白でストップ Set r = Sheet2.Columns(1).Find(Sheet1.Cells(Y1, 1).Value, , , xlWhole) 'A列で探す If Not (r Is Nothing) Then Y2 = r.Row Sheet2.Range(Sheet2.Cells(Y2, 2), Sheet2.Cells(Y2, COPY_MAX_COL)).Copy Sheet1.Cells(Y1, 2).PasteSpecial xlPasteValues End If Next Y1 eH: Application.ScreenUpdating = True End Sub sheet2 = Sheet1(1) で。 あ、不細工やらかしてるけど、動く動く。 >>820-821 できました! アレンジして使いたいと思いますが質問あります Const START_ROW As Long = 5は5行目から須田とかと思うのですが、 Const COPY_MAX_COL As Long = 20は横幅は20列がコピーするMAXという意味でしょうか? 塗りつぶした色付きでコピーすることできるでしょうか? シートAに シートBのB列からシートAのAB9と同じ文字の行を探し シートBのその行のCQ列の文字をシートAに入力したいのですか その計算式を =IF(ISERROR(VLOOKUP($AB$9,シートB!$B:$CQ,85,FALSE)),"",IF(VLOOKUP($AB$ 9,シートB!$B:$CQ,85,FALSE)="","",VLOOKUP($AB$9,シートB!$B:$CQ,85,FALSE))) としたのですが なぜか CQではなくCH列の文字を入力します シートAに シートBのB列からシートAのAB9と同じ文字の行を探し シートBのその行のCQ列の文字をシートAに入力したいのですか その計算式を教えてください 👀 Rock54: Caution(BBR-MD5:1341adc37120578f18dba9451e6c8c3b) >>823 =IFERROR(VLOOKUP($AB$9,シートB!$B:$CQ,94,FALSE),"") >>824 >>825 ありがとうございます 解決できました 列番号ところがポイントでした ここを範囲を指していると勘違いしてました =L26*U26が L26とU26の値が無いの場合は ♯VALUE! になってしまいます これを♯VALUE!ではなく空白にするには =L26*U26をどうすれば良いですか? >>822 値でコピーしたいというので値コピーだけにしちゃった。 VLOOKUPにならないようにってことね 全コピーでOKなら 中央を差し替え。 If Not (r Is Nothing) Then Y2 = r.Row Sheet2.Range(Sheet2.Cells(Y2, 2), Sheet2.Cells(Y2, COPY_MAX_COL)).Copy Sheet1.Cells(Y1, 2) End If >>830 できました! ありがとうございます、完璧です >>805 既に同じような方法が書かれておりますが、 G列に各行の最小値をMIN関数で求めておき、 まる1=SUMPRODUCT((A2:A16=$G2:$G16)*1) そんな便利な関数が、勉強になりました。サムあなどってた SUMPRODUCTは重い たくさんあると目に見えて遅くなる SHIFT + SPACE (行選択) て突然効かなくなるけど何で? テンプレ無視ですみません 【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 2010 【3 VBAが使えるか .】 否 【4 VBAでの回答の可否】 否 B列にコードが並んでいて、それが正しいパターンかをC列に○×で表示させたいです。 正しいパターンは半角7桁で最初の3桁が英字(大文字)で残り4桁は数字です。 どうすれば条件通りに○×をつけられますか? ExcelのVBAがPythonベースに変わるという噂を聞いたんですけど 本当ですか? >>837 = IFERROR( IF( AND( AND(CODE(MID(A1,1,1))>64,CODE(MID(A1,1,1))<91), AND(CODE(MID(A1,2,1))>64,CODE(MID(A1,2,1))<91), AND(CODE(MID(A1,3,1))>64,CODE(MID(A1,3,1))<91), AND(CODE(MID(A1,4,1))>47,CODE(MID(A1,4,1))<58), AND(CODE(MID(A1,5,1))>47,CODE(MID(A1,5,1))<58), AND(CODE(MID(A1,6,1))>47,CODE(MID(A1,6,1))<58), AND(CODE(MID(A1,7,1))>47,CODE(MID(A1,7,1))<58) ),"○","×"), "×") >>838 検討中 実際に決まってるのはjsの方 IF(IF(IF(IF()))) しか知らん無知やった。AND ちぃ憶えた >>841 エクセル2019ではifs()関数ってのが出るからもうちょっと楽になるよ >>840 IFERRORとCODEを使ってる理由、ANDを二重にしている理由の解説きぼん 俺はこんなんでもいいかと思ったんだが、だめなんだろうか、あんまりEXCELに詳しくないんでよくわからん =IF(AND(LEN(B1)=7, "A"<=MID(B1,1,1),MID(B1,1,1)<="Z", "A"<=MID(B1,2,1),MID(B1,2,1)<="Z", "A"<=MID(B1,3,1),MID(B1,3,1)<="Z", "0"<=MID(B1,4,1),MID(B1,4,1)<="9", "0"<=MID(B1,5,1),MID(B1,5,1)<="9", "0"<=MID(B1,6,1),MID(B1,6,1)<="9", "0"<=MID(B1,7,1),MID(B1,7,1)<="9"),"○","×") >>843 文字列そのままで比較は怖くて使わないだけ。vbaで挙動が変わったりするしね でも今回みたいにA-Z、0-9ぐらいなら使っても問題なかったわ >>840 よりも>>843 の方が良いと思う 数字判定って少数や指数認めるので記号不可はまとめて判定しづらい AAA-987 BBB12.3 CDE+456 ZZZ10スペース2つ などが抜ける 一個ずつ四則演算してエラー分岐も考えたけどもうええかなって TRIMとかINTとFORMATあたりを組み合わせて0000から9999に入ってるかどうか調べる手も考えられるけど、たぶん1文字ずつ判定の方が式が簡単になるんと違う? 誰かヒマなやつ、逃避したいやつ、考えてみてくれ みんないつもVBAでやってて あえて数式で文字コード以外になんかあったっけ、って考えた人が結構居そう ・・0000〜9999のデータにMATCHを・ >>844 いや、843は問題がある 大文字かどうかの判別ができてない ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる